• Модуль: wiki
  • Путь к файлу: ~/bitrix/modules/wiki/classes/general/wiki_parser.php
  • Класс: CWikiParser
  • Вызов: CWikiParser::processInternalLink
function processInternalLink($text)
{
	global $APPLICATION, $arParams;
	$text = preg_replace_callback('/[[(.+)(|(.*))?]]/iU'.BX_UTF_PCRE_MODIFIER, array(&$this, '_processInternalLinkPrepareCallback'), $text);
	$text = preg_replace('/(##Category##)(s)*((r*)n)*/',"", $text);
	// check pages for exists
	if (!empty($this->arLink))
	{
		$arFilter = array();
		$arFilter['=NAME'] = $this->arLink;
		$arFilter['IBLOCK_ID'] = $arParams['IBLOCK_ID'];
		$arFilter['ACTIVE'] = 'Y';
		$arFilter['CHECK_PERMISSIONS'] = 'N';
		if (CWikiSocnet::IsSocNet())
			$arFilter['SUBSECTION'] = CWikiSocnet::$iCatId;
		$rsElement = CIBlockElement::GetList(array(), $arFilter, false, false, Array());
		while($obElement = $rsElement->GetNextElement())
		{
			$arFields = $obElement->GetFields();
			$this->arLinkExists[] = mb_strtolower(CWikiUtils::htmlspecialcharsback($arFields['NAME'], true));
		}
	}

	$text = preg_replace_callback('/(##LINK(d+)##)/isU'.BX_UTF_PCRE_MODIFIER, array(&$this, '_processInternalLinkCallback'), $text);

	return $text;
}