📄 mypipelinebysalesstagedashlet.php
字号:
<?phpif(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');/** * 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/Dashlets/Dashlet.php');require_once('include/Sugar_Smarty.php');require_once('include/charts/Charts.php');require_once('modules/Dashboard/Forms.php');class MyPipelineBySalesStageDashlet extends Dashlet { var $mypbss_date_start; var $mypbss_date_end; var $mypbss_sales_stages = null; var $refresh = false; function MyPipelineBySalesStageDashlet($id, $options) { global $timedate; parent::Dashlet($id); $this->isConfigurable = true; $this->isRefreshable = true; if(empty($options['mypbss_date_start'])) $this->mypbss_date_start = date($timedate->get_db_date_time_format(), time()); else $this->mypbss_date_start = $options['mypbss_date_start']; if(empty($options['mypbss_date_end'])) $this->mypbss_date_end = date($timedate->get_db_date_time_format(), strtotime('2010-01-01')); else $this->mypbss_date_end = $options['mypbss_date_end']; if(empty($options['mypbss_sales_stages'])) $this->mypbss_sales_stages = array(); else $this->mypbss_sales_stages = $options['mypbss_sales_stages']; if(empty($options['title'])) $this->title = translate('LBL_MY_PIPELINE_FORM_TITLE', 'Home'); else $this->title = $options['title']; } function saveOptions($req) { global $sugar_config, $timedate, $current_user, $theme; $options = array(); $options['title'] = $_REQUEST['mypbss_dashlet_title']; $options['mypbss_sales_stages'] = $_REQUEST['mypbss_sales_stages']; $timeFormat = $current_user->getUserDateTimePreferences(); $options['mypbss_date_start'] = $timedate->swap_formats($_REQUEST['mypbss_date_start'], $timeFormat['date'], $timedate->dbDayFormat); $options['mypbss_date_end'] = $timedate->swap_formats($_REQUEST['mypbss_date_end'], $timeFormat['date'], $timedate->dbDayFormat); return $options; } function displayOptions() { global $timedate, $image_path, $app_strings, $current_user, $app_list_strings; $ss = new Sugar_Smarty(); $ss->assign('id', $this->id); $ss->assign('module', $_REQUEST['module']); $ss->assign('dashletType', 'predefined_chart'); $ss->assign('LBL_TITLE', translate('LBL_TITLE', 'Charts')); $ss->assign('LBL_CHART_TYPE', translate('LBL_CHART_TYPE', 'Charts')); $ss->assign('LBL_DATE_START', translate('LBL_DATE_START', 'Charts')); $ss->assign('LBL_DATE_END', translate('LBL_DATE_END', 'Charts')); $ss->assign('LBL_SALES_STAGES', translate('LBL_SALES_STAGES', 'Charts')); $ss->assign('LBL_ENTER_DATE', translate('LBL_ENTER_DATE', 'Charts')); $ss->assign('LBL_SELECT_BUTTON_TITLE', $app_strings['LBL_SELECT_BUTTON_TITLE']); $ss->assign('image_path', $image_path); //get the dates to display $date_start = $this->mypbss_date_start; $date_end = $this->mypbss_date_end; $timeFormat = $current_user->getUserDateTimePreferences(); $ss->assign('date_start', $timedate->swap_formats($date_start, $timedate->dbDayFormat, $timeFormat['date'])); $ss->assign('date_end', $timedate->swap_formats($date_end, $timedate->dbDayFormat, $timeFormat['date'])); $tempx = array(); $datax = array(); $selected_datax = array(); //get list of sales stage keys to display $user_sales_stage = $this->mypbss_sales_stages; $tempx = $user_sales_stage; //set $datax using selected sales stage keys if (count($tempx) > 0) { foreach ($tempx as $key) { $datax[$key] = $app_list_strings['sales_stage_dom'][$key]; array_push($selected_datax, $key); } } else { $datax = $app_list_strings['sales_stage_dom']; $selected_datax = array_keys($app_list_strings['sales_stage_dom']); } $ss->assign('dashlet_title', $this->title); $ss->assign('selected_datax', get_select_options_with_id($app_list_strings['sales_stage_dom'], $selected_datax)); $ss->assign('user_date_format', $timedate->get_user_date_format()); $ss->assign('cal_dateformat', $timedate->get_cal_date_format()); $ss->assign('module', $_REQUEST['module']); return parent::displayOptions() . $ss->fetch('modules/Charts/Dashlets/MyPipelineBySalesStageDashlet/MyPipelineBySalesStageConfigure.tpl'); } /** * Displays the javascript for the dashlet * * @return string javascript to use with this dashlet */ function displayScript() { global $sugar_config, $current_user, $current_language; $xmlFile = $sugar_config['tmp_dir']. $current_user->id . '_' . $this->id . '.xml'; $chartStringsXML = 'cache/xml/chart_strings.' . $current_language .'.lang.xml'; $ss = new Sugar_Smarty(); $ss->assign('chartName', $this->id); $ss->assign('chartXMLFile', $xmlFile); $ss->assign('chartStyleCSS', chartStyle()); $ss->assign('chartColorsXML', chartColors()); $ss->assign('chartStringsXML', $chartStringsXML); $str = $ss->fetch('modules/Charts/Dashlets/PredefinedChartDashletScript.tpl'); return $str; } function getTitle($text) { global $image_path, $app_strings, $sugar_config; if($this->isConfigurable) $additionalTitle = '<table width="100%" cellspacing="0" cellpadding="0" border="0"><tr><td width="99%">' . $text . '</td><td nowrap width="1%"><div style="width: 100%;text-align:right"><a href="#" onclick="SUGAR.mySugar.configureDashlet(\'' . $this->id . '\'); return false;" class="chartToolsLink">' . get_image($image_path.'edit','title="' . translate('LBL_DASHLET_EDIT', 'Home') . '" alt="' . translate('LBL_DASHLET_EDIT', 'Home') . '" border="0" align="absmiddle"').'</a> ' . ''; else $additionalTitle = '<table width="100%" cellspacing="0" cellpadding="0" border="0"><tr><td width="99%">' . $text . '</td><td nowrap width="1%"><div style="width: 100%;text-align:right">'; if($this->isRefreshable) $additionalTitle .= '<a href="#" onclick="SUGAR.mySugar.retrieveDashlet(\'' . $this->id . '\',\'predefined_chart\'); return false;"><img width="13" height="13" border="0" align="absmiddle" title="' . translate('LBL_DASHLET_REFRESH', 'Home') . '" alt="' . translate('LBL_DASHLET_REFRESH', 'Home') . '" src="' . $image_path . 'refresh.gif"/></a> '; $additionalTitle .= '<a href="#" onclick="SUGAR.mySugar.deleteDashlet(\'' . $this->id . '\'); return false;"><img width="13" height="13" border="0" align="absmiddle" title="' . translate('LBL_DASHLET_DELETE', 'Home') . '" alt="' . translate('LBL_DASHLET_DELETE', 'Home') . '" src="' . $image_path . 'close_dashboard.gif"/></a></div></td></tr></table>'; if(!function_exists('get_form_header')) { global $theme; require_once('themes/'.$theme.'/layout_utils.php'); } $str = '<div '; if(empty($sugar_config['lock_homepage']) || $sugar_config['lock_homepage'] == false) $str .= ' onmouseover="this.style.cursor = \'move\';"'; $str .= 'id="dashlet_header_' . $this->id . '">' . get_form_header($this->title, $additionalTitle, false) . '</div>'; return $str; } function display() { global $app_list_strings, $current_language, $sugar_config, $currentModule, $action, $current_user, $theme, $timedate, $image_path; $this->loadLanguage('MyPipelineBySalesStageDashlet', 'modules/Charts/Dashlets/'); $returnStr = ''; $user_dateFormat = $timedate->get_date_format(); $current_module_strings = return_module_language($current_language, 'Charts'); if(isset($_REQUEST['mypbss_refresh'])) { $refresh = $_REQUEST['mypbss_refresh']; } else { $refresh = false; } $date_start = $this->mypbss_date_start; $date_end = $this->mypbss_date_end; // cn: format date_start|end to user's preferred $dateStartDisplay = strftime($timedate->get_user_date_format(), strtotime($date_start)); $dateEndDisplay = strftime($timedate->get_user_date_format(), strtotime($date_end)); $seps = array("-", "/"); $dates = array($date_start, $date_end); $dateFileNameSafe = str_replace($seps, "_", $dates); //$dateXml[0] = $timedate->swap_formats($date_start, $user_dateFormat, $timedate->dbDayFormat); //$dateXml[1] = $timedate->swap_formats($date_end, $user_dateFormat, $timedate->dbDayFormat); $dateXml[0] = $date_start; $dateXml[1] = $date_end; $datax = array();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -