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

	$elementId = $this->entityId;

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

	$sourceFields = [];

	if (isset($cache[$elementId]))
	{
		$sourceFields = $cache[$elementId];
	}
	elseif (Loader::includeModule('wiki'))
	{
		$res = self::$logTableClass::getList([
			'filter' => [
				'SOURCE_ID' => $elementId,
				'@EVENT_ID' => $this->getEventId(),
			],
			'select' => [ 'ID', 'URL', 'TITLE' ]
		]);
		if ($logEntryFields = $res->fetch())
		{
			$sourceFields = [
				'LOG_ID' => $logEntryFields['ID'],
				'URL' => $logEntryFields['URL']
			];

			$element = self::$wikiClass::getElementById($elementId, [
				'CHECK_PERMISSIONS' => 'N',
				'ACTIVE' => 'Y'
			]);

			if ($element)
			{
				$sourceFields = array_merge($element, $sourceFields);
			}
			else
			{
				$sourceFields['~NAME'] = htmlspecialcharsback($logEntryFields['TITLE']);
			}
		}

		$cache[$elementId] = $sourceFields;
	}

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

	$this->setSourceTitle($sourceFields['NAME']);
	if (!$wikiParser)
	{
		$wikiParser = new CWikiParser();
	}
	$this->setSourceDescription(CTextParser::clearAllTags(CWikiParser::clear($wikiParser->parse($sourceFields['DETAIL_TEXT'], $sourceFields['DETAIL_TEXT_TYPE'], []))));
}