当前位置: 首页>>代码示例>>PHP>>正文


PHP CIntranetUtils::getStructure方法代码示例

本文整理汇总了PHP中CIntranetUtils::getStructure方法的典型用法代码示例。如果您正苦于以下问题:PHP CIntranetUtils::getStructure方法的具体用法?PHP CIntranetUtils::getStructure怎么用?PHP CIntranetUtils::getStructure使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CIntranetUtils的用法示例。


在下文中一共展示了CIntranetUtils::getStructure方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getHeadsOfDepartments

 public static function getHeadsOfDepartments()
 {
     $companyStructure = \CIntranetUtils::getStructure();
     $users = array();
     foreach ($companyStructure['DATA'] as $departmentData) {
         if (!empty($departmentData['UF_HEAD'])) {
             $users[] = (int) $departmentData['UF_HEAD'];
         }
     }
     return array_unique($users);
 }
开发者ID:DarneoStudio,项目名称:bitrix,代码行数:11,代码来源:ustat.php

示例2: getDepartmentManagersId

 public static function getDepartmentManagersId($arDepartments, $skipUserId = false, $bRecursive = false)
 {
     if (!is_array($arDepartments) || empty($arDepartments)) {
         return array();
     }
     static $structure = array();
     if (!$structure) {
         $structure = CIntranetUtils::getStructure();
     }
     $arManagers = array();
     foreach ($arDepartments as $sectionId) {
         $arSection = $structure['DATA'][$sectionId];
         if ($arSection['UF_HEAD'] && $arSection['UF_HEAD'] != $skipUserId) {
             $arManagers[$arSection['UF_HEAD']] = array('ID' => $arSection['UF_HEAD'], '~ID' => $arSection['UF_HEAD']);
         }
         if ($arSection['UF_HEAD'] && $bRecursive && $arSection['IBLOCK_SECTION_ID']) {
             $ar = static::getDepartmentManagersId(array($arSection['IBLOCK_SECTION_ID']), $skipUserId, $bRecursive);
             $arManagers = $arManagers + $ar;
         }
     }
     return $arManagers;
 }
开发者ID:mrdeadmouse,项目名称:u136006,代码行数:22,代码来源:functions.php

示例3: foreach

$companyAverageData = \Bitrix\Intranet\UStat\UStat::getDepartmentAverageGraphData(0, $fromDate, $toDate, $interval, $sectionField);
foreach ($companyAverageData as $k => $companyData) {
    $data[$k]['company_activity'] = $companyData['AVG_ACTIVITY'];
    $sumAvgCompanyActivity += $companyData['AVG_ACTIVITY'];
}
// department average
$usersDepartments = \Bitrix\Intranet\UStat\UStat::getUsersDepartments();
$userDepartments = $usersDepartments[$arParams['USER_ID']];
$userDepartmentId = current($userDepartments);
$departmentAverageData = \Bitrix\Intranet\UStat\UStat::getDepartmentAverageGraphData($userDepartmentId, $fromDate, $toDate, $interval, $sectionField);
foreach ($departmentAverageData as $k => $departmentData) {
    $data[$k]['department_activity'] = $departmentData['AVG_ACTIVITY'];
    $sumAvgDepartmentActivity += $departmentData['AVG_ACTIVITY'];
}
// get dept title
$companyStructure = \CIntranetUtils::getStructure();
$departmentTitle = $companyStructure['DATA'][$userDepartmentId]['NAME'];
// max data for sections
$maxUsersActivity = \Bitrix\Intranet\UStat\UStat::getMaxUserActivity($fromDate, $toDate, $interval);
if (!empty($maxUsersActivity)) {
    foreach ($maxUsersActivity as $section => $maxValue) {
        if ($section == 'TOTAL') {
            continue;
        }
        $sectionData[$section]['lead_activity'] = $maxValue;
        if ($maxValue > 0) {
            // if user has at least 90% of max, he is good enough for being absolutely green
            $sectionData[$section]['lead_activity_prc'] = min(round($sectionData[$section]['activity'] / ($sectionData[$section]['lead_activity'] * 0.9) * 100), 100);
        }
    }
}
开发者ID:mrdeadmouse,项目名称:u136006,代码行数:31,代码来源:component.php

示例4: executeComponent

 public function executeComponent()
 {
     if (!CModule::IncludeModule('intranet')) {
         ShowError(GetMessage('INTR_ISL_INTRANET_MODULE_NOT_INSTALLED'));
         return;
     }
     if (!CModule::IncludeModule('socialnetwork')) {
         return;
     }
     $showDepHeadAdditional = $this->arParams['SHOW_DEP_HEAD_ADDITIONAL'] == 'Y';
     $bNav = $this->arParams['SHOW_NAV_TOP'] == 'Y' || $this->arParams['SHOW_NAV_BOTTOM'] == 'Y';
     $isEnoughFiltered = $this->fillFilter();
     list($cntStartCacheId, $cntStart) = $this->getCacheIdWithDepartment();
     if ($this->arParams['SHOW_UNFILTERED_LIST'] == 'N' && !$this->bExcel && !$isEnoughFiltered) {
         $this->arResult['EMPTY_UNFILTERED_LIST'] = 'Y';
         $this->includeComponentTemplate();
         return;
     }
     $this->arParams['bCache'] = $cntStart == count($this->arFilter) && !$this->bExcel && $this->arParams['CACHE_TYPE'] == 'Y' && $this->arParams['CACHE_TIME'] > 0;
     $this->arResult['FILTER_VALUES'] = $this->arFilter;
     if (!$this->bExcel && $bNav) {
         CPageOption::SetOptionString("main", "nav_page_in_session", "N");
     }
     $bFromCache = false;
     if ($this->arParams['bCache']) {
         if ($bFromCache = $this->initCache($cntStartCacheId)) {
             $vars = $this->obCache->getVars();
             $this->arResult['USERS'] = $vars['USERS'];
             $this->arResult['DEPARTMENTS'] = $vars['DEPARTMENTS'];
             $this->arResult['DEPARTMENT_HEAD'] = $vars['DEPARTMENT_HEAD'];
             $this->arResult['USERS_NAV'] = $vars['USERS_NAV'];
             $strUserIDs = $vars['STR_USER_ID'];
         } else {
             $this->obCache->startDataCache();
             $this->getCacheManager()->startTagCache($this->cacheDir);
             $this->getCacheManager()->registerTag('intranet_users');
         }
     }
     if (!$bFromCache) {
         // get users list
         $obUser = new CUser();
         $arSelect = array('ID', 'ACTIVE', 'CONFIRM_CODE', 'DEP_HEAD', 'GROUP_ID', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'LOGIN', 'EMAIL', 'LID', 'DATE_REGISTER', 'PERSONAL_PROFESSION', 'PERSONAL_WWW', 'PERSONAL_ICQ', 'PERSONAL_GENDER', 'PERSONAL_BIRTHDATE', 'PERSONAL_PHOTO', 'PERSONAL_PHONE', 'PERSONAL_FAX', 'PERSONAL_MOBILE', 'PERSONAL_PAGER', 'PERSONAL_STREET', 'PERSONAL_MAILBOX', 'PERSONAL_CITY', 'PERSONAL_STATE', 'PERSONAL_ZIP', 'PERSONAL_COUNTRY', 'PERSONAL_NOTES', 'WORK_COMPANY', 'WORK_DEPARTMENT', 'WORK_POSITION', 'WORK_WWW', 'WORK_PHONE', 'WORK_FAX', 'WORK_PAGER', 'WORK_STREET', 'WORK_MAILBOX', 'WORK_CITY', 'WORK_STATE', 'WORK_ZIP', 'WORK_COUNTRY', 'WORK_PROFILE', 'WORK_LOGO', 'WORK_NOTES', 'PERSONAL_BIRTHDAY', 'LAST_ACTIVITY_DATE', 'LAST_LOGIN', 'IS_ONLINE');
         $this->arResult['USERS'] = array();
         $this->arResult['DEPARTMENTS'] = array();
         $this->arResult['DEPARTMENT_HEAD'] = 0;
         // disable/enable appearing of department head on page
         if ($showDepHeadAdditional && !empty($this->arFilter['UF_DEPARTMENT']) && is_array($this->arFilter['UF_DEPARTMENT'])) {
             if ($this->arParams['bCache']) {
                 $this->getCacheManager()->registerTag('intranet_department_' . $this->arFilter['UF_DEPARTMENT'][0]);
             }
             $managerId = CIntranetUtils::GetDepartmentManagerID($this->arFilter['UF_DEPARTMENT'][0]);
             $appendManager = CUser::GetByID($managerId)->Fetch();
             if ($appendManager) {
                 $this->arResult['DEPARTMENT_HEAD'] = $appendManager['ID'];
                 $this->arFilter['!ID'] = $appendManager['ID'];
                 $this->arResult['USERS'][$appendManager['ID']] = $appendManager;
             }
         }
         $bDisable = false;
         if (CModule::IncludeModule('extranet')) {
             if (CExtranet::IsExtranetSite() && !CExtranet::IsExtranetAdmin()) {
                 $arIDs = array_merge(CExtranet::GetMyGroupsUsers(SITE_ID), CExtranet::GetPublicUsers());
                 if ($this->arParams['bCache']) {
                     $this->getCacheManager()->registerTag('extranet_public');
                     $this->getCacheManager()->registerTag('extranet_user_' . $this->getUser()->getID());
                 }
                 if (false !== ($key = array_search($this->getUser()->getID(), $arIDs))) {
                     unset($arIDs[$key]);
                 }
                 if (count($arIDs) > 0) {
                     $this->arFilter['ID'] = implode('|', array_unique($arIDs));
                 } else {
                     $bDisable = true;
                 }
             }
         }
         if ($bDisable) {
             $dbUsers = new CDBResult();
             $dbUsers->initFromArray(array());
         } else {
             $arListParams = array('SELECT' => array('UF_*'), 'ONLINE_INTERVAL' => static::LAST_ACTIVITY);
             if (!$this->bExcel && $this->arParams['USERS_PER_PAGE'] > 0) {
                 $arListParams['NAV_PARAMS'] = array('nPageSize' => $this->arParams['USERS_PER_PAGE'], 'bShowAll' => false);
             }
             $dbUsers = $obUser->GetList($sortBy = 'last_name', $sortDir = 'asc', $this->arFilter, $arListParams);
         }
         $strUserIDs = '';
         while ($arUser = $dbUsers->Fetch()) {
             $this->arResult['USERS'][$arUser['ID']] = $arUser;
             $strUserIDs .= ($strUserIDs === '' ? '' : '|') . $arUser['ID'];
         }
         $structure = CIntranetUtils::getStructure();
         $this->arResult['DEPARTMENTS'] = $structure['DATA'];
         $this->setDepWhereUserIsHead();
         $arAdmins = array();
         /** @noinspection PhpUndefinedVariableInspection */
         $rsUsers = CUser::GetList($o, $b, array("GROUPS_ID" => array(static::ADMIN_GROUP_ID)), array("SELECT" => array("ID")));
         while ($ar = $rsUsers->Fetch()) {
             $arAdmins[$ar["ID"]] = $ar["ID"];
         }
//.........这里部分代码省略.........
开发者ID:mrdeadmouse,项目名称:u136006,代码行数:101,代码来源:class.php


注:本文中的CIntranetUtils::getStructure方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。