Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
В итоге получаем типы инфоблоков, сгруппированных по сайтам.
Для административного интерфейса:
создаем файл iblock_by_site.php в каталоге /bitrix/admin/ с содержимым:
и файл iblock_by_site.php в каталоге /bitrix/modules/iblock/admin/ с содержимым:
Языковой файл:создаем файл iblock_by_site.php в /bitrix/modules/iblock/lang/ru/admin/ с содержимым:
Назад в раздел
то ждем ваше обращение в нашей службе тех поддержки.
Группировка типов инфоблоков по сайтам (для многосайтовых систем)
Решение, не самое лучшее, но рабочее.Создаем файл admin_header.php в каталоге /bitrix/php_interface/ с содержимым:<? $arSites = array(); $rsSites = CSite::GetList($by="sort", $order="desc", Array()); while($arSite = $rsSites->Fetch()) { $arSites[$arSite["LID"]] = $arSite["NAME"]; } $fIndex = -1; $lIndex = -1; $lItemsMenu = array(); if(count($arSites) > 0 && CModule::IncludeModule("iblock")) { $iSort = 200; $aItemsMenu = array(); foreach($arSites as $kSite=>$aSite) { $iSort++; $aItemsMenu[$kSite] = array( 'text' => $aSite, 'url' => 'iblock_by_site.php?lid='.$kSite, 'more_url' => array(), 'title' => $aSite, 'parent_menu' => 'global_menu_content', 'sort' => $iSort, 'icon' => 'iblock_menu_icon_types', 'page_icon' => 'iblock_page_icon_types', 'module_id' => 'iblock', 'items_id' => 'menu_iblock_by_'.$kSite, 'dynamic' => false, 'items' => array(), ); } foreach($adminMenu->aGlobalMenu["global_menu_content"]["items"] as $kItem=>$aItem) { if($aItem["module_id"] = "iblock" && strpos($aItem["items_id"], "/") !== false) { if($fIndex < 0) { $fIndex = $kItem; } $IBlockId = explode("/", $aItem["items"][0]["items_id"]); $IBlockId = intval($IBlockId[count($IBlockId)-1]); $res = CIBlock::GetByID($IBlockId); if($arRes = $res->GetNext()) { $aItemsMenu[$arRes["LID"]]["items"][] = $aItem; unset($adminMenu->aGlobalMenu["global_menu_content"]["items"][$kItem]); } } if($aItem["module_id"] = "iblock" && strpos($aItem["items_id"], "/") === false) { if($lIndex < 0) { $lIndex = $kItem; } $lItemsMenu[] = $aItem; unset($adminMenu->aGlobalMenu["global_menu_content"]["items"][$kItem]); } } if($fIndex > -1) { foreach($aItemsMenu as $aItem) { $adminMenu->aGlobalMenu["global_menu_content"]["items"][$fIndex] = $aItem; $fIndex++; } } if($lIndex > -1) { foreach($lItemsMenu as $aItem) { $adminMenu->aGlobalMenu["global_menu_content"]["items"][$fIndex] = $aItem; $fIndex++; } } } if(!function_exists("ContentMenuSort")) { function ContentMenuSort($a, $b) { if ($a["sort"] == $b["sort"]) { return 0; } return ($a["sort"] < $b["sort"]) ? -1 : 1; } } usort($adminMenu->aGlobalMenu["global_menu_content"]["items"], "ContentMenuSort"); ?> |
В итоге получаем типы инфоблоков, сгруппированных по сайтам.
Для административного интерфейса:
создаем файл iblock_by_site.php в каталоге /bitrix/admin/ с содержимым:
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/admin/iblock_by_site.php");?> |
<? require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/iblock.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/prolog.php"); IncludeModuleLangFile(__FILE__); $rsSite = CSite::GetByID($lid); if($arSite = $rsSite->GetNext()) { $sid = $lid; $sname = $arSite["NAME"]; } else { $rsSites = CSite::GetList($by="sort", $order="desc", Array()); if($arSite = $rsSites->Fetch()) { LocalRedirect("/bitrix/admin/iblock_by_site.php?lid=".$arSite["LID"]); } else { LocalRedirect("/bitrix/admin/iblock_index.php?lang=".LANG); } } $sTableID = "tbl_iblock_by_lid_".md5($sid); $oSort = new CAdminSorting($sTableID, "SORT", "asc"); $lAdmin = new CAdminList($sTableID, $oSort); $arHeader = array( array("id"=>"NAME", "content"=>GetMessage("IBLOCK_ADM_NAME"), "default"=>true), array("id"=>"IBLOCK_TYPE_ID", "content"=>GetMessage("IBLOCK_FIELD_CODE"), "default"=>true), array("id"=>"SECTIONS", "content"=>GetMessage("IBLOCK_FIELD_SECTIONS"), "default"=>true, "align"=>"center"), array("id"=>"SORT", "content"=>GetMessage("IBLOCK_ADM_SORT"), "default"=>true, "align"=>"right"), ); $lAdmin->AddHeaders($arHeader); $arListOfTypes = array(); $rsTypes = CIBlockType::GetList(array("SORT"=>"ASC")); while($arType = $rsTypes->GetNext()) { $rsIBlocks = CIBlock::GetList(Array($by=>$order), array("SITE_ID"=>$sid, "TYPE"=>$arType["ID"]), false); if($arIBlocks = $rsIBlocks->GetNext()) { if($arIBType = CIBlockType::GetByIDLang($arType["ID"], LANG)) { $arListOfTypes[] = $arIBType; } } } $indx = 0; foreach($arListOfTypes as $arType) { $indx++; $row =& $lAdmin->AddRow($indx, $arType); $row->AddViewField("NAME", '<a href="/bitrix/admin/iblock_admin.php?type='.$arType["IBLOCK_TYPE_ID"].'&lang='.LANG.'&admin=N">'.$arType["NAME"].'</a>'); $row->AddViewField("SECTIONS", $arType["SECTIONS"]=="Y"?GetMessage("IBLOCK_FIELD_U_YES"):GetMessage("IBLOCK_FIELD_U_NO")); } $lAdmin->AddFooter( array( array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>count($arListOfTypes)), ) ); $APPLICATION->SetTitle(GetMessage("IBLOCK_ADM_TITLE", array("#SITE_ID#" => $sname))); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); ?> <? $lAdmin->DisplayList(); ?> <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");?> |
Языковой файл:создаем файл iblock_by_site.php в /bitrix/modules/iblock/lang/ru/admin/ с содержимым:
<? $MESS ['IBLOCK_ADM_TITLE'] = "#SITE_ID#: Информационные блоки"; $MESS ['IBLOCK_ADM_NAME'] = "Название"; $MESS ['IBLOCK_FIELD_CODE'] = "Символьный код"; $MESS ['IBLOCK_FIELD_SECTIONS'] = "Содержит разделы"; $MESS ['IBLOCK_FIELD_U_YES'] = "Да"; $MESS ['IBLOCK_FIELD_U_NO'] = "Нет"; ?> |
Назад в раздел
Подписаться на новые материалы раздела: