• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/component/workgroupform.php
  • Класс: BitrixSocialnetworkComponentWorkgroupForm
  • Вызов: WorkgroupForm::getThemePickerData
protected function getThemePickerData(array &$result = []): void
{
	global $USER;

	$groupId = (isset($this->arParams['GROUP_ID']) ? (int)$this->arParams['GROUP_ID'] : 0);

	if (
		SITE_TEMPLATE_ID !== 'bitrix24'
		|| !Loader::includeModule('intranet')
	)
	{
		return;
	}

	$result['showThemePicker'] = (
		$result['IS_IFRAME']
		&& (empty($result['TAB']) || $result['TAB'] === 'edit')
		&& ($this->arParams['THEME_ENTITY_TYPE'] ?? null) === 'SONET_GROUP'
	);

	$result['themePickerData'] = [];

	if (!$result['showThemePicker'])
	{
		return;
	}

	if ($groupId > 0)
	{
		$themePicker = new ThemePicker(SITE_TEMPLATE_ID, false, $USER->getId(), ThemePicker::ENTITY_TYPE_SONET_GROUP, $groupId);
		$themeId = $themePicker->getCurrentThemeId();
		$themeUserId = false;
		if ($themeId)
		{
			$res = ThemeTable::getList([
				'filter' => [
					'=ENTITY_TYPE' => $themePicker->getEntityType(),
					'ENTITY_ID' => $themePicker->getEntityId(),
					'=CONTEXT' => $themePicker->getContext(),
				],
				'select' => [ 'USER_ID' ],
			]);
			if (
				($themeFields = $res->fetch())
				&& (int)$themeFields['USER_ID'] > 0
			)
			{
				$themeUserId = (int)$themeFields['USER_ID'];
			}
		}
		$result['themePickerData'] = $themePicker->getTheme($themeId, $themeUserId);
	}
	elseif ($themePicker = new ThemePicker(SITE_TEMPLATE_ID))
	{
		$themesList = $themePicker->getPatternThemes();
		$result['themePickerData'] = $themesList[array_rand($themesList)];
	}
}