예제 #1
0
function bpminbox_get_username_by_id($userid)
{
    if (empty($userid)) {
        return false;
    }
    $user = SugarModule::get('Users')->loadBean();
    $user->retrieve($userid);
    if ($userid != $user->id) {
        return false;
    }
    if (showFullName()) {
        return $user->full_name;
    } else {
        return $user->user_name;
    }
}
예제 #2
0
 /**
  * Displays the header on section of the page; basically everything before the content
  */
 public function displayHeader($retModTabs = false)
 {
     global $theme;
     global $max_tabs;
     global $app_strings;
     global $current_user;
     global $sugar_config;
     global $app_list_strings;
     global $mod_strings;
     global $current_language;
     $GLOBALS['app']->headerDisplayed = true;
     $themeObject = SugarThemeRegistry::current();
     $theme = $themeObject->__toString();
     $ss = new Sugar_Smarty();
     $ss->assign("APP", $app_strings);
     $ss->assign("THEME", $theme);
     $ss->assign("THEME_IE6COMPAT", $themeObject->ie6compat ? 'true' : 'false');
     $ss->assign("MODULE_NAME", $this->module);
     $ss->assign("langHeader", get_language_header());
     // set ab testing if exists
     $testing = isset($_REQUEST["testing"]) ? $_REQUEST['testing'] : "a";
     $ss->assign("ABTESTING", $testing);
     // get browser title
     $ss->assign("SYSTEM_NAME", $this->getBrowserTitle());
     // get css
     $css = $themeObject->getCSS();
     if ($this->_getOption('view_print')) {
         $css .= '<link rel="stylesheet" type="text/css" href="' . $themeObject->getCSSURL('print.css') . '" media="all" />';
     }
     $ss->assign("SUGAR_CSS", $css);
     // get javascript
     ob_start();
     $this->renderJavascript();
     $ss->assign("SUGAR_JS", ob_get_contents() . $themeObject->getJS());
     ob_end_clean();
     // get favicon
     if (isset($GLOBALS['sugar_config']['default_module_favicon'])) {
         $module_favicon = $GLOBALS['sugar_config']['default_module_favicon'];
     } else {
         $module_favicon = false;
     }
     $favicon = $this->getFavicon();
     $ss->assign('FAVICON_URL', $favicon['url']);
     // build the shortcut menu
     $shortcut_menu = array();
     foreach ($this->getMenu() as $key => $menu_item) {
         $shortcut_menu[$key] = array("URL" => $menu_item[0], "LABEL" => $menu_item[1], "MODULE_NAME" => $menu_item[2], "IMAGE" => $themeObject->getImage($menu_item[2], "border='0' align='absmiddle'", null, null, '.gif', $menu_item[1]));
     }
     $ss->assign("SHORTCUT_MENU", $shortcut_menu);
     // handle rtl text direction
     if (isset($_REQUEST['RTL']) && $_REQUEST['RTL'] == 'RTL') {
         $_SESSION['RTL'] = true;
     }
     if (isset($_REQUEST['LTR']) && $_REQUEST['LTR'] == 'LTR') {
         unset($_SESSION['RTL']);
     }
     if (isset($_SESSION['RTL']) && $_SESSION['RTL']) {
         $ss->assign("DIR", 'dir="RTL"');
     }
     // handle resizing of the company logo correctly on the fly
     $companyLogoURL = $themeObject->getImageURL('company_logo.png');
     $companyLogoURL_arr = explode('?', $companyLogoURL);
     $companyLogoURL = $companyLogoURL_arr[0];
     $company_logo_attributes = sugar_cache_retrieve('company_logo_attributes');
     if (!empty($company_logo_attributes)) {
         $ss->assign("COMPANY_LOGO_MD5", $company_logo_attributes[0]);
         $ss->assign("COMPANY_LOGO_WIDTH", $company_logo_attributes[1]);
         $ss->assign("COMPANY_LOGO_HEIGHT", $company_logo_attributes[2]);
     } else {
         // Always need to md5 the file
         $ss->assign("COMPANY_LOGO_MD5", md5_file($companyLogoURL));
         list($width, $height) = getimagesize($companyLogoURL);
         if ($width > 212 || $height > 40) {
             $resizePctWidth = ($width - 212) / 212;
             $resizePctHeight = ($height - 40) / 40;
             if ($resizePctWidth > $resizePctHeight) {
                 $resizeAmount = $width / 212;
             } else {
                 $resizeAmount = $height / 40;
             }
             $ss->assign("COMPANY_LOGO_WIDTH", round($width * (1 / $resizeAmount)));
             $ss->assign("COMPANY_LOGO_HEIGHT", round($height * (1 / $resizeAmount)));
         } else {
             $ss->assign("COMPANY_LOGO_WIDTH", $width);
             $ss->assign("COMPANY_LOGO_HEIGHT", $height);
         }
         // Let's cache the results
         sugar_cache_put('company_logo_attributes', array($ss->get_template_vars("COMPANY_LOGO_MD5"), $ss->get_template_vars("COMPANY_LOGO_WIDTH"), $ss->get_template_vars("COMPANY_LOGO_HEIGHT")));
     }
     $ss->assign("COMPANY_LOGO_URL", getJSPath($companyLogoURL) . "&logo_md5=" . $ss->get_template_vars("COMPANY_LOGO_MD5"));
     // get the global links
     $gcls = array();
     $global_control_links = array();
     require "include/globalControlLinks.php";
     foreach ($global_control_links as $key => $value) {
         if ($key == 'users') {
             //represents logout link.
             $ss->assign("LOGOUT_LINK", $value['linkinfo'][key($value['linkinfo'])]);
             $ss->assign("LOGOUT_LABEL", key($value['linkinfo']));
             //key value for first element.
             continue;
         }
         foreach ($value as $linkattribute => $attributevalue) {
             // get the main link info
             if ($linkattribute == 'linkinfo') {
                 $gcls[$key] = array("LABEL" => key($attributevalue), "URL" => current($attributevalue), "SUBMENU" => array());
                 if (substr($gcls[$key]["URL"], 0, 11) == "javascript:") {
                     $gcls[$key]["ONCLICK"] = substr($gcls[$key]["URL"], 11);
                     $gcls[$key]["URL"] = "javascript:void(0)";
                 }
             }
             // and now the sublinks
             if ($linkattribute == 'submenu' && is_array($attributevalue)) {
                 foreach ($attributevalue as $submenulinkkey => $submenulinkinfo) {
                     $gcls[$key]['SUBMENU'][$submenulinkkey] = array("LABEL" => key($submenulinkinfo), "URL" => current($submenulinkinfo));
                 }
                 if (substr($gcls[$key]['SUBMENU'][$submenulinkkey]["URL"], 0, 11) == "javascript:") {
                     $gcls[$key]['SUBMENU'][$submenulinkkey]["ONCLICK"] = substr($gcls[$key]['SUBMENU'][$submenulinkkey]["URL"], 11);
                     $gcls[$key]['SUBMENU'][$submenulinkkey]["URL"] = "javascript:void(0)";
                 }
             }
         }
     }
     $ss->assign("GCLS", $gcls);
     $ss->assign("SEARCH", isset($_REQUEST['query_string']) ? $_REQUEST['query_string'] : '');
     if ($this->action == "EditView" || $this->action == "Login") {
         $ss->assign("ONLOAD", 'onload="set_focus()"');
     }
     $ss->assign("AUTHENTICATED", isset($_SESSION["authenticated_user_id"]));
     // get other things needed for page style popup
     if (isset($_SESSION["authenticated_user_id"])) {
         // get the current user name and id
         $ss->assign("CURRENT_USER", $current_user->full_name == '' || !showFullName() ? $current_user->user_name : $current_user->full_name);
         $ss->assign("CURRENT_USER_ID", $current_user->id);
         // get the last viewed records
         $tracker = new Tracker();
         $history = $tracker->get_recently_viewed($current_user->id);
         $ss->assign("recentRecords", $this->processRecentRecords($history));
     }
     $bakModStrings = $mod_strings;
     if (isset($_SESSION["authenticated_user_id"])) {
         // get the module list
         $moduleTopMenu = array();
         $max_tabs = $current_user->getPreference('max_tabs');
         // Attempt to correct if max tabs count is extremely high.
         if (!isset($max_tabs) || $max_tabs <= 0 || $max_tabs > 10) {
             $max_tabs = $GLOBALS['sugar_config']['default_max_tabs'];
             $current_user->setPreference('max_tabs', $max_tabs, 0, 'global');
         }
         /*$moduleTab = $this->_getModuleTab();
           $ss->assign('MODULE_TAB',$moduleTab);*/
         // See if they are using grouped tabs or not (removed in 6.0, returned in 6.1)
         $user_navigation_paradigm = $current_user->getPreference('navigation_paradigm');
         if (!isset($user_navigation_paradigm)) {
             $user_navigation_paradigm = $GLOBALS['sugar_config']['default_navigation_paradigm'];
         }
         // Get the full module list for later use
         foreach (query_module_access_list($current_user) as $module) {
             // Bug 25948 - Check for the module being in the moduleList
             if (isset($app_list_strings['moduleList'][$module])) {
                 $fullModuleList[$module] = $app_list_strings['moduleList'][$module];
             }
         }
         if (!should_hide_iframes()) {
             $iFrame = new iFrame();
             $frames = $iFrame->lookup_frames('tab');
             foreach ($frames as $key => $values) {
                 $fullModuleList[$key] = $values;
             }
         } elseif (isset($fullModuleList['iFrames'])) {
             unset($fullModuleList['iFrames']);
         }
         if ($user_navigation_paradigm == 'gm' && isset($themeObject->group_tabs) && $themeObject->group_tabs) {
             // We are using grouped tabs
             require_once 'include/GroupedTabs/GroupedTabStructure.php';
             $groupedTabsClass = new GroupedTabStructure();
             $modules = query_module_access_list($current_user);
             //handle with submoremodules
             $max_tabs = $current_user->getPreference('max_tabs');
             // If the max_tabs isn't set incorrectly, set it within the range, to the default max sub tabs size
             if (!isset($max_tabs) || $max_tabs <= 0 || $max_tabs > 10) {
                 // We have a default value. Use it
                 if (isset($GLOBALS['sugar_config']['default_max_tabs'])) {
                     $max_tabs = $GLOBALS['sugar_config']['default_max_tabs'];
                 } else {
                     $max_tabs = 8;
                 }
             }
             $subMoreModules = false;
             $groupTabs = $groupedTabsClass->get_tab_structure(get_val_array($modules));
             // We need to put this here, so the "All" group is valid for the user's preference.
             $groupTabs[$app_strings['LBL_TABGROUP_ALL']]['modules'] = $fullModuleList;
             // Setup the default group tab.
             $allGroup = $app_strings['LBL_TABGROUP_ALL'];
             $ss->assign('currentGroupTab', $allGroup);
             $currentGroupTab = $allGroup;
             $usersGroup = $current_user->getPreference('theme_current_group');
             // Figure out which tab they currently have selected (stored as a user preference)
             if (!empty($usersGroup) && isset($groupTabs[$usersGroup])) {
                 $currentGroupTab = $usersGroup;
             } else {
                 $current_user->setPreference('theme_current_group', $currentGroupTab);
             }
             $ss->assign('currentGroupTab', $currentGroupTab);
             $usingGroupTabs = true;
         } else {
             // Setup the default group tab.
             $ss->assign('currentGroupTab', $app_strings['LBL_TABGROUP_ALL']);
             $usingGroupTabs = false;
             $groupTabs[$app_strings['LBL_TABGROUP_ALL']]['modules'] = $fullModuleList;
         }
         $topTabList = array();
         // Now time to go through each of the tab sets and fix them up.
         foreach ($groupTabs as $tabIdx => $tabData) {
             $topTabs = $tabData['modules'];
             if (!is_array($topTabs)) {
                 $topTabs = array();
             }
             $extraTabs = array();
             // Split it in to the tabs that go across the top, and the ones that are on the extra menu.
             if (count($topTabs) > $max_tabs) {
                 $extraTabs = array_splice($topTabs, $max_tabs);
             }
             // Make sure the current module is accessable through one of the top tabs
             if (!isset($topTabs[$moduleTab])) {
                 // Nope, we need to add it.
                 // First, take it out of the extra menu, if it's there
                 if (isset($extraTabs[$moduleTab])) {
                     unset($extraTabs[$moduleTab]);
                 }
                 if (count($topTabs) >= $max_tabs - 1) {
                     // We already have the maximum number of tabs, so we need to shuffle the last one
                     // from the top to the first one of the extras
                     $lastElem = array_splice($topTabs, $max_tabs - 1);
                     $extraTabs = $lastElem + $extraTabs;
                 }
                 if (!empty($moduleTab)) {
                     $topTabs[$moduleTab] = $app_list_strings['moduleList'][$moduleTab];
                 }
             }
             /*
             // This was removed, but I like the idea, so I left the code in here in case we decide to turn it back on
             // If we are using group tabs, add all the "hidden" tabs to the end of the extra menu
             if ( $usingGroupTabs ) {
                 foreach($fullModuleList as $moduleKey => $module ) {
                     if ( !isset($topTabs[$moduleKey]) && !isset($extraTabs[$moduleKey]) ) {
                         $extraTabs[$moduleKey] = $module;
                     }
                 }
             }
             */
             // Get a unique list of the top tabs so we can build the popup menus for them
             foreach ($topTabs as $moduleKey => $module) {
                 $topTabList[$moduleKey] = $module;
             }
             $groupTabs[$tabIdx]['modules'] = $topTabs;
             $groupTabs[$tabIdx]['extra'] = $extraTabs;
         }
     }
     if (isset($topTabList) && is_array($topTabList)) {
         // Adding shortcuts array to menu array for displaying shortcuts associated with each module
         $shortcutTopMenu = array();
         foreach ($topTabList as $module_key => $label) {
             global $mod_strings;
             $mod_strings = return_module_language($current_language, $module_key);
             foreach ($this->getMenu($module_key) as $key => $menu_item) {
                 $shortcutTopMenu[$module_key][$key] = array("URL" => $menu_item[0], "LABEL" => $menu_item[1], "MODULE_NAME" => $menu_item[2], "IMAGE" => $themeObject->getImage($menu_item[2], "border='0' align='absmiddle'", null, null, '.gif', $menu_item[1]), "ID" => $menu_item[2] . "_link");
             }
         }
         $ss->assign("groupTabs", $groupTabs);
         $ss->assign("shortcutTopMenu", $shortcutTopMenu);
         $ss->assign('USE_GROUP_TABS', $usingGroupTabs);
         // This is here for backwards compatibility, someday, somewhere, it will be able to be removed
         $ss->assign("moduleTopMenu", $groupTabs[$app_strings['LBL_TABGROUP_ALL']]['modules']);
         $ss->assign("moduleExtraMenu", $groupTabs[$app_strings['LBL_TABGROUP_ALL']]['extra']);
     }
     if (isset($extraTabs) && is_array($extraTabs)) {
         // Adding shortcuts array to extra menu array for displaying shortcuts associated with each module
         $shortcutExtraMenu = array();
         foreach ($extraTabs as $module_key => $label) {
             global $mod_strings;
             $mod_strings = return_module_language($current_language, $module_key);
             foreach ($this->getMenu($module_key) as $key => $menu_item) {
                 $shortcutExtraMenu[$module_key][$key] = array("URL" => $menu_item[0], "LABEL" => $menu_item[1], "MODULE_NAME" => $menu_item[2], "IMAGE" => $themeObject->getImage($menu_item[2], "border='0' align='absmiddle'", null, null, '.gif', $menu_item[1]), "ID" => $menu_item[2] . "_link");
             }
         }
         $ss->assign("shortcutExtraMenu", $shortcutExtraMenu);
     }
     if (!empty($current_user)) {
         $ss->assign("max_tabs", $current_user->getPreference("max_tabs"));
     }
     $imageURL = SugarThemeRegistry::current()->getImageURL("dashboard.png");
     $homeImage = "<img src='{$imageURL}'>";
     $ss->assign("homeImage", $homeImage);
     global $mod_strings;
     $mod_strings = $bakModStrings;
     $headerTpl = $themeObject->getTemplate('header.tpl');
     if (inDeveloperMode()) {
         $ss->clear_compiled_tpl($headerTpl);
     }
     if ($retModTabs) {
         return $ss->fetch($themeObject->getTemplate('_headerModuleList.tpl'));
     } else {
         $ss->display($headerTpl);
         $this->includeClassicFile('modules/Administration/DisplayWarnings.php');
         $errorMessages = SugarApplication::getErrorMessages();
         if (!empty($errorMessages)) {
             foreach ($errorMessages as $error_message) {
                 echo '<p class="error">' . $error_message . '</p>';
             }
         }
     }
 }
예제 #3
0
    /**
     * Add a generic widget to lookup Users.
     * @param displayname Name to display in the popup window
     * @param varname name of the variable
     * @param id_name name of the id in vardef
     * @param mod_type name of the module, either "Contact" or "Releases" currently
     */
    function addUserName($displayname, $varname, $id_name = '', $mod_type)
    {
        global $app_strings;
        if (empty($id_name)) {
            $id_name = strtolower($mod_type) . "_id";
        }
        ///////////////////////////////////////
        ///
        /// SETUP POPUP
        $reportsDisplayName = showFullName() ? 'name' : 'user_name';
        $popup_request_data = array('call_back_function' => 'set_return', 'form_name' => 'MassUpdate', 'field_to_name_array' => array('id' => "{$id_name}", "{$reportsDisplayName}" => "{$varname}"));
        $json = getJSONobj();
        $encoded_popup_request_data = $json->encode($popup_request_data);
        $qsName = array('form' => 'MassUpdate', 'method' => 'get_user_array', 'modules' => array("{$mod_type}"), 'group' => 'or', 'field_list' => array('user_name', 'id'), 'populate_list' => array("mass_{$varname}", "mass_{$id_name}"), 'conditions' => array(array('name' => 'name', 'op' => 'like_custom', 'end' => '%', 'value' => '')), 'limit' => '30', 'no_match_text' => $app_strings['ERR_SQS_NO_MATCH']);
        $qsName = $json->encode($qsName);
        //
        ///////////////////////////////////////
        return <<<EOHTML
<td width='15%'  scope='row' class='dataLabel'>{$displayname}</td>
<td width='35%' class='dataField'>
    <input name='{$varname}' id='mass_{$varname}' class='sqsEnabled' autocomplete='off' type='text' value=''>
    <input name='{$id_name}' id='mass_{$id_name}' type='hidden' value=''>&nbsp;
    <input title='{$app_strings['LBL_SELECT_BUTTON_TITLE']}'
        accessKey='{$app_strings['LBL_SELECT_BUTTON_KEY']}'
        type='button' class='button' value='{$app_strings['LBL_SELECT_BUTTON_LABEL']}' name='button'
        onclick='open_popup("{$mod_type}", 600, 400, "", true, false, {$encoded_popup_request_data});'
        />
</td>
<script type="text/javascript">
<!--
if(typeof sqs_objects == 'undefined'){
    var sqs_objects = new Array;
}
sqs_objects['MassUpdate_{$varname}'] = {$qsName};
registerSingleSmartInputListener(document.getElementById('mass_{$varname}'));
addToValidateBinaryDependency('MassUpdate', '{$varname}', 'alpha', false, '{$app_strings['ERR_SQS_NO_MATCH_FIELD']} {$app_strings['LBL_ASSIGNED_TO']}','{$id_name}');
-->
</script>
EOHTML;
    }
예제 #4
0
 function display($end = true)
 {
     global $app_strings;
     if (!is_file(sugar_cached("jsLanguage/{$GLOBALS['current_language']}.js"))) {
         require_once 'include/language/jsLanguage.php';
         jsLanguage::createAppStringsCache($GLOBALS['current_language']);
     }
     $jsLang = getVersionedScript("cache/jsLanguage/{$GLOBALS['current_language']}.js", $GLOBALS['sugar_config']['js_lang_version']);
     $this->th->ss->assign('data', $this->data['data']);
     $this->data['pageData']['offsets']['lastOffsetOnPage'] = $this->data['pageData']['offsets']['current'] + count($this->data['data']);
     $this->th->ss->assign('pageData', $this->data['pageData']);
     $navStrings = array('next' => $GLOBALS['app_strings']['LNK_LIST_NEXT'], 'previous' => $GLOBALS['app_strings']['LNK_LIST_PREVIOUS'], 'end' => $GLOBALS['app_strings']['LNK_LIST_END'], 'start' => $GLOBALS['app_strings']['LNK_LIST_START'], 'of' => $GLOBALS['app_strings']['LBL_LIST_OF']);
     $this->th->ss->assign('navStrings', $navStrings);
     $associated_row_data = array();
     //C.L. - Bug 44324 - Override the NAME entry to not display salutation so that the data returned from the popup can be searched on correctly
     $searchNameOverride = !empty($this->seed) && $this->seed instanceof Person && (isset($this->data['data'][0]['FIRST_NAME']) && isset($this->data['data'][0]['LAST_NAME'])) ? true : false;
     global $locale;
     foreach ($this->data['data'] as $val) {
         $associated_row_data[$val['ID']] = $val;
         if ($searchNameOverride) {
             $associated_row_data[$val['ID']]['NAME'] = $locale->getLocaleFormattedName($val['FIRST_NAME'], $val['LAST_NAME']);
         }
     }
     $is_show_fullname = showFullName() ? 1 : 0;
     $json = getJSONobj();
     $this->th->ss->assign('jsLang', $jsLang);
     $this->th->ss->assign('lang', substr($GLOBALS['current_language'], 0, 2));
     $this->th->ss->assign('headerTpl', $this->headerTpl);
     $this->th->ss->assign('footerTpl', $this->footerTpl);
     $this->th->ss->assign('ASSOCIATED_JAVASCRIPT_DATA', 'var associated_javascript_data = ' . $json->encode($associated_row_data) . '; var is_show_fullname = ' . $is_show_fullname . ';');
     $this->th->ss->assign('module', $this->seed->module_dir);
     $request_data = empty($_REQUEST['request_data']) ? '' : $_REQUEST['request_data'];
     $this->th->ss->assign('request_data', $request_data);
     $this->th->ss->assign('fields', $this->fieldDefs);
     $this->th->ss->assign('formData', $this->formData);
     $this->th->ss->assign('APP', $GLOBALS['app_strings']);
     $this->th->ss->assign('MOD', $GLOBALS['mod_strings']);
     if (isset($this->_popupMeta['create']['createButton'])) {
         $this->_popupMeta['create']['createButton'] = translate($this->_popupMeta['create']['createButton']);
     }
     $this->th->ss->assign('popupMeta', $this->_popupMeta);
     $this->th->ss->assign('current_query', base64_encode(serialize($_REQUEST)));
     $this->th->ss->assign('customFields', $this->customFieldDefs);
     $this->th->ss->assign('numCols', NUM_COLS);
     $this->th->ss->assign('massUpdateData', $this->massUpdateData);
     $this->th->ss->assign('sugarVersion', $GLOBALS['sugar_version']);
     $this->th->ss->assign('should_process', $this->should_process);
     if ($this->_create) {
         $this->th->ss->assign('ADDFORM', $this->getQuickCreate());
         //$this->_getAddForm());
         $this->th->ss->assign('ADDFORMHEADER', $this->_getAddFormHeader());
         $this->th->ss->assign('object_name', $this->seed->object_name);
     }
     $this->th->ss->assign('LIST_HEADER', get_form_header($GLOBALS['mod_strings']['LBL_LIST_FORM_TITLE'], '', false));
     $this->th->ss->assign('SEARCH_FORM_HEADER', get_form_header($GLOBALS['mod_strings']['LBL_SEARCH_FORM_TITLE'], '', false));
     $str = $this->th->displayTemplate($this->seed->module_dir, $this->view, $this->tpl);
     return $str;
 }
예제 #5
0
 /**
  * @return void
  * @param unknown $data
  * @param unknown $xTemplateSection
  * @param unknown $html_varName
  * @desc INTERNAL FUNCTION handles the rows
  * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
  * All Rights Reserved.
  * Contributor(s): ______________________________________..
  */
 function processListRows($data, $xtemplateSection, $html_varName)
 {
     global $odd_bg;
     global $even_bg;
     global $hilite_bg;
     global $app_strings, $sugar_version, $sugar_config;
     global $currentModule;
     static $overlib_included;
     if (!$overlib_included) {
         echo '<script type="text/javascript" src="include/javascript/sugar_grp_overlib.js"></script>
             <div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>';
         $overlib_included = true;
     }
     $this->xTemplate->assign('BG_HILITE', $hilite_bg);
     $this->xTemplate->assign('CHECKALL', "<img src='" . SugarThemeRegistry::current()->getImageURL('blank.gif') . "' width=\"1\" height=\"1\" alt=\"\" />");
     //$this->xTemplate->assign("BG_CLICK", $click_bg);
     $oddRow = true;
     $count = 0;
     reset($data);
     //GETTING OFFSET
     $offset = $this->getOffset($html_varName);
     $timeStamp = $this->unique_id();
     $_SESSION[$html_varName . "_FROM_LIST_VIEW"] = $timeStamp;
     $associated_row_data = array();
     //mail merge list
     $mergeList = array();
     $module = '';
     //todo what is this?  It is using an array as a boolean
     while (list($aVal, $aItem) = each($data)) {
         if (isset($this->data_array)) {
             $fields = $this->data_array;
         } else {
             $aItem->check_date_relationships_load();
             $fields = $aItem->get_list_view_data();
         }
         if (is_object($aItem)) {
             // cn: bug 5349
             //add item id to merge list, if the button is clicked
             $mergeList[] = $aItem->id;
             if (empty($module)) {
                 $module = $aItem->module_dir;
             }
         }
         //ADD OFFSET TO ARRAY
         $fields['OFFSET'] = $offset + $count + 1;
         $fields['STAMP'] = $timeStamp;
         if ($this->shouldProcess) {
             $prerow = '';
             if (!isset($this->data_array)) {
                 $prerow .= "<input onclick='sListView.check_item(this, document.MassUpdate)' type='checkbox' class='checkbox' name='mass[]' value='" . $fields['ID'] . "'>";
             }
             $this->xTemplate->assign('PREROW', $prerow);
             $this->xTemplate->assign('CHECKALL', "<input type='checkbox' class='checkbox' name='massall' id='massall' value='' onclick='sListView.check_all(document.MassUpdate, \"mass[]\", this.checked)'>");
         }
         if (!isset($this->data_array)) {
             $tag = $aItem->listviewACLHelper();
             $this->xTemplate->assign('TAG', $tag);
         }
         if ($oddRow) {
             $ROW_COLOR = 'oddListRow';
             $BG_COLOR = $odd_bg;
         } else {
             $ROW_COLOR = 'evenListRow';
             $BG_COLOR = $even_bg;
         }
         $oddRow = !$oddRow;
         $this->xTemplate->assign('ROW_COLOR', $ROW_COLOR);
         $this->xTemplate->assign('BG_COLOR', $BG_COLOR);
         if (isset($this->data_array)) {
             $this->xTemplate->assign('KEY', $aVal);
             $this->xTemplate->assign('VALUE', $aItem);
             $this->xTemplate->assign('INDEX', $count);
         } else {
             //AED -- some modules do not have their additionalDetails.php established. Add a check to ensure require_once does not fail
             // Bug #2786
             if ($this->_additionalDetails && $aItem->ACLAccess('DetailView') && (file_exists('modules/' . $aItem->module_dir . '/metadata/additionalDetails.php') || file_exists('custom/modules/' . $aItem->module_dir . '/metadata/additionalDetails.php'))) {
                 $additionalDetailsFile = 'modules/' . $aItem->module_dir . '/metadata/additionalDetails.php';
                 if (file_exists('custom/modules/' . $aItem->module_dir . '/metadata/additionalDetails.php')) {
                     $additionalDetailsFile = 'custom/modules/' . $aItem->module_dir . '/metadata/additionalDetails.php';
                 }
                 require_once $additionalDetailsFile;
                 $ad_function = (empty($this->additionalDetailsFunction) ? 'additionalDetails' : $this->additionalDetailsFunction) . $aItem->object_name;
                 $results = $ad_function($fields);
                 $results['string'] = str_replace(array("&#039", "'"), '\\&#039', $results['string']);
                 // no xss!
                 if (trim($results['string']) == '') {
                     $results['string'] = $app_strings['LBL_NONE'];
                 }
                 $fields[$results['fieldToAddTo']] = $fields[$results['fieldToAddTo']] . '</a>';
             }
             //fixes bug for IE where empty list view rows causes IE to not display bottom border
             if (isset($fields['DESCRIPTION']) && empty($fields['DESCRIPTION'])) {
                 $fields['DESCRIPTION'] = "&nbsp;";
             }
             if (isset($fields['LIST_ORDER']) && empty($fields['LIST_ORDER'])) {
                 $fields['LIST_ORDER'] = "&nbsp;";
             }
             $this->xTemplate->assign($html_varName, $fields);
             $aItem->setupCustomFields($aItem->module_dir);
             $aItem->custom_fields->populateAllXTPL($this->xTemplate, 'detail', $html_varName, $fields);
         }
         if (!isset($this->data_array) && $aItem->ACLAccess('DetailView')) {
             $count++;
         }
         if (isset($this->data_array)) {
             $count++;
         }
         if (!isset($this->data_array)) {
             $aItem->list_view_parse_additional_sections($this->xTemplate, $xtemplateSection);
             if ($this->xTemplate->exists($xtemplateSection . '.row.pro')) {
                 $this->xTemplate->parse($xtemplateSection . '.row.pro');
             }
         }
         $this->xTemplate->parse($xtemplateSection . '.row');
         if (isset($fields['ID'])) {
             $associated_row_data[$fields['ID']] = $fields;
             // Bug 38908: cleanup data for JS to avoid having &nbsp; shuffled around
             foreach ($fields as $key => $value) {
                 if ($value == '&nbsp;') {
                     $associated_row_data[$fields['ID']][$key] = '';
                 }
             }
         }
     }
     $_SESSION['MAILMERGE_RECORDS'] = $mergeList;
     $_SESSION['MAILMERGE_MODULE_FROM_LISTVIEW'] = $module;
     if (empty($_REQUEST['action']) || $_REQUEST['action'] != 'Popup') {
         $_SESSION['MAILMERGE_MODULE'] = $module;
     }
     if ($this->process_for_popups) {
         $json = getJSONobj();
         $is_show_fullname = showFullName() ? 1 : 0;
         $associated_javascript_data = '<script type="text/javascript">' . "\n" . 'var associated_javascript_data = ' . $json->encode($associated_row_data) . ";\n" . 'var is_show_fullname = ' . $is_show_fullname . ";\n" . '</script>';
         $this->xTemplate->assign('ASSOCIATED_JAVASCRIPT_DATA', $associated_javascript_data);
     }
     $this->xTemplate->parse($xtemplateSection);
 }
예제 #6
0
/* Функции без параметри / аргументи
		======================================*/
function createDinamicHtmlTags()
{
    // функция за изграждане на динамично съдържание.
    echo "<header>" . "<h1>" . "Заглавие" . "</h1>" . "</header>";
}
createDinamicHtmlTags();
// извикване на функция/изпълнение.
/* Функции с параметри / аргументи
		======================================*/
function showFullName($firstname, $lastName)
{
    echo "My full name is: " . $firstname . " " . $lastName;
}
showFullName("Svetoslav", "Toshkin");
/* Капсолиране на имената на променливите като ги дефинираме в тялото на функцията
		===================================================================================*/
function fooArguments()
{
    $a = 5;
    $b = 10;
    $result = $a + $b;
    echo $result;
}
//echo $result; ако се опитаме да изведем $result ще получим грешка undefinded variable / недефинирана променлива.
// Единствения начин да достъпим променливата е като извикаме функцията.
echo fooArguments();
/* Оператор return
		======================================*/
function fooReturn($myCar, $myByke)
예제 #7
0
파일: utils.php 프로젝트: pikkoui/suitecrm
/**
 * get_user_array
 *
 * This is a helper function to return an Array of users depending on the parameters passed into the function.
 * This function uses the get_register_value function by default to use a caching layer where supported.
 * This function has been updated return the array sorted by user preference of name display (bug 62712)
 *
 * @param bool $add_blank Boolean value to add a blank entry to the array results, true by default
 * @param string $status String value indicating the status to filter users by, "Active" by default
 * @param string $user_id String value to specify a particular user id value (searches the id column of users table), blank by default
 * @param bool $use_real_name Boolean value indicating whether or not results should include the full name or just user_name, false by default
 * @param String $user_name_filter String value indicating the user_name filter (searches the user_name column of users table) to optionally search with, blank by default
 * @param string $portal_filter String query filter for portal users (defaults to searching non-portal users), change to blank if you wish to search for all users including portal users
 * @param bool $from_cache Boolean value indicating whether or not to use the get_register_value function for caching, true by default
 * @return array Array of users matching the filter criteria that may be from cache (if similar search was previously run)
 */
function get_user_array($add_blank = true, $status = "Active", $user_id = '', $use_real_name = false, $user_name_filter = '', $portal_filter = ' AND portal_only=0 ', $from_cache = true)
{
    global $locale, $sugar_config, $current_user;
    if (empty($locale)) {
        $locale = new Localization();
    }
    if ($from_cache) {
        $key_name = $add_blank . $status . $user_id . $use_real_name . $user_name_filter . $portal_filter;
        $user_array = get_register_value('user_array', $key_name);
    }
    if (empty($user_array)) {
        $db = DBManagerFactory::getInstance();
        $temp_result = array();
        // Including deleted users for now.
        if (empty($status)) {
            $query = "SELECT id, first_name, last_name, user_name from users WHERE 1=1" . $portal_filter;
        } else {
            $query = "SELECT id, first_name, last_name, user_name from users WHERE status='{$status}'" . $portal_filter;
        }
        /* BEGIN - SECURITY GROUPS */
        global $current_user, $sugar_config;
        if (!is_admin($current_user) && isset($sugar_config['securitysuite_filter_user_list']) && $sugar_config['securitysuite_filter_user_list'] == true && (empty($_REQUEST['module']) || $_REQUEST['module'] != 'Home') && (empty($_REQUEST['action']) || $_REQUEST['action'] != 'DynamicAction')) {
            require_once 'modules/SecurityGroups/SecurityGroup.php';
            global $current_user;
            $group_where = SecurityGroup::getGroupUsersWhere($current_user->id);
            $query .= " AND (" . $group_where . ") ";
        }
        /* END - SECURITY GROUPS */
        if (!empty($user_name_filter)) {
            $user_name_filter = $db->quote($user_name_filter);
            $query .= " AND user_name LIKE '{$user_name_filter}%' ";
        }
        if (!empty($user_id)) {
            $query .= " OR id='{$user_id}'";
        }
        //get the user preference for name formatting, to be used in order by
        $order_by_string = ' user_name ASC ';
        if (!empty($current_user) && !empty($current_user->id)) {
            $formatString = $current_user->getPreference('default_locale_name_format');
            //create the order by string based on position of first and last name in format string
            $order_by_string = ' user_name ASC ';
            $firstNamePos = strpos($formatString, 'f');
            $lastNamePos = strpos($formatString, 'l');
            if ($firstNamePos !== false || $lastNamePos !== false) {
                //its possible for first name to be skipped, check for this
                if ($firstNamePos === false) {
                    $order_by_string = 'last_name ASC';
                } else {
                    $order_by_string = $lastNamePos < $firstNamePos ? "last_name, first_name ASC" : "first_name, last_name ASC";
                }
            }
        }
        $query = $query . ' ORDER BY ' . $order_by_string;
        $GLOBALS['log']->debug("get_user_array query: {$query}");
        $result = $db->query($query, true, "Error filling in user array: ");
        if ($add_blank == true) {
            // Add in a blank row
            $temp_result[''] = '';
        }
        // Get the id and the name.
        while ($row = $db->fetchByAssoc($result)) {
            if ($use_real_name == true || showFullName()) {
                if (isset($row['last_name'])) {
                    // cn: we will ALWAYS have both first_name and last_name (empty value if blank in db)
                    $temp_result[$row['id']] = $locale->getLocaleFormattedName($row['first_name'], $row['last_name']);
                } else {
                    $temp_result[$row['id']] = $row['user_name'];
                }
            } else {
                $temp_result[$row['id']] = $row['user_name'];
            }
        }
        $user_array = $temp_result;
        if ($from_cache) {
            set_register_value('user_array', $key_name, $temp_result);
        }
    }
    return $user_array;
}
예제 #8
0
 function display($end = true)
 {
     global $app_strings;
     if (!is_file($GLOBALS['sugar_config']['cache_dir'] . 'jsLanguage/' . $GLOBALS['current_language'] . '.js')) {
         require_once 'include/language/jsLanguage.php';
         jsLanguage::createAppStringsCache($GLOBALS['current_language']);
     }
     $jsLang = '<script type="text/javascript" src="' . $GLOBALS['sugar_config']['cache_dir'] . 'jsLanguage/' . $GLOBALS['current_language'] . '.js?s=' . $GLOBALS['sugar_version'] . '&c=' . $GLOBALS['sugar_config']['js_custom_version'] . '&j=' . $GLOBALS['sugar_config']['js_lang_version'] . '"></script>';
     $this->th->ss->assign('data', $this->data['data']);
     $this->data['pageData']['offsets']['lastOffsetOnPage'] = $this->data['pageData']['offsets']['current'] + count($this->data['data']);
     $this->th->ss->assign('pageData', $this->data['pageData']);
     $navStrings = array('next' => $GLOBALS['app_strings']['LNK_LIST_NEXT'], 'previous' => $GLOBALS['app_strings']['LNK_LIST_PREVIOUS'], 'end' => $GLOBALS['app_strings']['LNK_LIST_END'], 'start' => $GLOBALS['app_strings']['LNK_LIST_START'], 'of' => $GLOBALS['app_strings']['LBL_LIST_OF']);
     $this->th->ss->assign('navStrings', $navStrings);
     $associated_row_data = array();
     foreach ($this->data['data'] as $val) {
         $associated_row_data[$val['ID']] = $val;
     }
     $is_show_fullname = showFullName() ? 1 : 0;
     $json = getJSONobj();
     $this->th->ss->assign('jsLang', $jsLang);
     $this->th->ss->assign('lang', substr($GLOBALS['current_language'], 0, 2));
     $this->th->ss->assign('headerTpl', 'include/Popups/tpls/header.tpl');
     $this->th->ss->assign('footerTpl', 'include/Popups/tpls/footer.tpl');
     $this->th->ss->assign('ASSOCIATED_JAVASCRIPT_DATA', 'var associated_javascript_data = ' . $json->encode($associated_row_data) . '; var is_show_fullname = ' . $is_show_fullname . ';');
     $this->th->ss->assign('module', $this->seed->module_dir);
     $request_data = empty($_REQUEST['request_data']) ? '' : $_REQUEST['request_data'];
     $this->th->ss->assign('request_data', $request_data);
     $this->th->ss->assign('fields', $this->fieldDefs);
     $this->th->ss->assign('formData', $this->formData);
     $this->th->ss->assign('APP', $GLOBALS['app_strings']);
     $this->th->ss->assign('MOD', $GLOBALS['mod_strings']);
     $this->th->ss->assign('popupMeta', $this->_popupMeta);
     $this->th->ss->assign('current_query', base64_encode(serialize($_REQUEST)));
     $this->th->ss->assign('customFields', $this->customFieldDefs);
     $this->th->ss->assign('numCols', NUM_COLS);
     $this->th->ss->assign('massUpdateData', $this->massUpdateData);
     $this->th->ss->assign('jsCustomVersion', $GLOBALS['sugar_config']['js_custom_version']);
     $this->th->ss->assign('sugarVersion', $GLOBALS['sugar_version']);
     $this->th->ss->assign('should_process', $this->should_process);
     if ($this->_create) {
         $this->th->ss->assign('ADDFORM', $this->getQuickCreate());
         //$this->_getAddForm());
         $this->th->ss->assign('ADDFORMHEADER', $this->_getAddFormHeader());
         $this->th->ss->assign('object_name', $this->seed->object_name);
     }
     $this->th->ss->assign('LIST_HEADER', get_form_header($GLOBALS['mod_strings']['LBL_LIST_FORM_TITLE'], '', false));
     $this->th->ss->assign('SEARCH_FORM_HEADER', get_form_header($GLOBALS['mod_strings']['LBL_SEARCH_FORM_TITLE'], '', false));
     $str = $this->th->displayTemplate($this->seed->module_dir, $this->view, $this->tpl);
     return $str;
 }
 /**
  * Returns the list of users, faster than using query method for Users module
  * 
  * @param array $args arguments used to construct query, see query() for example
  * 
  * @return array list of users returned
  */
 function get_user_array($args)
 {
     global $json;
     $json = getJSONobj();
     $response = array();
     if (showFullName()) {
         // utils.php, if system is configured to show full name
         $user_array = getUserArrayFromFullName($args['conditions'][0]['value'], true);
     } else {
         $user_array = get_user_array(false, "Active", '', false, $args['conditions'][0]['value'], ' AND portal_only=0 ', false);
     }
     $response['totalCount'] = count($user_array);
     $response['fields'] = array();
     $i = 0;
     foreach ($user_array as $id => $name) {
         array_push($response['fields'], array('id' => (string) $id, 'user_name' => $name, 'module' => 'Users'));
         $i++;
     }
     return $json->encodeReal($response);
 }
/**
 * retrieves Users matching passed criteria
 */
function json_get_user_array($request_id, &$params)
{
    global $json;
    $args = $params[0];
    //decode condition parameter values..
    if (is_array($args['conditions'])) {
        foreach ($args['conditions'] as $key => $condition) {
            if (!empty($condition['value'])) {
                $args['conditions'][$key]['value'] = $json->decode($condition['value']);
            }
        }
    }
    $response = array();
    $response['id'] = $request_id;
    $response['result'] = array();
    $response['result']['list'] = array();
    if (showFullName()) {
        $user_array = getUserArrayFromFullName($args['conditions'][0]['value']);
    } else {
        $user_array = get_user_array(false, "Active", $focus->assigned_user_id, false, $args['conditions'][0]['value']);
    }
    foreach ($user_array as $id => $name) {
        array_push($response['result']['list'], array('fields' => array('id' => $id, 'user_name' => $name), 'module' => 'Users'));
    }
    print $json->encode($response);
    exit;
}
예제 #11
0
    $sugar_smarty->assign("mail_smtpdisplay", $mail_smtpdisplay);
    $sugar_smarty->assign("mail_smtpserver", $mail_smtpserver);
    $sugar_smarty->assign("mail_smtpuser", $mail_smtpuser);
    $sugar_smarty->assign("mail_smtppass", "");
    $sugar_smarty->assign("mail_haspass", empty($systemOutboundEmail->mail_smtppass) ? 0 : 1);
    $sugar_smarty->assign("mail_smtpauth_req", $mail_smtpauth_req);
    $sugar_smarty->assign('MAIL_SMTPPORT', $mail_smtpport);
    $sugar_smarty->assign('MAIL_SMTPSSL', $mail_smtpssl);
}
$sugar_smarty->assign('HIDE_IF_CAN_USE_DEFAULT_OUTBOUND', $hide_if_can_use_default);
$reports_to_change_button_html = '';
if ($is_current_admin) {
    //////////////////////////////////////
    ///
    /// SETUP USER POPUP
    $reportsDisplayName = showFullName() ? 'name' : 'user_name';
    $popup_request_data = array('call_back_function' => 'set_return', 'form_name' => 'EditView', 'field_to_name_array' => array('id' => 'reports_to_id', "{$reportsDisplayName}" => 'reports_to_name'));
    $json = getJSONobj();
    $encoded_popup_request_data = $json->encode($popup_request_data);
    $sugar_smarty->assign('encoded_popup_request_data', $encoded_popup_request_data);
    //
    ///////////////////////////////////////
    $reports_to_change_button_html = '<input type="button"' . " title=\"{$app_strings['LBL_SELECT_BUTTON_TITLE']}\"" . " accesskey=\"{$app_strings['LBL_SELECT_BUTTON_KEY']}\"" . " value=\"{$app_strings['LBL_SELECT_BUTTON_LABEL']}\"" . ' tabindex="5" class="button" name="btn1"' . " onclick='open_popup(\"Users\", 600, 400, \"\", true, false, {$encoded_popup_request_data});'" . "' />";
} else {
    $sugar_smarty->assign('IS_ADMIN_DISABLED', 'disabled="disabled"');
}
$sugar_smarty->assign('REPORTS_TO_CHANGE_BUTTON', $reports_to_change_button_html);
/* Module Tab Chooser */
require_once 'include/templates/TemplateGroupChooser.php';
require_once 'modules/MySettings/TabController.php';
$chooser = new TemplateGroupChooser();
 public function display()
 {
     global $current_user, $app_strings, $sugar_config, $currentModule, $sugar_version;
     //load license validation config
     require_once 'modules/' . $currentModule . '/license/config.php';
     echo $this->getModuleTitle();
     $GLOBALS['log']->info("License Configuration");
     //$this->ss->assign("MOD", $mod_strings);
     //$this->ss->assign("APP", $app_strings);
     //todo: redirect appropriately
     $this->ss->assign("RETURN_MODULE", "Administration");
     $this->ss->assign("RETURN_ACTION", "index");
     $this->ss->assign("MODULE", $currentModule);
     $license_strings = ViewLicense::loadLicenseStrings();
     $this->ss->assign("LICENSE", $license_strings);
     if (!empty($sugar_config['outfitters_licenses']) && !empty($sugar_config['outfitters_licenses'][$outfitters_config['shortname']])) {
         $this->ss->assign("license_key", $sugar_config['outfitters_licenses'][$outfitters_config['shortname']]);
     }
     $this->ss->assign("continue_url", $outfitters_config['continue_url']);
     $this->ss->assign("file_path", getJSPath("modules/" . $currentModule . "/license/lib/jquery-1.7.1.min.js"));
     if (preg_match("/^6.*/", $sugar_version)) {
         $this->ss->assign("IS_SUGAR_6", true);
     } else {
         $this->ss->assign("IS_SUGAR_6", false);
     }
     if (!function_exists('curl_init')) {
         global $current_language;
         $admin_mod_strings = return_module_language($current_language, 'Administration');
         $curl_not_enabled = $admin_mod_strings['ERR_ENABLE_CURL'];
         $this->ss->assign("CURL_NOT_ENABLED", $curl_not_enabled);
     }
     if (isset($outfitters_config['validate_users']) && $outfitters_config['validate_users'] == true) {
         $this->ss->assign("validate_users", true);
         //get user count for all active, non-portal, non-group users
         $active_users = get_user_array(FALSE, 'Active', '', false, '', ' AND portal_only=0 AND is_group=0');
         $this->ss->assign("current_users", count($active_users));
         $this->ss->assign("user_count_param", "user_count: '" . count($active_users) . "'");
     } else {
         $this->ss->assign("validate_users", false);
         $this->ss->assign("current_users", '');
         $this->ss->assign("user_count_param", '');
     }
     if (isset($outfitters_config['manage_licensed_users']) && $outfitters_config['manage_licensed_users'] == true) {
         $this->ss->assign("manage_licensed_users", true);
         $this->ss->assign("validation_required", true);
         //check if here is a key already...if so then validate to ensure latest licensed user count is pulled in
         require_once 'modules/Administration/Administration.php';
         $administration = new Administration();
         $administration->retrieveSettings();
         $last_validation = $administration->settings['SugarOutfitters_' . $outfitters_config['shortname']];
         $trimmed_last = trim($last_validation);
         //only run a license check if one has been done in the past
         if (!empty($trimmed_last)) {
             //if new then don't do
             require_once 'modules/' . $currentModule . '/license/OutfittersLicense.php';
             $validated = OutfittersLicense::doValidate($currentModule);
             $store = array('last_ran' => time(), 'last_result' => $validated);
             $serialized = base64_encode(serialize($store));
             $administration->saveSetting('SugarOutfitters', $outfitters_config['shortname'], $serialized);
             $licensed_users = 0;
             //check last validation
             if (!empty($validated['result'])) {
                 $licensed_users = $validated['result']['licensed_user_count'];
                 if (!is_numeric($licensed_users)) {
                     $licensed_users = 0;
                 }
                 $this->ss->assign("validation_required", false);
             }
         }
         $this->ss->assign("licensed_users", $licensed_users);
         require_once 'include/templates/TemplateGroupChooser.php';
         $chooser = new TemplateGroupChooser();
         $chooser->args['id'] = 'edit_licensed_users';
         $chooser->args['values_array'] = array();
         $chooser->args['values_array'][0] = get_user_array(false, 'Active', '', false, '', " AND is_group=0");
         $chooser->args['values_array'][1] = array();
         $used_licenses = 0;
         global $db, $locale;
         $result = $db->query("SELECT users.id, users.user_name, users.first_name, users.last_name FROM so_users INNER JOIN users ON so_users.user_id = users.id WHERE shortname = '" . $db->quote($outfitters_config['shortname']) . "'", false);
         while ($row = $db->fetchByAssoc($result)) {
             $used_licenses++;
             $display_name = $row['user_name'];
             if (showFullName()) {
                 if (isset($row['last_name'])) {
                     // cn: we will ALWAYS have both first_name and last_name (empty value if blank in db)
                     $display_name = $locale->getLocaleFormattedName($row['first_name'], $row['last_name']);
                 }
             }
             $chooser->args['values_array'][1][$row['id']] = $display_name;
             unset($chooser->args['values_array'][0][$row['id']]);
         }
         $this->ss->assign("available_licensed_users", $licensed_users - $used_licenses);
         $chooser->args['left_name'] = 'unlicensed_users';
         $chooser->args['right_name'] = 'licensed_users';
         $chooser->args['left_label'] = $license_strings['LBL_UNLICENSED_USER_LIST'];
         $chooser->args['right_label'] = $license_strings['LBL_LICENSED_USER_LIST'];
         $chooser->args['title'] = '';
         $this->ss->assign('USER_CHOOSER', $chooser->display());
         $this->ss->assign('CHOOSER_SCRIPT', 'set_chooser();');
         $this->ss->assign('CHOOSE_WHICH', '');
     } else {
         $this->ss->assign("manage_licensed_users", false);
     }
     $this->ss->display('modules/' . $currentModule . '/license/tpls/license.tpl');
 }
예제 #13
0
/**
 * get_user_array
 *
 * This is a helper function to return an Array of users depending on the parameters passed into the function.
 * This function uses the get_register_value function by default to use a caching layer where supported.
 *
 * @param bool $add_blank Boolean value to add a blank entry to the array results, true by default
 * @param string $status String value indicating the status to filter users by, "Active" by default
 * @param string $user_id String value to specify a particular user id value (searches the id column of users table), blank by default
 * @param bool $use_real_name Boolean value indicating whether or not results should include the full name or just user_name, false by default
 * @param String $user_name_filter String value indicating the user_name filter (searches the user_name column of users table) to optionally search with, blank by default
 * @param string $portal_filter String query filter for portal users (defaults to searching non-portal users), change to blank if you wish to search for all users including portal users
 * @param bool $from_cache Boolean value indicating whether or not to use the get_register_value function for caching, true by default
 * @return array Array of users matching the filter criteria that may be from cache (if similar search was previously run)
 */
function get_user_array($add_blank = true, $status = "Active", $user_id = '', $use_real_name = false, $user_name_filter = '', $portal_filter = ' AND portal_only=0 ', $from_cache = true)
{
    global $locale, $current_user;
    if (empty($locale)) {
        $locale = Localization::getObject();
    }
    $db = DBManagerFactory::getInstance();
    // Pre-build query for use as cache key
    // Including deleted users for now.
    if (empty($status)) {
        $query = "SELECT id, first_name, last_name, user_name FROM users ";
        $where = "1=1" . $portal_filter;
    } else {
        $query = "SELECT id, first_name, last_name, user_name FROM users ";
        $where = "status='{$status}'" . $portal_filter;
    }
    $user = BeanFactory::getBean('Users');
    $user->addVisibilityFrom($query);
    $query .= " WHERE {$where} ";
    $user->addVisibilityWhere($query);
    if (!empty($user_name_filter)) {
        $user_name_filter = $db->quote($user_name_filter);
        $query .= " AND user_name LIKE '{$user_name_filter}%' ";
    }
    if (!empty($user_id)) {
        $query .= " OR id='{$user_id}'";
    }
    //get the user preference for name formatting, to be used in order by
    $order_by_string = ' user_name ASC ';
    if (!empty($current_user) && !empty($current_user->id)) {
        $formatString = $current_user->getPreference('default_locale_name_format');
        //create the order by string based on position of first and last name in format string
        $firstNamePos = strpos($formatString, 'f');
        $lastNamePos = strpos($formatString, 'l');
        if ($firstNamePos !== false || $lastNamePos !== false) {
            //its possible for first name to be skipped, check for this
            if ($firstNamePos === false) {
                $order_by_string = 'last_name ASC';
            } else {
                $order_by_string = $lastNamePos < $firstNamePos ? "last_name, first_name ASC" : "first_name, last_name ASC";
            }
        }
    }
    $query = $query . ' ORDER BY ' . $order_by_string;
    if ($from_cache) {
        $key_name = $query . $status . $user_id . $use_real_name . $user_name_filter . $portal_filter;
        $key_name = md5($key_name);
        $user_array = get_register_value('user_array', $key_name);
    }
    if (empty($user_array)) {
        $temp_result = array();
        $GLOBALS['log']->debug("get_user_array query: {$query}");
        $result = $db->query($query, true, "Error filling in user array: ");
        // Get the id and the name.
        while ($row = $db->fetchByAssoc($result)) {
            if ($use_real_name == true || showFullName()) {
                if (isset($row['last_name'])) {
                    // cn: we will ALWAYS have both first_name and last_name (empty value if blank in db)
                    $temp_result[$row['id']] = $locale->formatName('Users', $row);
                } else {
                    $temp_result[$row['id']] = $row['user_name'];
                }
            } else {
                $temp_result[$row['id']] = $row['user_name'];
            }
        }
        $user_array = $temp_result;
        if ($from_cache) {
            set_register_value('user_array', $key_name, $temp_result);
        }
    }
    if ($add_blank) {
        $user_array[''] = '';
    }
    return $user_array;
}
예제 #14
0
 /**
  * Displays the header on section of the page; basically everything before the content
  * @deprecated since 7.0, will be removed from 7.2.
  */
 public function displayHeader($retModTabs = false)
 {
     global $theme;
     global $max_tabs;
     global $app_strings;
     global $current_user;
     global $app_list_strings;
     global $mod_strings;
     global $current_language;
     $GLOBALS['app']->headerDisplayed = true;
     $themeObject = SugarThemeRegistry::current();
     $theme = $themeObject->__toString();
     $ss = new Sugar_Smarty();
     $ss->assign("APP", $app_strings);
     $ss->assign("THEME", $theme);
     $ss->assign("THEME_IE6COMPAT", $themeObject->ie6compat ? 'true' : 'false');
     $ss->assign("MODULE_NAME", $this->module);
     $ss->assign("langHeader", get_language_header());
     $ss->assign('use_table_container', isset($this->options['use_table_container']) ? $this->options['use_table_container'] : false);
     // set ab testing if exists
     $testing = isset($_REQUEST["testing"]) ? $_REQUEST['testing'] : "a";
     $ss->assign("ABTESTING", $testing);
     // get browser title
     $ss->assign("SYSTEM_NAME", $this->getBrowserTitle());
     // get css
     $ss->assign("SUGAR_CSS", $this->getThemeCss());
     // get javascript
     ob_start();
     $this->renderJavascript();
     $ss->assign("SUGAR_JS", ob_get_contents() . $themeObject->getJS());
     ob_end_clean();
     $favicon = $this->getFavicon();
     $ss->assign('FAVICON_URL', $favicon['url']);
     // build the shortcut menu
     $shortcut_menu = array();
     foreach ($this->getMenu() as $key => $menu_item) {
         $shortcut_menu[$key] = array("URL" => $menu_item[0], "LABEL" => $menu_item[1], "MODULE_NAME" => $menu_item[2], "IMAGE" => $themeObject->getImage($menu_item[2], "border='0' align='absmiddle'", null, null, '.gif', $menu_item[1]));
     }
     $ss->assign("SHORTCUT_MENU", $shortcut_menu);
     // handle rtl text direction
     if (isset($_REQUEST['RTL']) && $_REQUEST['RTL'] == 'RTL') {
         $_SESSION['RTL'] = true;
     }
     if (isset($_REQUEST['LTR']) && $_REQUEST['LTR'] == 'LTR') {
         unset($_SESSION['RTL']);
     }
     if (isset($_SESSION['RTL']) && $_SESSION['RTL']) {
         $ss->assign("DIR", 'dir="RTL"');
     }
     // handle resizing of the company logo correctly on the fly
     $companyLogoURL = $themeObject->getImageURL('company_logo.png', true, true);
     $companyLogoURL_arr = explode('?', $companyLogoURL);
     $companyLogoURL = $companyLogoURL_arr[0];
     $company_logo_attributes = sugar_cache_retrieve('company_logo_attributes');
     if (!empty($company_logo_attributes)) {
         $ss->assign("COMPANY_LOGO_MD5", $company_logo_attributes[0]);
         $ss->assign("COMPANY_LOGO_WIDTH", $company_logo_attributes[1]);
         $ss->assign("COMPANY_LOGO_HEIGHT", $company_logo_attributes[2]);
     } else {
         // Always need to md5 the file
         $ss->assign("COMPANY_LOGO_MD5", md5_file($companyLogoURL));
         list($width, $height) = getimagesize($companyLogoURL);
         if ($width > 212 || $height > 40) {
             $resizePctWidth = ($width - 212) / 212;
             $resizePctHeight = ($height - 40) / 40;
             if ($resizePctWidth > $resizePctHeight) {
                 $resizeAmount = $width / 212;
             } else {
                 $resizeAmount = $height / 40;
             }
             $ss->assign("COMPANY_LOGO_WIDTH", round($width * (1 / $resizeAmount)));
             $ss->assign("COMPANY_LOGO_HEIGHT", round($height * (1 / $resizeAmount)));
         } else {
             $ss->assign("COMPANY_LOGO_WIDTH", $width);
             $ss->assign("COMPANY_LOGO_HEIGHT", $height);
         }
         // Let's cache the results
         sugar_cache_put('company_logo_attributes', array($ss->get_template_vars("COMPANY_LOGO_MD5"), $ss->get_template_vars("COMPANY_LOGO_WIDTH"), $ss->get_template_vars("COMPANY_LOGO_HEIGHT")));
     }
     $ss->assign("COMPANY_LOGO_URL", getJSPath($companyLogoURL) . "&logo_md5=" . $ss->get_template_vars("COMPANY_LOGO_MD5"));
     // get the global links (Currently not used, since we hardcoded the metadata for profileactions
     // and upon upgrade, we convert global link in metadataconverter to create custom metadata
     // for profileactions, Thus, code below can be removed in the future)
     $gcls = array();
     $global_control_links = array();
     require "include/globalControlLinks.php";
     foreach ($global_control_links as $key => $value) {
         if ($key == 'users') {
             //represents logout link.
             $ss->assign("LOGOUT_LINK", $value['linkinfo'][key($value['linkinfo'])]);
             $ss->assign("LOGOUT_LABEL", key($value['linkinfo']));
             //key value for first element.
             continue;
         }
         foreach ($value as $linkattribute => $attributevalue) {
             // get the main link info
             if ($linkattribute == 'linkinfo') {
                 $gcls[$key] = array("LABEL" => key($attributevalue), "URL" => current($attributevalue), "SUBMENU" => array());
                 if (substr($gcls[$key]["URL"], 0, 11) == "javascript:") {
                     $gcls[$key]["ONCLICK"] = substr($gcls[$key]["URL"], 11);
                     $gcls[$key]["URL"] = "javascript:void(0)";
                 }
             }
             // and now the sublinks
             if ($linkattribute == 'submenu' && is_array($attributevalue)) {
                 foreach ($attributevalue as $submenulinkkey => $submenulinkinfo) {
                     $gcls[$key]['SUBMENU'][$submenulinkkey] = array("LABEL" => key($submenulinkinfo), "URL" => current($submenulinkinfo));
                 }
                 if (substr($gcls[$key]['SUBMENU'][$submenulinkkey]["URL"], 0, 11) == "javascript:") {
                     $gcls[$key]['SUBMENU'][$submenulinkkey]["ONCLICK"] = substr($gcls[$key]['SUBMENU'][$submenulinkkey]["URL"], 11);
                     $gcls[$key]['SUBMENU'][$submenulinkkey]["URL"] = "javascript:void(0)";
                 }
             }
         }
     }
     $ss->assign("GCLS", $gcls);
     $ss->assign("SEARCH", isset($_REQUEST['query_string']) ? $_REQUEST['query_string'] : '');
     if ($this->action == "EditView" || $this->action == "Login") {
         $ss->assign("ONLOAD", 'onload="set_focus()"');
     }
     $ss->assign("AUTHENTICATED", isset($_SESSION["authenticated_user_id"]));
     $ss->assign("ISPRINT", isset($_REQUEST['print']));
     //this will be used by header.tpl to hide the megamenu bar when its 'print' view
     // get other things needed for page style popup
     if (isset($_SESSION["authenticated_user_id"])) {
         // get the current user name and id
         $ss->assign("CURRENT_USER", $current_user->full_name == '' || !showFullName() ? $current_user->user_name : $current_user->full_name);
         $ss->assign("CURRENT_USER_ID", $current_user->id);
         // get the last viewed records
         $tracker = BeanFactory::getBean('Trackers');
         $history = $tracker->get_recently_viewed($current_user->id);
         $ss->assign("recentRecords", $this->processRecentRecords($history));
     }
     $bakModStrings = $mod_strings;
     $imageURL = SugarThemeRegistry::current()->getImageURL("dashboard.png");
     $homeImage = "<img src='{$imageURL}'>";
     $ss->assign("homeImage", $homeImage);
     global $mod_strings;
     $mod_strings = $bakModStrings;
     /******************DC MENU*********************/
     // DEPRECATED since 7.0, will be removed from 7.2
     //		if(!empty($current_user->id) && !$this->_getOption('view_print')){
     //			require_once('include/DashletContainer/DCFactory.php');
     //            require_once('include/SugarSearchEngine/SugarSearchEngineFactory.php');
     //			$dcm = DCFactory::getContainer(null, 'DCMenu');
     //			$notifData = $dcm->getNotifications();
     //			$dcjs = getVersionedScript('include/DashletContainer/Containers/DCMenu.js');
     //			$ss->assign('NOTIFCLASS', $notifData['class']);
     //			$ss->assign('NOTIFCODE', $notifData['code']);
     //			$ss->assign('NOTIFICON', $notifData['icon']);
     //			$ss->assign('DCSCRIPT', $dcm->getScript());
     //			$ss->assign('ICONSEARCH', $dcm->getSearchIcon());
     //			$ss->assign('DCACTIONS',$dcm->getMenus());
     //			$ss->assign('PICTURE', $current_user->picture);
     //            $ftsAutocompleteEnable = TRUE;
     //            $searchEngine = SugarSearchEngineFactory::getInstance();
     //            if( ($searchEngine instanceOf SugarSearchEngine) || (isset($GLOBALS['sugar_config']['full_text_engine'])
     //                && isset($GLOBALS['sugar_config']['full_text_engine']['disable_autocomplete']) && $GLOBALS['sugar_config']['full_text_engine']['disable_autocomplete'] )
     //                )
     //                    $ftsAutocompleteEnable = FALSE;
     //
     //            if (SugarSearchEngineAbstractBase::isSearchEngineDown()) {
     //                $ftsAutocompleteEnable = false;
     //            }
     //            $ss->assign('FTS_AUTOCOMPLETE_ENABLE', $ftsAutocompleteEnable);
     //			$ss->assign('AJAX', isset($_REQUEST['ajax_load'])?$_REQUEST['ajax_load']:"0");
     //			$ss->assign('ACTION', isset($_REQUEST['action'])?$_REQUEST['action']:"");
     //			$ss->assign('FULL', isset($_REQUEST['full'])?$_REQUEST['full']:"false");
     //			if(is_admin($GLOBALS['current_user'])){
     //				$ss->assign('ISADMIN', true);
     //			} else {
     //				$ss->assign('ISADMIN', false);
     //			}
     //			$ss->assign('SUGAR_DCJS', $dcjs);
     //			//$ss->assign('SUGAR_DCMENU', $data['html']);
     //		}
     /******************END DC MENU*********************/
     $headerTpl = $themeObject->getTemplate('header.tpl');
     if (inDeveloperMode()) {
         $ss->clear_compiled_tpl($headerTpl);
     }
     $ss->display($headerTpl);
     $this->includeClassicFile('modules/Administration/DisplayWarnings.php');
     $errorMessages = SugarApplication::getErrorMessages();
     if (!empty($errorMessages)) {
         foreach ($errorMessages as $error_message) {
             echo '<p class="error">' . $error_message . '</p>';
         }
     }
 }
예제 #15
0
 /**
  * Returns user array
  *
  * @param string $condition
  * @return array
  */
 protected function getUserArray($condition)
 {
     return showFullName() ? getUserArrayFromFullName($condition, true) : get_user_array(false, 'Active', '', false, $condition, ' AND portal_only=0 ', false);
 }
예제 #16
0
 /**
  * @return void
  * @param unknown $data
  * @param unknown $xTemplateSection
  * @param unknown $html_varName
  * @desc INTERNAL FUNCTION handles the rows
  * Portions created by SugarCRM are Copyright (C) SugarCRM, Inc.
  * All Rights Reserved.
  * Contributor(s): ______________________________________..
  */
 function processListRows($data, $xtemplateSection, $html_varName)
 {
     global $odd_bg;
     global $even_bg;
     global $hilite_bg;
     global $app_strings, $sugar_version, $sugar_config;
     global $currentModule;
     $this->xTemplate->assign('BG_HILITE', $hilite_bg);
     $this->xTemplate->assign('CHECKALL', SugarThemeRegistry::current()->getImage('blank', '', 1, 1, ".gif", ''));
     //$this->xTemplate->assign("BG_CLICK", $click_bg);
     $oddRow = true;
     $count = 0;
     reset($data);
     //GETTING OFFSET
     $offset = $this->getOffset($html_varName);
     $timeStamp = $this->unique_id();
     $_SESSION[$html_varName . "_FROM_LIST_VIEW"] = $timeStamp;
     $associated_row_data = array();
     //mail merge list
     $mergeList = array();
     $module = '';
     //todo what is this?  It is using an array as a boolean
     while (list($aVal, $aItem) = each($data)) {
         if (isset($this->data_array)) {
             $fields = $this->data_array;
         } else {
             $aItem->check_date_relationships_load();
             $fields = $aItem->get_list_view_data();
         }
         if (is_object($aItem)) {
             // cn: bug 5349
             //add item id to merge list, if the button is clicked
             $mergeList[] = $aItem->id;
             if (empty($module)) {
                 $module = $aItem->module_dir;
             }
         }
         //ADD OFFSET TO ARRAY
         $fields['OFFSET'] = $offset + $count + 1;
         $fields['STAMP'] = $timeStamp;
         if ($this->shouldProcess) {
             $prerow = '';
             if (!isset($this->data_array)) {
                 $prerow .= "<input onclick='sListView.check_item(this, document.MassUpdate)' type='checkbox' class='checkbox' name='mass[]' value='" . $fields['ID'] . "'>";
             }
             $this->xTemplate->assign('PREROW', $prerow);
             $this->xTemplate->assign('CHECKALL', "<input type='checkbox' class='checkbox'  title='" . $GLOBALS['app_strings']['LBL_SELECT_ALL_TITLE'] . "'  name='massall' id='massall' value='' onclick='sListView.check_all(document.MassUpdate, \"mass[]\", this.checked)'>");
         }
         if (!isset($this->data_array)) {
             $tag = $aItem->listviewACLHelper();
             $this->xTemplate->assign('TAG', $tag);
         }
         if ($oddRow) {
             $ROW_COLOR = 'oddListRow';
             $BG_COLOR = $odd_bg;
         } else {
             $ROW_COLOR = 'evenListRow';
             $BG_COLOR = $even_bg;
         }
         $oddRow = !$oddRow;
         $this->xTemplate->assign('ROW_COLOR', $ROW_COLOR);
         $this->xTemplate->assign('BG_COLOR', $BG_COLOR);
         if (isset($this->data_array)) {
             $this->xTemplate->assign('KEY', $aVal);
             $this->xTemplate->assign('VALUE', $aItem);
             $this->xTemplate->assign('INDEX', $count);
         } else {
             //AED -- some modules do not have their additionalDetails.php established. Add a check to ensure require_once does not fail
             // Bug #2786
             if ($this->_additionalDetails && $aItem->ACLAccess('DetailView') && (file_exists('modules/' . $aItem->module_dir . '/metadata/additionalDetails.php') || file_exists('custom/modules/' . $aItem->module_dir . '/metadata/additionalDetails.php'))) {
                 $additionalDetailsFile = 'modules/' . $aItem->module_dir . '/metadata/additionalDetails.php';
                 if (file_exists('custom/modules/' . $aItem->module_dir . '/metadata/additionalDetails.php')) {
                     $additionalDetailsFile = 'custom/modules/' . $aItem->module_dir . '/metadata/additionalDetails.php';
                 }
                 require_once $additionalDetailsFile;
                 $ad_function = (empty($this->additionalDetailsFunction) ? 'additionalDetails' : $this->additionalDetailsFunction) . $aItem->object_name;
                 $results = $ad_function($fields);
                 $results['string'] = str_replace(array("&#039", "'"), '\\&#039', $results['string']);
                 // no xss!
                 if (trim($results['string']) == '') {
                     $results['string'] = $app_strings['LBL_NONE'];
                 }
                 $fields[$results['fieldToAddTo']] = $fields[$results['fieldToAddTo']] . '</a>';
             }
             if ($aItem->ACLAccess('Delete')) {
                 $delete = '<a class="listViewTdToolsS1" onclick="return confirm(\'' . $this->local_app_strings['NTC_DELETE_CONFIRMATION'] . '\')" href="' . 'index.php?action=Delete&module=' . $aItem->module_dir . '&record=' . $fields['ID'] . '&return_module=' . $aItem->module_dir . '&return_action=index&return_id=">' . $this->local_app_strings['LBL_DELETE_INLINE'] . '</a>';
                 require_once 'include/Smarty/plugins/function.sugar_action_menu.php';
                 $fields['DELETE_BUTTON'] = smarty_function_sugar_action_menu(array('id' => $aItem->module_dir . '_' . $fields['ID'] . '_create_button', 'buttons' => array($delete)), $this);
             }
             $this->xTemplate->assign($html_varName, $fields);
             $aItem->setupCustomFields($aItem->module_dir);
             $aItem->custom_fields->populateAllXTPL($this->xTemplate, 'detail', $html_varName, $fields);
         }
         if (!isset($this->data_array) && $aItem->ACLAccess('DetailView')) {
             $count++;
         }
         if (isset($this->data_array)) {
             $count++;
         }
         if (!isset($this->data_array)) {
             $aItem->list_view_parse_additional_sections($this->xTemplate, $xtemplateSection);
             if ($this->xTemplate->exists($xtemplateSection . '.row.pro')) {
                 $this->xTemplate->parse($xtemplateSection . '.row.pro');
             }
         }
         $this->xTemplate->parse($xtemplateSection . '.row');
         if (isset($fields['ID'])) {
             $associated_row_data[$fields['ID']] = $fields;
             // Bug 38908: cleanup data for JS to avoid having &nbsp; shuffled around
             foreach ($fields as $key => $value) {
                 if ($value == '&nbsp;') {
                     $associated_row_data[$fields['ID']][$key] = '';
                 }
             }
         }
     }
     $_SESSION['MAILMERGE_RECORDS'] = $mergeList;
     $_SESSION['MAILMERGE_MODULE_FROM_LISTVIEW'] = $module;
     if (empty($_REQUEST['action']) || $_REQUEST['action'] != 'Popup') {
         $_SESSION['MAILMERGE_MODULE'] = $module;
     }
     if ($this->process_for_popups) {
         $json = getJSONobj();
         $is_show_fullname = showFullName() ? 1 : 0;
         $associated_javascript_data = '<script type="text/javascript">' . "\n" . 'var associated_javascript_data = ' . $json->encode($associated_row_data) . ";\n" . 'var is_show_fullname = ' . $is_show_fullname . ";\n" . '</script>';
         $this->xTemplate->assign('ASSOCIATED_JAVASCRIPT_DATA', $associated_javascript_data);
     }
     $this->xTemplate->parse($xtemplateSection);
 }
예제 #17
0
function get_user_array($add_blank = true, $status = "Active", $assigned_user = "", $use_real_name = false, $user_name_begins = null, $is_group = ' AND portal_only=0 ', $from_cache = true)
{
    global $locale;
    global $sugar_config;
    if (empty($locale)) {
        $locale = new Localization();
    }
    if ($from_cache) {
        $user_array = get_register_value('user_array', $add_blank . $status . $assigned_user);
    }
    if (!isset($user_array)) {
        $db = DBManagerFactory::getInstance();
        $temp_result = array();
        // Including deleted users for now.
        if (empty($status)) {
            $query = "SELECT id, first_name, last_name, user_name from users WHERE 1=1" . $is_group;
        } else {
            $query = "SELECT id, first_name, last_name, user_name from users WHERE status='{$status}'" . $is_group;
        }
        if (!empty($user_name_begins)) {
            $query .= " AND user_name LIKE '{$user_name_begins}%' ";
        }
        if (!empty($assigned_user)) {
            $query .= " OR id='{$assigned_user}'";
        }
        $query = $query . ' ORDER BY user_name ASC';
        $GLOBALS['log']->debug("get_user_array query: {$query}");
        $result = $db->query($query, true, "Error filling in user array: ");
        if ($add_blank == true) {
            // Add in a blank row
            $temp_result[''] = '';
        }
        // Get the id and the name.
        while ($row = $db->fetchByAssoc($result)) {
            if ($use_real_name == true || showFullName()) {
                if (isset($row['last_name'])) {
                    // cn: we will ALWAYS have both first_name and last_name (empty value if blank in db)
                    $temp_result[$row['id']] = $locale->getLocaleFormattedName($row['first_name'], $row['last_name']);
                } else {
                    $temp_result[$row['id']] = $row['user_name'];
                }
            } else {
                $temp_result[$row['id']] = $row['user_name'];
            }
        }
        $user_array = $temp_result;
        if ($from_cache) {
            set_register_value('user_array', $add_blank . $status . $assigned_user, $temp_result);
        }
    }
    return $user_array;
}
예제 #18
0
function get_username_by_id($userid)
{
    if (empty($userid)) {
        return false;
    }
    $user = BeanFactory::getBean('Users');
    $user->retrieve($userid);
    if ($userid != $user->id) {
        return false;
    }
    if (showFullName()) {
        return $user->full_name;
    } else {
        return $user->user_name;
    }
}