Поддержка серверов

UserToDepartmentTable::reInitialize: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=367855

<?php 
//    /bitrix/modules/intranet/lib/internals/usertodepartment.phpUserToDepartmentTable::reInitialize()
//    86:

    
public static function reInitialize()
    {
        if(static::
$delayed)
        {
            static::
$changed true;
            return;
        }

        
$connection = \Bitrix\Main\HttpApplication::getConnection();

        if(
$connection->isTableExists(static::getTableName()))
        {
            
$connection->query("truncate table ".static::getTableName());

            
$ibDept Option::get('intranet''iblock_structure'false);

            if(static::
getUfDepartmentFieldId() && $ibDept && Main\Loader::includeModule('iblock'))
            {
                
$users = array();
                
$haveMultiple false;
                
$res Main\UserTable::getList(array(
                    
'select' => array('ID''UF_DEPARTMENT'),
                    
'filter' => array('=ACTIVE' => 'Y'),
                ));
                while(
$item $res->fetch())
                {
                    
$users[$item['ID']] = $item['UF_DEPARTMENT'];
                    if(
is_array($item['UF_DEPARTMENT']) && count($item['UF_DEPARTMENT']))
                    {
                        
$haveMultiple true;
                    }
                }

                
$departments = array();
                if(
$haveMultiple)
                {
                    
// get all departments
                    
$departments = array();
                    
$res SectionTable::getList(array(
                        
'select' => array('ID''DEPTH_LEVEL'),
                        
'filter' => array('=IBLOCK_ID' => $ibDept),
                        
'order' => array('DEPTH_LEVEL' => 'asc'),
                    ));
                    while(
$item $res->fetch())
                    {
                        
$departments[$item['ID']] = $item['DEPTH_LEVEL'];
                    }
                }

                
$data = array();
                foreach(
$users as $userId => $userDepartments)
                {
                    if(
is_array($userDepartments))
                    {
                        
$weights = static::arrangeDepartmentWeights($departments$userDepartments);

                        foreach(
$userDepartments as $departmentId)
                        {
                            if(!
array_key_exists($departmentId$weights)) // section was deleted or like that
                            
{
                                continue;
                            }

                            
$data[] = array(
                                
'USER_ID' => $userId,
                                
'DEPARTMENT_ID' => $departmentId,
                                
'WEIGHT' => $weights[$departmentId],
                            );
                        }
                    }
                    else
                    {
                        
$data[] = array(
                            
'USER_ID' => $userId,
                            
'DEPARTMENT_ID' => false,
                            
'WEIGHT' => 1,
                        );
                    }
                }

                static::
insertBatch(static::getTableName(), $data);
            }
        }
    }

Блог разработчика

9 Августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 Июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 Июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение