- Модуль: 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'], []))));
}