• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/livefeed/photogalleryalbum.php
  • Класс: BitrixSocialnetworkLivefeedPhotogalleryAlbum
  • Вызов: PhotogalleryAlbum::initSourceFields
public function initSourceFields()
{
	static $cache = [];

	$sectionId = $this->entityId;

	if ($sectionId <= 0)
	{
		return;
	}

	$albumFields = [];

	if (isset($cache[$sectionId]))
	{
		$albumFields = $cache[$sectionId];
	}
	elseif (Loader::includeModule('iblock'))
	{
		$res = SectionTable::getList([
			'filter' => [
				'=ID' => $sectionId
			],
			'select' => [ 'ID', 'NAME' ]
		]);
		if ($sectionFields = $res->fetch())
		{
			$logId = false;

			$res = LogTable::getList([
				'filter' => [
					'SOURCE_ID' => $sectionId,
					'@EVENT_ID' => $this->getEventId(),
				],
				'select' => [ 'ID', 'URL' ]
			]);
			if ($logEntryFields = $res->fetch())
			{
				$logId = (int)$logEntryFields['ID'];
			}

			if ($logId)
			{
				$res = CSocNetLog::getList(
					[],
					[
						'=ID' => $logId
					],
					false,
					false,
					[ 'ID', 'EVENT_ID', 'URL' ],
					[
						"CHECK_RIGHTS" => "Y",
						"USE_FOLLOW" => "N",
						"USE_SUBSCRIBE" => "N"
					]
				);
				if ($logFields = $res->fetch())
				{
					$albumFields = array_merge($sectionFields, [
						'LOG_ID' => $logFields['ID'],
						'LOG_EVENT_ID' => $logFields['EVENT_ID'],
						'URL' => $logFields['URL']
					]);
				}
			}
		}

		$cache[$sectionId] = $albumFields;
	}

	if (empty($albumFields))
	{
		return;
	}

	$this->setLogId($albumFields['LOG_ID']);
	$this->setSourceFields($albumFields);

	$title = $albumFields['NAME'];
	$this->setSourceDescription($title);
	$this->setSourceTitle($title);
}