%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/iblock/admin/ |
Current File : /home/bitrix/www/bitrix/modules/iblock/admin/iblock_section_admin.php |
<? /** @global CMain $APPLICATION */ /** @global $DB CDatabase */ /** @global CUserTypeManager $USER_FIELD_MANAGER */ require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); CModule::IncludeModule("iblock"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/prolog.php"); IncludeModuleLangFile(__FILE__); $publicMode = $adminPage->publicMode; $selfFolderUrl = $adminPage->getSelfFolderUrl(); $arIBTYPE = CIBlockType::GetByIDLang($type, LANGUAGE_ID); if($arIBTYPE===false) $APPLICATION->AuthForm(GetMessage("IBSEC_A_BAD_BLOCK_TYPE_ID")); $IBLOCK_ID = (isset($_REQUEST['IBLOCK_ID']) ? (int)$_REQUEST['IBLOCK_ID'] : 0); $arIBlock = CIBlock::GetArrayByID($IBLOCK_ID); if($arIBlock) $bBadBlock = !CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, "iblock_admin_display"); else $bBadBlock = true; if($bBadBlock) { $APPLICATION->SetTitle($arIBTYPE["NAME"]); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); ShowError(GetMessage("IBSEC_A_BAD_IBLOCK"));?> <a href="iblock_admin.php?lang=<?echo LANGUAGE_ID?>&type=<?echo htmlspecialcharsbx($type)?>"><?echo GetMessage("IBSEC_A_BACK_TO_ADMIN")?></a> <? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); die(); } $entity_id = "IBLOCK_".$IBLOCK_ID."_SECTION"; $sTableID = "tbl_".(defined("CATALOG_PRODUCT")? "catalog": "iblock")."_section_".md5($type.".".$IBLOCK_ID); if($_GET["tree"]=="Y") { $by = "left_margin"; $order = "asc"; } $oSort = new CAdminSorting($sTableID, "timestamp_x", "desc"); global $by, $order; $arOrder = (strtoupper($by) === "ID"? array($by => $order): array($by => $order, "ID" => "ASC")); $lAdmin = new CAdminUiList($sTableID, $oSort); if($_GET["tree"]=="Y") { $lAdmin->AddVisibleHeaderColumn("DEPTH_LEVEL"); } $sectionItems = array( "" => GetMessage("IBLOCK_ALL"), "0" => GetMessage("IBSEC_A_ROOT_SECTION"), ); $sectionQueryObject = CIBlockSection::GetTreeList(Array("IBLOCK_ID"=>$IBLOCK_ID), array("ID", "NAME", "DEPTH_LEVEL")); while($arSection = $sectionQueryObject->GetNext()) $sectionItems[$arSection["ID"]] = str_repeat(" . ", $arSection["DEPTH_LEVEL"]).$arSection["~NAME"]; $filterFields = array( array( "id" => "NAME", "name" => GetMessage("IBSEC_A_NAME"), "filterable" => "?", "quickSearch" => "?", "default" => true ), array( "id" => "SECTION_ID", "name" => rtrim(GetMessage("IBSEC_A_SECTION"), ":"), "type" => "list", "items" => $sectionItems, "filterable" => "", "default" => true ), array( "id" => "ID", "name" => GetMessage("IBSEC_A_ID"), "type" => "number", "filterable" => "" ), array( "id" => "TIMESTAMP_X", "name" => GetMessage("IBSEC_A_TIMESTAMP"), "type" => "date", "filterable" => "" ), array( "id" => "MODIFIED_BY", "name" => GetMessage("IBSEC_A_MODIFIED_BY"), "type" => "custom_entity", "selector" => array("type" => "user"), "filterable" => "" ), array( "id" => "DATE_CREATE", "name" => GetMessage("IBSEC_A_DATE_CREATE"), "type" => "date", "filterable" => "" ), array( "id" => "CREATED_BY", "name" => GetMessage("IBSEC_A_CREATED_BY"), "type" => "custom_entity", "selector" => array("type" => "user"), "filterable" => "" ), array( "id" => "ACTIVE", "name" => GetMessage("IBSEC_A_ACTIVE"), "type" => "list", "items" => array( "" => GetMessage("IBLOCK_ALL"), "Y" => GetMessage("IBLOCK_YES"), "N" => GetMessage("IBLOCK_NO") ), "filterable" => "" ), array( "id" => "CODE", "name" => GetMessage("IBSEC_A_CODE"), "filterable" => "" ), array( "id" => "EXTERNAL_ID", "name" => GetMessage("IBSEC_A_XML_ID"), "filterable" => "" ), ); global $USER_FIELD_MANAGER; $USER_FIELD_MANAGER->AdminListAddFilterFieldsV2($entity_id, $filterFields); //We have to handle current section in a special way $section_id = strlen($find_section_section) > 0? intval($find_section_section): ""; $find_section_section = $section_id; //This is all parameters needed for proper navigation $sThisSectionUrl = '&type='.urlencode($type).'&lang='.LANGUAGE_ID.'&IBLOCK_ID='.$IBLOCK_ID.'&find_section_section='.$find_section_section; $arFilter = $baseFilter = array("IBLOCK_ID" => $IBLOCK_ID); $lAdmin->AddFilter($filterFields, $arFilter); $USER_FIELD_MANAGER->AdminListAddFilterV2($entity_id, $arFilter, $sTableID, $filterFields); if (!is_null($arFilter["SECTION_ID"])) { $find_section_section = intval($arFilter["SECTION_ID"]); } else { $isDifferences = array_diff($baseFilter, array_diff($arFilter, array_map(function ($field) { return $field["id"]; }, $filterFields))); if ($isDifferences) { $arFilter["SECTION_ID"] = $find_section_section; } } if (intval($find_section_section) < 0 || strlen($find_section_section) <= 0) { unset($arFilter["SECTION_ID"]); } elseif($_GET["tree"]=="Y") { unset($arFilter["SECTION_ID"]); $parentDepth = 0; $rsParent = CIBlockSection::GetByID($find_section_section); if($arParent = $rsParent->Fetch()) { $arFilter["LEFT_MARGIN"] = $arParent["LEFT_MARGIN"]+1; $arFilter["RIGHT_MARGIN"] = $arParent["RIGHT_MARGIN"]-1; $parentDepth = $arParent["DEPTH_LEVEL"]; } } // Edititng handling (do not forget rights check!) if($lAdmin->EditAction()) //save button pressed { foreach($_POST['FIELDS'] as $ID=>$arFields) { $ID = intval($ID); if(!$lAdmin->IsUpdated($ID)) continue; if(!CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $ID, "section_edit")) continue; $USER_FIELD_MANAGER->AdminListPrepareFields($entity_id, $arFields); $arFields["IBLOCK_ID"] = $IBLOCK_ID; $ib = new CIBlockSection; $DB->StartTransaction(); if(!$ib->Update($ID, $arFields)) { if($e = $APPLICATION->GetException()) $message = $e->GetString(); else $message = $ib->LAST_ERROR; $lAdmin->AddUpdateError(GetMessage("IBSEC_A_SAVE_ERROR", array("#ID#"=>$ID)).": ".$message, $ID); $DB->Rollback(); } else { $ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($IBLOCK_ID, $ID); $ipropValues->clearValues(); $DB->Commit(); } } } // action handler if ($arID = $lAdmin->GroupAction()) { if (!empty($_REQUEST["action_all_rows_".$sTableID]) && $_REQUEST["action_all_rows_".$sTableID] === "Y") { $rsData = CIBlockSection::GetList($arOrder, $arFilter); while ($arRes = $rsData->Fetch()) $arID[] = $arRes['ID']; } foreach ($arID as $ID) { if (strlen($ID) <= 0) continue; $ID = intval($ID); switch ($_REQUEST['action']) { case "delete": if (CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $ID, "section_delete")) { @set_time_limit(0); $DB->StartTransaction(); if (!CIBlockSection::Delete($ID)) { if ($e = $APPLICATION->GetException()) $message = $e->GetString(); else $message = GetMessage("IBSEC_A_DELERR_REFERERS"); $lAdmin->AddGroupError(GetMessage("IBSEC_A_DELERR", array( "#ID#" => $ID, ))." [".$message."]", $ID); $DB->Rollback(); } else { $DB->Commit(); } } break; case "activate": case "deactivate": if (CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $ID, "section_edit")) { $ob = new CIBlockSection(); $arFields = array( "ACTIVE" => ($_REQUEST['action'] == "activate" ? "Y" : "N"), ); if (!$ob->Update($ID, $arFields)) $lAdmin->AddGroupError(GetMessage("IBSEC_A_UPDERR").$ob->LAST_ERROR, $ID); } break; } } if ($lAdmin->hasGroupErrors()) { $adminSidePanelHelper->sendJsonErrorResponse($lAdmin->getGroupErrors()); } else { $adminSidePanelHelper->sendSuccessResponse(); } } // list header $arHeaders = array( array( "id" => "NAME", "content" => GetMessage("IBSEC_A_NAME"), "sort" => "name", "default" => true, ), array( "id" => "ACTIVE", "content" => GetMessage("IBSEC_A_ACTIVE"), "sort" => "active", "default" => true, "align" => "center", ), array( "id" => "SORT", "content" => GetMessage("IBSEC_A_SORT"), "sort" => "sort", "default" => true, "align" => "right", ), array( "id" => "CODE", "content" => GetMessage("IBSEC_A_CODE"), "sort" => "code", ), array( "id" => "XML_ID", "content" => GetMessage("IBSEC_A_XML_ID"), "sort" => "xml_id", ), array( "id" => "ELEMENT_CNT", "content" => GetMessage("IBSEC_A_ELEMENT_CNT"), "sort" => "element_cnt", "align" => "right", ), array( "id" => "SECTION_CNT", "content" => GetMessage("IBSEC_A_SECTION_CNT"), "align" => "right", ), array( "id" => "TIMESTAMP_X", "content" => GetMessage("IBSEC_A_TIMESTAMP"), "sort" => "timestamp_x", "default" => true, ), array( "id" => "MODIFIED_BY", "content" => GetMessage("IBSEC_A_MODIFIED_BY"), "sort" => "modified_by", ), array( "id" => "DATE_CREATE", "content" => GetMessage("IBSEC_A_DATE_CREATE"), "sort" => "date_create", ), array( "id" => "CREATED_BY", "content" => GetMessage("IBSEC_A_CREATED_BY"), "sort" => "created_by", ), array( "id" => "ID", "content" => GetMessage("IBSEC_A_ID"), "sort" => "id", "default" => true, "align" => "right", ), array( "id" => "DEPTH_LEVEL", "content" => GetMessage("IBSEC_A_DEPTH_LEVEL"), "align" => "right", ), ); $USER_FIELD_MANAGER->AdminListAddHeaders($entity_id, $arHeaders); if ($_GET["tree"] == "Y") { foreach ($arHeaders as $i => $arHeader) if (isset($arHeader["sort"])) unset($arHeaders[$i]["sort"]); } $lAdmin->AddHeaders($arHeaders); $arVisibleColumns = $lAdmin->GetVisibleHeaderColumns(); $arVisibleColumns[] = "IBLOCK_ID"; $arVisibleColumns[] = "ID"; $arVisibleColumns[] = "SECTION_PAGE_URL"; $arVisibleColumns[] = "DEPTH_LEVEL"; $arVisibleColumnsMap = array(); foreach($arVisibleColumns as $value) $arVisibleColumnsMap[$value] = true; if($_REQUEST["mode"] == "excel") $arNavParams = false; else $arNavParams = array("nPageSize"=>CAdminUiResult::GetNavSize($sTableID)); if (array_key_exists("ELEMENT_CNT", $arVisibleColumnsMap)) { $arFilter["CNT_ALL"] = "Y"; $arFilter["ELEMENT_SUBSECTIONS"] = "N"; $rsData = CIBlockSection::GetList($arOrder, $arFilter, true, $arVisibleColumns, $arNavParams); } else { $rsData = CIBlockSection::GetList($arOrder, $arFilter, false, $arVisibleColumns, $arNavParams); } $listElementScriptName = CIBlock::GetAdminElementListScriptName($IBLOCK_ID); $listSectionScriptName = CIBlock::GetAdminSectionListScriptName($IBLOCK_ID); $baseLink = ($publicMode ? $selfFolderUrl.$listSectionScriptName : $APPLICATION->GetCurPage()); $rsData = new CAdminUiResult($rsData, $sTableID); $rsData->NavStart(); $lAdmin->SetNavigationParams($rsData, array("BASE_LINK" => $baseLink)); $arRows = array(); while ($arRes = $rsData->NavNext(false)) { $el_list_url = htmlspecialcharsbx($selfFolderUrl.CIBlock::GetAdminElementListLink($IBLOCK_ID, array( 'find_section_section' => $arRes["ID"] ))); $el_add_url = htmlspecialcharsbx($selfFolderUrl.CIBlock::GetAdminElementEditLink($IBLOCK_ID, 0, array( 'find_section_section' => $arRes["ID"], 'IBLOCK_SECTION_ID' => $arRes["ID"], 'from' => 'iblock_section_admin_inc', "replace_script_name" => true ))); $sec_list_url = htmlspecialcharsbx($selfFolderUrl.CIBlock::GetAdminSectionListLink($IBLOCK_ID, array( 'find_section_section' => $arRes["ID"], 'tree' => $_GET["tree"] == "Y"? 'Y': null, ))); $sec_add_url = htmlspecialcharsbx($selfFolderUrl.CIBlock::GetAdminSectionEditLink($IBLOCK_ID, 0, array( 'find_section_section' => $find_section_section, 'IBLOCK_SECTION_ID' => $arRes["ID"], 'from' => 'iblock_section_admin', "replace_script_name" => true ))); $edit_url = htmlspecialcharsbx($selfFolderUrl.CIBlock::GetAdminSectionEditLink($IBLOCK_ID, $arRes["ID"], array( 'find_section_section' => $find_section_section, 'from' => 'iblock_section_admin', "replace_script_name" => true ))); $el_list_url = \CHTTP::urlAddParams($el_list_url, array("SECTION_ID" => $arRes["ID"], "apply_filter" => "Y")); $sec_list_url = \CHTTP::urlAddParams($sec_list_url, array("SECTION_ID" => $arRes["ID"], "apply_filter" => "Y")); $arRows[$arRes["ID"]] = $row = $lAdmin->AddRow($arRes["ID"], $arRes, $sec_list_url, GetMessage("IBSEC_A_LIST")); $USER_FIELD_MANAGER->AddUserFields($entity_id, $arRes, $row); $row->AddViewField("ID", '<a href="'.$edit_url.'" title="'.GetMessage("IBSEC_A_EDIT").'">'.$arRes["ID"].'</a>'); $row->AddViewField("NAME", '<a href="'.CHTTP::URN2URI($sec_list_url).'" '.($_GET["tree"] == "Y" ? 'style="padding-left:'.(($arRes["DEPTH_LEVEL"] - 1) * 22).'px"' : '').' class="adm-list-table-icon-link" title="'.GetMessage("IBSEC_A_LIST").'"><span class="adm-submenu-item-link-icon adm-list-table-icon iblock-section-icon"></span><span class="adm-list-table-link">'.htmlspecialcharsbx($arRes["NAME"]).'</span></a>'); if (array_key_exists("ELEMENT_CNT", $arVisibleColumnsMap)) $row->AddViewField("ELEMENT_CNT", '<a href="'.CHTTP::URN2URI($el_list_url).'&find_el_subsections=N" title="'.GetMessage("IBSEC_A_ELLIST").'">'.$arRes["ELEMENT_CNT"].'</a>('.'<a href="'.CHTTP::URN2URI($el_list_url).'&find_el_subsections=Y" title="'.GetMessage("IBSEC_A_ELLIST_TITLE").'">'.IntVal(CIBlockSection::GetSectionElementsCount($arRes["ID"], array( "CNT_ALL" => "Y", ))).'</a>) [<a href="'.$el_add_url.'" title="'.GetMessage("IBSEC_A_ELADD_TITLE").'">+</a>]'); if (array_key_exists("SECTION_CNT", $arVisibleColumnsMap)) { $arFilter = array( "IBLOCK_ID" => $IBLOCK_ID, "SECTION_ID" => $arRes["ID"], ); $row->AddViewField("SECTION_CNT", '<a href="'.CHTTP::URN2URI($sec_list_url).'" title="'.GetMessage("IBSEC_A_LIST").'">'.IntVal(CIBlockSection::GetCount($arFilter)).'</a> [<a href="'.$sec_add_url.'" title="'.GetMessage("IBSEC_A_SECTADD_TITLE").'">+</a>]'); } if (array_key_exists("MODIFIED_BY", $arVisibleColumnsMap)) { if ($html = GetUserProfileLink($arRes["MODIFIED_BY"], GetMessage("IBSEC_A_USERINFO"))) $row->AddViewField("MODIFIED_BY", $html); } if (array_key_exists("CREATED_BY", $arVisibleColumnsMap)) { if ($html = GetUserProfileLink($arRes["CREATED_BY"], GetMessage("IBSEC_A_USERINFO"))) $row->AddViewField("CREATED_BY", $html); } } $arSectionOps = CIBlockSectionRights::UserHasRightTo( $IBLOCK_ID, array_keys($arRows), "", CIBlockRights::RETURN_OPERATIONS ); foreach ($arRows as $id => $row) { if (isset($arSectionOps[$id]) && isset($arSectionOps[$id]["section_edit"])) { $row->AddCheckField("ACTIVE"); $row->AddInputField("NAME", array( 'size' => '35', )); $row->AddInputField("SORT", array( 'size' => '3', )); $row->AddInputField("CODE"); $row->AddInputField("XML_ID"); } else { $row->AddCheckField("ACTIVE", false); $row->AddInputField("NAME", false); $row->AddInputField("SORT", false); $row->AddInputField("CODE", false); $row->AddInputField("XML_ID", false); } $arActions = array(); $arActions[] = array( "ICON" => "list", "TEXT" => htmlspecialcharsex($arIBlock["SECTIONS_NAME"]), "ACTION" => $lAdmin->ActionRedirect(CIBlock::GetAdminSectionListLink($IBLOCK_ID, array( "find_section_section" => 0, "tree" => $_GET["tree"] == "Y"? "Y" : null, "SECTION_ID" => $id, "apply_filter" => "Y" ))), "DEFAULT" => "Y", ); if(!defined("CATALOG_PRODUCT")) { $arActions[] = array( "ICON" => "list", "TEXT" => htmlspecialcharsex($arIBlock["ELEMENTS_NAME"]), "ACTION" => $lAdmin->ActionRedirect(CIBlock::GetAdminElementListLink($IBLOCK_ID, array( 'find_section_section' => $id, 'tree' => $_GET["tree"] == "Y"? 'Y' : null, 'find_el_subsections' => 'N', ))), ); } if (isset($arSectionOps[$id]) && isset($arSectionOps[$id]["section_edit"])) $arActions[] = array( "ICON" => "edit", "TEXT" => GetMessage("IBSEC_A_CHANGE"), "ACTION" => $lAdmin->ActionRedirect(CIBlock::GetAdminSectionEditLink($IBLOCK_ID, $id, array( 'find_section_section' => $find_section_section, 'from' => 'iblock_section_admin', "replace_script_name" => true ))), ); if (isset($arSectionOps[$id]) && isset($arSectionOps[$id]["section_delete"])) $arActions[] = array( "ICON" => "delete", "TEXT" => GetMessage("IBSEC_A_DELETE"), "ACTION" => "if(confirm('".GetMessageJS("IBSEC_A_CONFIRM_DEL_MESSAGE")."')) ".$lAdmin->ActionDoGroup($id, "delete", $sThisSectionUrl), ); $row->AddActions($arActions); } $arGroupActions = array( "edit" => GetMessage("MAIN_ADMIN_LIST_EDIT"), "for_all" => true ); foreach ($arSectionOps as $id => $arOps) { if (isset($arOps["section_delete"])) { $arGroupActions["delete"] = GetMessage("MAIN_ADMIN_LIST_DELETE"); break; } } foreach ($arSectionOps as $id => $arOps) { if (isset($arOps["section_edit"])) { $arGroupActions["activate"] = GetMessage("MAIN_ADMIN_LIST_ACTIVATE"); $arGroupActions["deactivate"] = GetMessage("MAIN_ADMIN_LIST_DEACTIVATE"); break; } } $lAdmin->AddGroupActionTable($arGroupActions); $aContext = array(); $boolBtnNew = false; if (CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $find_section_section, "section_section_bind")) { $aContext[] = array( "TEXT" => htmlspecialcharsbx($arIBlock["SECTION_ADD"]), "ICON" => ($boolBtnNew ? "" : "btn_new"), "LINK" => CIBlock::GetAdminSectionEditLink($IBLOCK_ID, 0, array( 'find_section_section' => $find_section_section, 'IBLOCK_SECTION_ID' => $find_section_section, 'from' => 'iblock_section_admin', "replace_script_name" => true )), "TITLE" => GetMessage("IBSEC_A_SECTADD_PRESS") ); } if (CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $find_section_section, "section_element_bind")) { $boolBtnNew = true; if (CModule::IncludeModule('catalog')) { CCatalogAdminTools::setProductFormParams(); $arCatalogBtns = CCatalogAdminTools::getIBlockElementMenu( $IBLOCK_ID, $arCatalog, array( 'find_section_section' => $find_section_section, 'IBLOCK_SECTION_ID' => $find_section_section, 'from' => 'iblock_section_admin', "replace_script_name" => true ) ); if (!empty($arCatalogBtns)) $aContext = array_merge($aContext, $arCatalogBtns); } if (empty($aContext)) { $aContext[] = array( "TEXT" => htmlspecialcharsbx($arIBlock["ELEMENT_ADD"]), "ICON" => "btn_new", "LINK" => CIBlock::GetAdminElementEditLink($IBLOCK_ID, 0, array( 'find_section_section' => $find_section_section, 'IBLOCK_SECTION_ID' => $find_section_section, 'from' => 'iblock_section_admin', "replace_script_name" => true )), "TITLE" => GetMessage("IBSEC_A_ADDEL_TITLE") ); } } if (!defined("CATALOG_PRODUCT")) { $aContext[] = array( "TEXT" => htmlspecialcharsbx($arIBlock["ELEMENTS_NAME"]), "LINK" => CIBlock::GetAdminElementListLink($IBLOCK_ID, array( 'find_section_section' => $find_section_section )), "TITLE" => GetMessage("IBSEC_A_LISTEL_TITLE") ); if ($_GET["tree"] == "Y") $aContext[] = array( "TEXT" => GetMessage("IBSEC_A_NOT_TREE"), "LINK" => CIBlock::GetAdminSectionListLink($IBLOCK_ID, array( 'find_section_section' => $find_section_section, 'tree' => 'N' )), "TITLE" => GetMessage("IBSEC_A_NOT_TREE_TITLE") ); else $aContext[] = array( "TEXT" => GetMessage("IBSEC_A_TREE"), "LINK" => CIBlock::GetAdminSectionListLink($IBLOCK_ID, array( 'find_section_section' => $find_section_section, 'tree' => 'Y' )), "TITLE" => GetMessage("IBSEC_A_TREE_TITLE") ); } $pagePath = (defined("CATALOG_PRODUCT") ? "cat_section_admin.php" : "iblock_section_admin.php"); $pagePath = ($publicMode ? $selfFolderUrl.$pagePath : $APPLICATION->GetCurPage()); $lAdmin->setContextSettings(array("pagePath" => $pagePath)); $lAdmin->AddAdminContextMenu($aContext); if(!defined("CATALOG_PRODUCT")) { $chain = $lAdmin->CreateChain(); $sSectionUrl = CIBlock::GetAdminSectionListLink($IBLOCK_ID, array("find_section_section" => 0, "SECTION_ID" => 0, "apply_filter" => "y")); if($_GET["tree"]=="Y") $sSectionUrl .= '&tree=Y'; $chain->AddItem(array( "TEXT" => htmlspecialcharsex($arIBlock["NAME"]), "LINK" => $sSectionUrl, "ONCLICK" => $lAdmin->ActionAjaxReload($sSectionUrl).';return false;', )); if($find_section_section > 0) { $nav = CIBlockSection::GetNavChain($IBLOCK_ID, $find_section_section, array('ID', 'NAME')); while($ar_nav = $nav->GetNext()) { $sSectionUrl = CIBlock::GetAdminSectionListLink($IBLOCK_ID, array("find_section_section"=> $ar_nav["ID"], "SECTION_ID" => $ar_nav["ID"], "apply_filter" => "y")); if($_GET["tree"]=="Y") $sSectionUrl .= '&tree=Y'; $chain->AddItem(array( "TEXT" => $ar_nav["NAME"], "LINK" => $sSectionUrl, "ONCLICK" => $lAdmin->ActionAjaxReload($sSectionUrl).';return false;', )); } } $lAdmin->ShowChain($chain); } else { $chain = $lAdmin->CreateChain(); if($find_section_section > 0) { $nav = CIBlockSection::GetNavChain($IBLOCK_ID, $find_section_section, array('ID', 'NAME')); while($ar_nav = $nav->GetNext()) { $sSectionUrl = CIBlock::GetAdminSectionListLink($IBLOCK_ID, array("find_section_section"=> $ar_nav["ID"], "SECTION_ID" => $ar_nav["ID"], "apply_filter" => "y", 'catalog' => null)); if($_GET["tree"]=="Y") $sSectionUrl .= '&tree=Y'; $chain->AddItem(array( "TEXT" => $ar_nav["NAME"], "LINK" => htmlspecialcharsbx($sSectionUrl), "ONCLICK" => $lAdmin->ActionAjaxReload($sSectionUrl).';return false;', )); } } $lAdmin->ShowChain($chain); } $lAdmin->CheckListMode(); if(defined("CATALOG_PRODUCT")) { $sSectionName = $arIBlock["SECTIONS_NAME"]; if($find_section_section > 0) { $rsSection = CIBlockSection::GetList(array(), array("=ID" => $find_section_section), false, array("NAME")); $arSection = $rsSection->GetNext(); if($arSection) $sSectionName = $arSection["NAME"]; } $APPLICATION->SetTitle($arIBlock["NAME"].": ".$sSectionName); } else { $APPLICATION->SetTitle($arIBlock["NAME"].": ".$arIBlock["SECTIONS_NAME"]); } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $lAdmin->DisplayFilter($filterFields); $lAdmin->DisplayList(array("default_action" => $sec_list_url)); if(CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, 'iblock_edit') && !defined("CATALOG_PRODUCT") && !$publicMode) { echo BeginNote(), GetMessage("IBSEC_A_IBLOCK_MANAGE_HINT"), ' <a href="iblock_edit.php?type='.htmlspecialcharsbx($type).'&lang='.LANGUAGE_ID.'&ID='.$IBLOCK_ID.'&admin=Y&return_url='.urlencode(CIBlock::GetAdminSectionListLink($IBLOCK_ID, array( "find_section_section" => $find_section_section, ))).'">', GetMessage("IBSEC_A_IBLOCK_MANAGE_HINT_HREF"), '</a>', EndNote() ; } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");