sugarwidgetfieldname.php
来自「SugarCRM5.1 开源PHP客户关系管理系统」· PHP 代码 · 共 211 行
PHP
211 行
<?phpif(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');/** * Sugar widget for fieldnames * * SugarCRM is a customer relationship management program developed by * SugarCRM, Inc. Copyright (C) 2004 - 2007 SugarCRM Inc. * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 3 as published by the * Free Software Foundation with the addition of the following permission added * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program; if not, see http://www.gnu.org/licenses or write to the Free * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA. * * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road, * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * SugarCRM" logo. If the display of the logo is not reasonably feasible for * technical reasons, the Appropriate Legal Notices must display the words * "Powered by SugarCRM". */require_once('include/generic/SugarWidgets/SugarWidgetFieldvarchar.php');class SugarWidgetFieldName extends SugarWidgetFieldVarchar{ function SugarWidgetFieldName(&$layout_manager) { parent::SugarWidgetFieldVarchar($layout_manager); $this->reporter = $this->layout_manager->getAttribute('reporter'); } function displayList(&$layout_def) { if(empty($layout_def['column_key'])) { return $this->displayListPlain($layout_def); } $module = $this->reporter->all_fields[$layout_def['column_key']]['module']; $name = $layout_def['name']; $layout_def['name'] = 'id'; $key = $this->_get_column_alias($layout_def); $key = strtoupper($key); if(empty($layout_def['fields'][$key])) { $layout_def['name'] = $name; return $this->displayListPlain($layout_def); } $record = $layout_def['fields'][$key]; $layout_def['name'] = $name; $str = "<a target='_blank' class=\"listViewTdLinkS1\" href=\"index.php?action=DetailView&module=$module&record=$record\">"; $str .= $this->displayListPlain($layout_def); $str .= "</a>"; return $str; } function _get_column_select($layout_def) { global $sugar_config; // if $this->db->dbytpe is empty, then grab dbtype value from global array "$sugar_config[dbconfig]" if(empty($this->db->dbType)){ $this->db->dbType = $sugar_config['dbconfig']['db_type']; } $field_def = $this->reporter->all_fields[$layout_def['column_key']]; if (empty($field_def['fields']) || empty($field_def['fields'][0]) || empty($field_def['fields'][1])) { return parent::_get_column_select($layout_def); } // 'fields' are the two fields to concat to create the name $alias = ''; $endalias = ''; if ( ! empty($layout_def['table_alias'])) { if ($this->db->dbType == 'mysql') { $alias .= "CONCAT(CONCAT(IFNULL(" .$layout_def['table_alias']."." .$field_def['fields'][0].",''),' ')," .$layout_def['table_alias']."." .$field_def['fields'][1].")"; } elseif ( $this->db->dbType == 'mssql' ) { $alias .= $layout_def['table_alias'] . '.' . $field_def['fields'][0] . " + ' ' + " . $layout_def['table_alias'] . '.' . $field_def['fields'][1].""; } } elseif (! empty($layout_def['name'])) { $alias = $layout_def['name']; } else { $alias .= "*"; } $alias .= $endalias; return $alias; } function queryFilterIs($layout_def) { require_once('include/generic/SugarWidgets/SugarWidgetFieldid.php'); $layout_def['name'] = 'id'; $layout_def['type'] = 'id'; $input_name0 = $layout_def['input_name0']; if ( is_array($layout_def['input_name0'])) { $input_name0 = $layout_def['input_name0'][0]; } if ($input_name0 == 'Current User') { global $current_user; $input_name0 = $current_user->id; } return SugarWidgetFieldid::_get_column_select($layout_def)."='" .PearDatabase::quote($input_name0)."'\n"; } // $rename_columns, if true then you're coming from reports function queryFilterone_of(&$layout_def, $rename_columns = true) { require_once('include/generic/SugarWidgets/SugarWidgetFieldid.php'); if($rename_columns) { // this was a hack to get reports working, sugarwidgets should not be renaming $name! $layout_def['name'] = 'id'; $layout_def['type'] = 'id'; } $arr = array(); foreach($layout_def['input_name0'] as $value) { if ($value == 'Current User') { global $current_user; array_push($arr,"'".PearDatabase::quote($current_user->id)."'"); } else array_push($arr,"'".PearDatabase::quote($value)."'"); } $str = implode(",",$arr); return SugarWidgetFieldid::_get_column_select($layout_def)." IN (".$str.")\n"; } function &queryGroupBy($layout_def) { if( $this->reporter->db->dbType == 'mysql') { if($layout_def['name'] == 'full_name') { $layout_def['name'] = 'id'; $layout_def['type'] = 'id'; require_once('include/generic/SugarWidgets/SugarWidgetFieldid.php'); $group_by = SugarWidgetFieldid::_get_column_select($layout_def)."\n"; } else { // group by clause for user name passes through here. // $layout_def['name'] = 'name';// $layout_def['type'] = 'name'; $group_by = $this->_get_column_select($layout_def)."\n"; } } elseif( $this->reporter->db->dbType == 'mssql') { $group_by = $this->_get_column_select($layout_def); } return $group_by; }}?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?