- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/workgrouplist/counter.php
- Класс: BitrixSocialnetworkComponentWorkgroupListCounter
- Вызов: Counter::fillCommonCounters
static function fillCommonCounters(array $params = []): array
{
$result = [];
$groupIdList = $params['groupIdList'] ?? [];
if (empty($groupIdList))
{
return $result;
}
$counterData = $params['counterData'] ?? [];
$scrumIdList = $params['scrumIdList'] ?? [];
$groupUrlTemplate = ($params['groupUrl'] ?? HelperPath::get('group_livefeed_path_template'));
$sliderOptionsData = ($params['sliderOptions'] ?? static::getLivefeedCounterSliderOptions());
$tasksModuleInstalled = ModuleManager::isModuleInstalled('tasks');
foreach ($groupIdList as $groupId)
{
$groupCounterData = ($counterData[$groupId] ?? []);
$livefeedCounterValue = (int)($groupCounterData['livefeed']['VALUE'] ?? 0);
$tasksCounterValue = (
$tasksModuleInstalled
? (int)($groupCounterData['tasks_expired']['VALUE'] ?? 0)
+ (int)($groupCounterData['tasks_new_comments']['VALUE'] ?? 0)
: 0
);
$groupUrl = str_replace([ '#id#', '#ID#', '#GROUP_ID#', '#group_id#' ], $groupId, $groupUrlTemplate);
if (in_array($groupId, $scrumIdList, true))
{
$sliderOptionsData['loader'] = 'intranet:scrum';
}
$sliderOptions = Json::encode($sliderOptionsData);
$result[$groupId] = [
static::getLivefeedCounterColumnId() => [
'type' => GridCounterType::RIGHT,
'color' => GridCounterColor::DANGER,
'value' => $livefeedCounterValue + $tasksCounterValue,
'events' => [
'click' => "BX.SidePanel.Instance.open.bind(BX.SidePanel.Instance, '{$groupUrl}', {$sliderOptions})",
],
'class' => 'sonet-ui-grid-counter',
],
];
}
return $result;
}