• Модуль: wiki
  • Путь к файлу: ~/bitrix/modules/wiki/classes/general/wiki_utils.php
  • Класс: CWikiUtils
  • Вызов: CWikiUtils::OnBeforeIndex
static function OnBeforeIndex($arFields)
{
	static $groupSiteList = array();

	$arFields['NAME'] = preg_replace('/^category:/i'.BX_UTF_PCRE_MODIFIER, GetMessage('CATEGORY_NAME').':', $arFields['NAME']);
	$CWikiParser = new CWikiParser();
	$arFields['BODY'] = $CWikiParser->parseForSearch($arFields['BODY']);

	if (
		isset($arFields['MODULE_ID'])
		&& $arFields['MODULE_ID'] == 'socialnetwork'
		&& isset($arFields['PARAMS'])
		&& isset($arFields['PARAMS']['socnet_group'])
		&& intval($arFields['PARAMS']['socnet_group']) > 0
		&& BitrixMainModuleManager::isModuleInstalled('extranet')
	)
	{
		$url = false;
		if (
			is_array($arFields['SITE_ID'])
			&& count($arFields['SITE_ID']) == 1
		)
		{
			$siteId = key($arFields['SITE_ID']);
			$url =  $arFields['SITE_ID'][$siteId];

			if (!empty($url))
			{
				$url = str_replace(COption::getOptionString("socialnetwork", "workgroups_page", "/workgroups/", $siteId), "#GROUPS_PATH#", $url);
			}
		}

		if (!empty($url))
		{
			$sonetGroupId = intval($arFields['PARAMS']['socnet_group']);

			$siteIdList = array();

			if (
				!isset($groupSiteList[$sonetGroupId])
				&& BitrixMainLoader::includeModule('socialnetwork')
			)
			{
				$groupSiteList[$sonetGroupId] = array();
				$res = CSocNetGroup::getSite($sonetGroupId);
				while ($site = $res->fetch())
				{
					$groupSiteList[$sonetGroupId][] = $site['SITE_ID'];
				}
			}

			if (isset($groupSiteList[$sonetGroupId]))
			{
				$siteIdList = $groupSiteList[$sonetGroupId];
			}

			$extranetGroup = (
				!empty($siteIdList)
				&& BitrixMainLoader::includeModule('extranet')
				&& in_array(CExtranet::getExtranetSiteId(), $siteIdList)
			);

			if ($extranetGroup)
			{
				foreach($siteIdList as $siteId)
				{
					$arFields['SITE_ID'][$siteId] = str_replace("#GROUPS_PATH#", COption::getOptionString("socialnetwork", "workgroups_page", "/workgroups/", $siteId), $url);
				}
			}
		}
	}

	return $arFields;
}