- Модуль: 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;
}