• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/binding/group.php
  • Класс: BitrixLandingBindingGroup
  • Вызов: Group::recognizeSiteTitle
static function recognizeSiteTitle(array $input): array
{
	$sitesTitle = [];

	if (!BitrixMainLoader::includeModule('socialnetwork'))
	{
		return $input;
	}

	foreach ($input as $key => $item)
	{
		if (isset($item['ID']))
		{
			$sitesTitle[$item['ID']] = '';
		}
	}

	if ($sitesTitle)
	{
		// get real title for sonet group
		$res = BindingTable::getList([
			'select' => [
				'ENTITY_ID',
				'GROUP_TITLE' => 'GROUP.NAME'
			],
			'filter' => [
				'=BINDING_TYPE' => self::$bindingType,
				'=ENTITY_TYPE' => self::ENTITY_TYPE_SITE,
				'=ENTITY_ID' => array_keys($sitesTitle)
			],
			'runtime' => [
				new BitrixMainEntityReferenceField(
					'GROUP',
					'BitrixSocialnetworkWorkgroupTable',
					[
						'=this.BINDING_ID' => 'ref.ID'
					]
				)
			]
		]);
		while ($row = $res->fetch())
		{
			$sitesTitle[$row['ENTITY_ID']] = $row['GROUP_TITLE'];
		}

		// replace sites titles to thr groups titles
		foreach ($input as $key => &$item)
		{
			if (isset($item['ID']) && $sitesTitle[$item['ID']])
			{
				$item['TITLE'] = $sitesTitle[$item['ID']];
			}
		}
		unset($item);
	}

	return $input;
}