- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/config.php
- Класс: BitrixImOpenLinesConfig
- Вызов: Config::get
public function get($configId, $withQueue = true, $showOffline = true, $withConfigQueue = false)
{
$config = false;
$configId = (int)$configId;
if (
!empty($configId) ||
$configId > 0
)
{
$orm = ModelConfigTable::getById($configId);
if ($config = $orm->fetch())
{
$config['WORKTIME_DAYOFF'] = explode(',', $config['WORKTIME_DAYOFF']);
$config['WORKTIME_HOLIDAYS'] = explode(',', $config['WORKTIME_HOLIDAYS']);
$config['QUEUE'] = [];
$config['QUEUE_FULL'] = [];
$config['QUEUE_USERS_FIELDS'] = [];
$config['QUEUE_ONLINE'] = 'N';
if ($withQueue)
{
$selectQueue = ['ID', 'SORT', 'USER_ID', 'DEPARTMENT_ID', 'USER_NAME', 'USER_WORK_POSITION', 'USER_AVATAR', 'USER_AVATAR_ID'];
$filterQueue = ['=CONFIG_ID' => $configId, '=USER.ACTIVE' => 'Y'];
if ($showOffline === true)
{
$selectQueue[] = 'IS_ONLINE_CUSTOM';
}
else
{
$filterQueue['=IS_ONLINE_CUSTOM'] = 'Y';
}
$orm = Queue::getList([
'select' => $selectQueue,
'filter' => $filterQueue,
'order' => [
'SORT' => 'ASC',
'ID' => 'ASC'
],
]);
while ($row = $orm->fetch())
{
$config['QUEUE'][] = $row['USER_ID'];
if (
(
$showOffline === true &&
(string)$row['IS_ONLINE_CUSTOM'] === 'Y'
) ||
$showOffline !== true
)
{
$config['QUEUE_ONLINE'] = 'Y';
}
$config['QUEUE_USERS_FIELDS'][$row['USER_ID']] = [
'USER_NAME' => $row['USER_NAME'],
'USER_WORK_POSITION' => $row['USER_WORK_POSITION'],
'USER_AVATAR' => $row['USER_AVATAR'],
'USER_AVATAR_ID' => $row['USER_AVATAR_ID']
];
$config['QUEUE_FULL'][$row['USER_ID']] = [
'ID' => $row['ID'],
'SORT' => $row['SORT'],
'USER_ID' => $row['USER_ID'],
'DEPARTMENT_ID' => $row['DEPARTMENT_ID'],
'USER_NAME' => $row['USER_NAME'],
'USER_WORK_POSITION' => $row['USER_WORK_POSITION'],
'USER_AVATAR' => $row['USER_AVATAR'],
'USER_AVATAR_ID' => $row['USER_AVATAR_ID']
];
}
}
if($withConfigQueue === true)
{
$queueManager = new QueueManager($configId);
$config['configQueue'] = $queueManager->getConfigQueue();
}
if (!Limit::canUseVoteClient())
{
$config['VOTE_MESSAGE'] = 'N';
}
if (!Limit::canWorkHourSettings())
{
$config['WORKTIME_ENABLE'] = 'N';
}
$textFieldsWithEmoji = [
'WELCOME_MESSAGE_TEXT',
'VOTE_MESSAGE_1_TEXT', 'VOTE_MESSAGE_1_LIKE', 'VOTE_MESSAGE_1_DISLIKE',
'VOTE_MESSAGE_2_TEXT', 'VOTE_MESSAGE_2_LIKE', 'VOTE_MESSAGE_2_DISLIKE',
'NO_ANSWER_TEXT', 'WORKTIME_DAYOFF_TEXT', 'CLOSE_TEXT', 'AUTO_CLOSE_TEXT'
];
foreach ($textFieldsWithEmoji as $textFieldName)
{
$config[$textFieldName] = Emoji::decode($config[$textFieldName]);
}
}
}
return $config;
}