- Модуль: wiki
- Путь к файлу: ~/bitrix/modules/wiki/classes/general/wiki.php
- Класс: CWiki
- Вызов: CWiki::GetCategory
static function GetCategory($NAME, $IBLOCK_ID)
{
global $arParams;
$arResult = array();
$arResult[] = array(
'TITLE' => GetMessage('Service:Categories_TITLE'),
'NAME' => GetMessage('Service:Categories'),
'LINK' => CHTTP::urlAddParams(
CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CATEGORIES'],
array(
'wiki_name' => 'Service:Categories',
'group_id' => CWikiSocnet::$iSocNetId
)
),
array()
),
'IS_RED' => 'N',
'IS_SERVICE' => 'Y'
);
$arFilter['=XML_ID'] = CWikiUtils::htmlspecialcharsback($NAME);
$arFilter['IBLOCK_ID'] = $IBLOCK_ID;
$arFilter['CHECK_PERMISSIONS'] = 'N';
if (CWikiSocnet::IsSocNet())
$arFilter['SUBSECTION'] = CWikiSocnet::$iCatId;
$rsElement = CIBlockElement::GetList(array(), $arFilter, false, false, Array());
$arElement = $rsElement->GetNext();
$sCatName = '';
if (CWikiUtils::IsCategoryPage($NAME, $sCatName))
return $arResult;
$arLink = array();
$arLinkExists = array();
$arCat = array();
$rsSect = CIBlockElement::GetElementGroups($arElement['ID'], false);
while($arSect = $rsSect->GetNext())
{
$arCat[$arSect['ID']] = $arSect;
$arLink[] = 'category:'.CWikiUtils::htmlspecialcharsback($arSect['NAME']);
}
/*if(empty($arLink))
return array();*/
if (CWikiSocnet::IsSocNet() && isset($arCat[CWikiSocnet::$iCatId]))
unset($arCat[CWikiSocnet::$iCatId]);
$arFilter = array();
$arFilter['=NAME'] = $arLink;
$arFilter['IBLOCK_ID'] = $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();
$arLinkExists[] = preg_replace('/^(category|'.GetMessage('CATEGORY_NAME').'):/i'.BX_UTF_PCRE_MODIFIER, '', $arFields['NAME']);
}
if (!empty($arCat))
{
foreach ($arCat as $_arCat)
{
$_arCat['NAME'] = CWikiUtils::htmlspecialcharsback($_arCat['NAME'], false);
$_arResult = array();
$_arResult['ID'] = $_arCat['ID'];
$_arResult['IS_RED'] = 'N';
$_arResult['LINK'] = CHTTP::urlAddParams(
CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_CATEGORY'],
array(
'wiki_name' => 'Category:'.$_arCat['NAME'],
'group_id' => CWikiSocnet::$iSocNetId
)
),
array()
);
$_arResult['TITLE'] = $_arCat['NAME'];
$_arResult['NAME'] = $_arCat['NAME'];
$_arResult['IS_SERVICE'] = 'N';
if (!in_array($_arCat['NAME'], $arLinkExists))
$_arResult['IS_RED'] = 'Y';
$arResult[] = $_arResult;
}
}
return $arResult;
}