Current Path : /var/www/www-root/data/www/monolith-realty.ru/bitrix/modules/iblock/admin/ |
Current File : /var/www/www-root/data/www/monolith-realty.ru/bitrix/modules/iblock/admin/iblock_section_edit.php |
<? use Bitrix\Main\Context; use Bitrix\Main\Loader; use Bitrix\Iblock; require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); Loader::includeModule("iblock"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/prolog.php"); IncludeModuleLangFile(__FILE__); /** @global CDatabase $DB */ global $DB; /** @global CUser $USER */ global $USER; /** @global CMain $APPLICATION */ global $APPLICATION; /** @global CUserTypeManager $USER_FIELD_MANAGER */ global $USER_FIELD_MANAGER; /** @global CAdminPage $adminPage */ global $adminPage; /** @global CAdminSidePanelHelper $adminSidePanelHelper */ global $adminSidePanelHelper; $request = Context::getCurrent()->getRequest(); $return_url = (string)($request->get('return_url') ?? ''); $selfFolderUrl = $adminPage->getSelfFolderUrl(); if (defined("BX_PUBLIC_MODE") && BX_PUBLIC_MODE == 1) { $adminSidePanelHelper->setSkipResponse(true); } $io = CBXVirtualIo::GetInstance(); $strWarning = ""; $bVarsFromForm = false; $message = false; $ID = (isset($_REQUEST['ID']) ? (int)$_REQUEST['ID'] : 0); $IBLOCK_SECTION_ID = (isset($_REQUEST['IBLOCK_SECTION_ID']) ? (int)$_REQUEST['IBLOCK_SECTION_ID'] : 0); $IBLOCK_ID = (isset($_REQUEST['IBLOCK_ID']) ? (int)$_REQUEST['IBLOCK_ID'] : 0); $type = ''; $find_section_section = (isset($_REQUEST['find_section_section']) ? (int)$_REQUEST['find_section_section'] : 0); /* autocomplete */ $strLookup = ''; if (isset($_REQUEST['lookup'])) $strLookup = preg_replace("/[^a-zA-Z0-9_:]/", "", htmlspecialcharsbx($_REQUEST["lookup"])); if ('' != $strLookup) { define('BT_UT_AUTOCOMPLETE', 1); } $bAutocomplete = defined('BT_UT_AUTOCOMPLETE') && (BT_UT_AUTOCOMPLETE == 1); $internalAdminPage = defined('INTERNAL_ADMIN_PAGE') && INTERNAL_ADMIN_PAGE === 'Y'; $errorPopupProlog = $bAutocomplete || $internalAdminPage; $arIBlock = CIBlock::GetArrayByID($IBLOCK_ID); if($arIBlock) { $bBadBlock = !(CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $ID, "iblock_admin_display") && ( CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $ID, "section_edit") || CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_SECTION_ID, "section_section_bind") ) ); } else { $bBadBlock = true; } if(!$bBadBlock) { $arIBTYPE = CIBlockType::GetByIDLang($arIBlock['IBLOCK_TYPE_ID'], LANGUAGE_ID); if($arIBTYPE === false) $bBadBlock = true; else $type = $arIBlock['IBLOCK_TYPE_ID']; } if($bBadBlock) { $APPLICATION->SetTitle($arIBTYPE["NAME"] ?? ''); if ($errorPopupProlog) { require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_popup_admin.php"); } else { require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); } ShowError(GetMessage("IBSEC_E_BAD_IBLOCK")); if (!$errorPopupProlog) { ?><a href="iblock_admin.php?lang=<?=LANGUAGE_ID?>&type=<?=urlencode($type)?>"><?= GetMessage("IBSEC_E_BACK_TO_ADMIN")?></a><?php } if (!$internalAdminPage) { require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); } die(); } $urlBuilder = Iblock\Url\AdminPage\BuilderManager::getInstance()->getBuilder(); if ($urlBuilder === null) { $APPLICATION->SetTitle($arIBTYPE["NAME"] ?? ''); if ($errorPopupProlog) { require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_popup_admin.php"); } else { require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); } ShowError(GetMessage("IBSEC_E_ERR_BUILDER_ADSENT")); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); die(); } $urlBuilder->setIblockId($IBLOCK_ID); $urlBuilder->setUrlParams(array()); $pageConfig = array( 'IBLOCK_EDIT' => false, 'PUBLIC_PAGE' => false, 'SHOW_NAVCHAIN' => true, 'NAVCHAIN_ROOT' => false, 'SHOW_CONTEXT_MENU' => true ); switch ($urlBuilder->getId()) { case 'CRM': case 'SHOP': case 'INVENTORY': $pageConfig['SHOW_NAVCHAIN'] = false; $pageConfig['SHOW_CONTEXT_MENU'] = false; $pageConfig['PUBLIC_PAGE'] = true; break; case 'CATALOG': break; case 'IBLOCK': $pageConfig['IBLOCK_EDIT'] = true; $pageConfig['NAVCHAIN_ROOT'] = true; break; } if ($bAutocomplete) { $pageConfig['SHOW_NAVCHAIN'] = false; $pageConfig['SHOW_CONTEXT_MENU'] = false; } $APPLICATION->AddHeadScript('/bitrix/js/main/admin_tools.js'); $APPLICATION->AddHeadScript('/bitrix/js/iblock/iblock_edit.js'); if(!$arIBlock["SECTION_NAME"]) { $arIBlock["SECTION_NAME"] = $arIBTYPE["SECTION_NAME"] ?: GetMessage("IBLOCK_SECTION"); } $bEditRights = $arIBlock["RIGHTS_MODE"] === "E" && CIBlockSectionRights::UserHasRightTo($IBLOCK_ID, $ID, "section_rights_edit"); $aTabs = array( array( "DIV" => "edit1", "TAB" => $arIBlock["SECTION_NAME"], "ICON" => "iblock_section", "TITLE" => htmlspecialcharsbx($ID > 0 ? $arIBlock["SECTION_EDIT"] : $arIBlock["SECTION_ADD"]), ), array( "DIV" => "edit5", "TAB" => GetMessage("IBSEC_E_TAB5"), "ICON" => "iblock_iprops", "TITLE" => GetMessage("IBSEC_E_TAB5_TITLE"), "ONSELECT" => "InheritedPropertiesTemplates.onTabSelect();", ), array( "DIV" => "edit2", "TAB" => GetMessage("IBSEC_E_TAB2"), "ICON" => "iblock_section", "TITLE" => GetMessage("IBSEC_E_TAB2_TITLE"), ), ); //Add user fields tab only when there is fields defined or user has rights for adding new field if( (count($USER_FIELD_MANAGER->GetUserFields("IBLOCK_".$IBLOCK_ID."_SECTION")) > 0) || ($USER_FIELD_MANAGER->GetRights("IBLOCK_".$IBLOCK_ID."_SECTION") >= "W") ) { $aTabs[] = $USER_FIELD_MANAGER->EditFormTab("IBLOCK_".$IBLOCK_ID."._SECTION"); } if($bEditRights) { $aTabs[] = array( "DIV" => "edit3", "TAB" => GetMessage("IBSEC_E_TAB_RIGHTS"), "ICON" => "iblock_section", "TITLE" => GetMessage("IBSEC_E_TAB_RIGHTS_TITLE"), ); } if($arIBlock["SECTION_PROPERTY"] === "Y") { $aTabs[] = array( "DIV" => "edit4", "TAB" => GetMessage("IBSEC_E_PROPERTY_TAB"), "ICON" => "iblock_section", "TITLE" => GetMessage("IBSEC_E_PROPERTY_TAB_TITLE"), ); } $tabControl = new CAdminForm("form_section_".$IBLOCK_ID, $aTabs); $customTabber = new CAdminTabEngine("OnAdminIBlockSectionEdit", array("ID" => $ID, "IBLOCK"=>$arIBlock, "IBLOCK_TYPE"=>$arIBTYPE)); $tabControl->AddTabs($customTabber); if( $_SERVER["REQUEST_METHOD"] == "POST" && isset($_REQUEST["Update"]) && $_REQUEST["Update"] != "" && check_bitrix_sessid() ) { $adminSidePanelHelper->decodeUriComponent(); $DB->StartTransaction(); $bs = new CIBlockSection; $picture = $_REQUEST["PICTURE"] ?? null; $pictureDescription = $_REQUEST["PICTURE_descr"] ?? null; if (array_key_exists("PICTURE", $_FILES)) { $picture = $_FILES["PICTURE"]; $pictureDescription = null; } $arPICTURE = CIBlock::makeFileArray( $picture, isset(${"PICTURE_del"}) && ${"PICTURE_del"} === "Y", $pictureDescription ); if ($arPICTURE["error"] == 0) { $arPICTURE["COPY_FILE"] = "Y"; } $detailPicture = $_REQUEST["DETAIL_PICTURE"] ?? null; $detailPictureDescription = $_REQUEST["DETAIL_PICTURE_descr"] ?? null; if (array_key_exists("DETAIL_PICTURE", $_FILES)) { $detailPicture = $_FILES["DETAIL_PICTURE"]; $detailPictureDescription = null; } $arDETAIL_PICTURE = CIBlock::makeFileArray( $detailPicture, isset(${"DETAIL_PICTURE_del"}) && ${"DETAIL_PICTURE_del"} === "Y", $detailPictureDescription ); if ($arDETAIL_PICTURE["error"] == 0) { $arDETAIL_PICTURE["COPY_FILE"] = "Y"; } $arFields = [ "IBLOCK_ID" => $IBLOCK_ID, "IBLOCK_SECTION_ID" => $IBLOCK_SECTION_ID, "PICTURE" => $arPICTURE, "DETAIL_PICTURE" => $arDETAIL_PICTURE, ]; $simpleFields = [ 'ACTIVE', 'NAME', 'SORT', 'CODE', 'DESCRIPTION', 'DESCRIPTION_TYPE', ]; foreach ($simpleFields as $fieldId) { if (isset($_POST[$fieldId]) && is_string($_POST[$fieldId])) { $arFields[$fieldId] = $_POST[$fieldId]; } } if (isset($arFields['DESCRIPTION']) && Loader::includeModule('bitrix24')) { $sanitizer = new \CBXSanitizer(); $sanitizer->setLevel(\CBXSanitizer::SECURE_LEVEL_LOW); $sanitizer->ApplyDoubleEncode(false); $arFields['DESCRIPTION'] = $sanitizer->SanitizeHtml(htmlspecialchars_decode($arFields['DESCRIPTION'])); } if(isset($_POST["SECTION_PROPERTY"]) && is_array($_POST["SECTION_PROPERTY"])) { $arFields["SECTION_PROPERTY"] = array(); foreach($_POST["SECTION_PROPERTY"] as $PID => $arLink) { if($arLink["SHOW"] === "Y") { $arFields["SECTION_PROPERTY"][$PID] = array( "SMART_FILTER" => $arLink["SMART_FILTER"] ?? null, "DISPLAY_TYPE" => $arLink["DISPLAY_TYPE"] ?? null, "DISPLAY_EXPANDED" => $arLink["DISPLAY_EXPANDED"] ?? null, "FILTER_HINT" => $arLink["FILTER_HINT"] ?? null, ); } } } if($bEditRights && $arIBlock["RIGHTS_MODE"] === "E") { if (isset($_POST["RIGHTS"])) { if (is_array($_POST["RIGHTS"])) { $arFields["RIGHTS"] = CIBlockRights::Post2Array($_POST["RIGHTS"]); } else { $arFields["RIGHTS"] = []; } } } if (is_array($_POST["IPROPERTY_TEMPLATES"])) { $SECTION_PICTURE_FILE_NAME = \Bitrix\Iblock\Template\Helper::convertArrayToModifiers($_POST["IPROPERTY_TEMPLATES"]["SECTION_PICTURE_FILE_NAME"]); $SECTION_DETAIL_PICTURE_FILE_NAME = \Bitrix\Iblock\Template\Helper::convertArrayToModifiers($_POST["IPROPERTY_TEMPLATES"]["SECTION_DETAIL_PICTURE_FILE_NAME"]); $ELEMENT_PREVIEW_PICTURE_FILE_NAME = \Bitrix\Iblock\Template\Helper::convertArrayToModifiers($_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PREVIEW_PICTURE_FILE_NAME"]); $ELEMENT_DETAIL_PICTURE_FILE_NAME = \Bitrix\Iblock\Template\Helper::convertArrayToModifiers($_POST["IPROPERTY_TEMPLATES"]["ELEMENT_DETAIL_PICTURE_FILE_NAME"]); $arFields["IPROPERTY_TEMPLATES"] = array( "SECTION_META_TITLE" => ( $_POST["IPROPERTY_TEMPLATES"]["SECTION_META_TITLE"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["SECTION_META_TITLE"]["TEMPLATE"]: "" ), "SECTION_META_KEYWORDS" => ( $_POST["IPROPERTY_TEMPLATES"]["SECTION_META_KEYWORDS"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["SECTION_META_KEYWORDS"]["TEMPLATE"]: "" ), "SECTION_META_DESCRIPTION" => ( $_POST["IPROPERTY_TEMPLATES"]["SECTION_META_DESCRIPTION"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["SECTION_META_DESCRIPTION"]["TEMPLATE"]: "" ), "SECTION_PAGE_TITLE" => ( $_POST["IPROPERTY_TEMPLATES"]["SECTION_PAGE_TITLE"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["SECTION_PAGE_TITLE"]["TEMPLATE"]: "" ), "ELEMENT_META_TITLE" => ( $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_META_TITLE"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_META_TITLE"]["TEMPLATE"]: "" ), "ELEMENT_META_KEYWORDS" => ( $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_META_KEYWORDS"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_META_KEYWORDS"]["TEMPLATE"]: "" ), "ELEMENT_META_DESCRIPTION" => ( $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_META_DESCRIPTION"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_META_DESCRIPTION"]["TEMPLATE"]: "" ), "ELEMENT_PAGE_TITLE" => ( $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PAGE_TITLE"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PAGE_TITLE"]["TEMPLATE"]: "" ), "SECTION_PICTURE_FILE_ALT" => ( $_POST["IPROPERTY_TEMPLATES"]["SECTION_PICTURE_FILE_ALT"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["SECTION_PICTURE_FILE_ALT"]["TEMPLATE"]: "" ), "SECTION_PICTURE_FILE_TITLE" => ( $_POST["IPROPERTY_TEMPLATES"]["SECTION_PICTURE_FILE_TITLE"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["SECTION_PICTURE_FILE_TITLE"]["TEMPLATE"]: "" ), "SECTION_PICTURE_FILE_NAME" => ( $_POST["IPROPERTY_TEMPLATES"]["SECTION_PICTURE_FILE_NAME"]["INHERITED"]==="N"? $SECTION_PICTURE_FILE_NAME: "" ), "SECTION_DETAIL_PICTURE_FILE_ALT" => ( $_POST["IPROPERTY_TEMPLATES"]["SECTION_DETAIL_PICTURE_FILE_ALT"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["SECTION_DETAIL_PICTURE_FILE_ALT"]["TEMPLATE"]: "" ), "SECTION_DETAIL_PICTURE_FILE_TITLE" => ( $_POST["IPROPERTY_TEMPLATES"]["SECTION_DETAIL_PICTURE_FILE_TITLE"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["SECTION_DETAIL_PICTURE_FILE_TITLE"]["TEMPLATE"]: "" ), "SECTION_DETAIL_PICTURE_FILE_NAME" => ( $_POST["IPROPERTY_TEMPLATES"]["SECTION_DETAIL_PICTURE_FILE_NAME"]["INHERITED"]==="N"? $SECTION_DETAIL_PICTURE_FILE_NAME: "" ), "ELEMENT_PREVIEW_PICTURE_FILE_ALT" => ( $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PREVIEW_PICTURE_FILE_ALT"]["TEMPLATE"]: "" ), "ELEMENT_PREVIEW_PICTURE_FILE_TITLE" => ( $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PREVIEW_PICTURE_FILE_TITLE"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PREVIEW_PICTURE_FILE_TITLE"]["TEMPLATE"]: "" ), "ELEMENT_PREVIEW_PICTURE_FILE_NAME" => ( $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_PREVIEW_PICTURE_FILE_NAME"]["INHERITED"]==="N"? $ELEMENT_PREVIEW_PICTURE_FILE_NAME: "" ), "ELEMENT_DETAIL_PICTURE_FILE_ALT" => ( $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_DETAIL_PICTURE_FILE_ALT"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_DETAIL_PICTURE_FILE_ALT"]["TEMPLATE"]: "" ), "ELEMENT_DETAIL_PICTURE_FILE_TITLE" => ( $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_DETAIL_PICTURE_FILE_TITLE"]["INHERITED"]==="N"? $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_DETAIL_PICTURE_FILE_TITLE"]["TEMPLATE"]: "" ), "ELEMENT_DETAIL_PICTURE_FILE_NAME" => ( $_POST["IPROPERTY_TEMPLATES"]["ELEMENT_DETAIL_PICTURE_FILE_NAME"]["INHERITED"]==="N"? $ELEMENT_DETAIL_PICTURE_FILE_NAME: "" ), ); } $USER_FIELD_MANAGER->EditFormAddFields("IBLOCK_".$IBLOCK_ID."_SECTION", $arFields); if(COption::GetOptionString("iblock", "show_xml_id", "N")=="Y" && is_set($_POST, "XML_ID")) $arFields["XML_ID"] = $_POST["XML_ID"]; if(!$customTabber->Check()) { if($ex = $APPLICATION->GetException()) $strWarning .= $ex->GetString(); else $strWarning .= "Error. "; } if ($strWarning == "") { if ($ID > 0) { $res = $bs->Update($ID, $arFields, true, true, true); } else { $ID = $bs->Add($arFields, true, true, true); $res = ($ID > 0); } } else { $res = false; } if ($res && $strWarning == "") { $res = $customTabber->Action(); if (!$res) { if ($ex = $APPLICATION->GetException()) $strWarning .= $ex->GetString(); else $strWarning .= "Error. "; } } if(!$res) { $strWarning .= $bs->LAST_ERROR; $bVarsFromForm = true; $DB->Rollback(); $message = null; if($e = $APPLICATION->GetException()) $message = new CAdminMessage(GetMessage("admin_lib_error"), $e); $errorMessage = ''; if ($strWarning !== '') { $errorMessage = $strWarning; } elseif ($message instanceof \CAdminMessage) { $messageList = array(); $rawMessageList = $message->GetMessages(); if (is_array($rawMessageList)) { foreach ($rawMessageList as $item) { $messageList[] = is_array($item) ? $item["text"] : $item ; } } $errorMessage = implode("; ", $messageList); unset($messageList); } $adminSidePanelHelper->sendJsonErrorResponse($errorMessage); } else { if (isset($_POST["IPROPERTY_CLEAR_VALUES"]) && $_POST["IPROPERTY_CLEAR_VALUES"] === "Y") { $ipropValues = new \Bitrix\Iblock\InheritedProperty\SectionValues($IBLOCK_ID, $ID); $ipropValues->clearValues(); } $DB->Commit(); if ($adminSidePanelHelper->isAjaxRequest()) { $adminSidePanelHelper->sendSuccessResponse("base", array("ID" => $ID)); } // fix open page without slider from public shop $urlBuilder->setSliderMode(false); $urlBuilder->setUrlParams([]); // fix end if ($request->getPost('apply') === null && $request->getPost('save_and_add') === null) { if ($bAutocomplete) { ?><script type="text/javascript"> window.opener.<? echo $strLookup; ?>.AddValue(<? echo $ID;?>); window.close(); </script><? CMain::FinalActions(); } elseif($return_url <> '') { if(mb_strpos($return_url, "#") !== false) { $rsSection = CIBlockSection::GetList(array(), array("ID" => $ID), false, array("SECTION_PAGE_URL")); $arSection = $rsSection->Fetch(); if($arSection) $return_url = CIBlock::ReplaceDetailUrl($return_url, $arSection, true, "S"); } $adminSidePanelHelper->localRedirect($return_url); LocalRedirect($return_url); } else { $saveUrl = $urlBuilder->getSectionListUrl($find_section_section); $adminSidePanelHelper->localRedirect($saveUrl); LocalRedirect($saveUrl); } } elseif ($request->getPost('save_and_add') !== null) { if (defined('BX_PUBLIC_MODE') && BX_PUBLIC_MODE == 1) { while(ob_end_clean()); $url = $urlBuilder->getSectionDetailUrl( 0, array( "find_section_section" => $find_section_section, "return_url" => ($return_url <> ''? $return_url: null), "IBLOCK_SECTION_ID" => $IBLOCK_SECTION_ID, "from_module" => "iblock", "bxpublic" => "Y", "nobuttons" => "Y", ) ); ?><script type="text/javascript"> top.BX.ajax.post('<?=CUtil::JSEscape($url); ?>', {}, function (result) { top.BX.closeWait(); top.window.reloadAfterClose = true; top.BX.WindowManager.Get().SetContent(result); } ); </script>'; <? CMain::FinalActions(); } else { $saveAndAddUrl = $urlBuilder->getSectionDetailUrl( 0, array( "find_section_section" => $find_section_section, "IBLOCK_SECTION_ID" => $IBLOCK_SECTION_ID, "return_url" => ($return_url <> ''? $return_url: null), ), "&".$tabControl->ActiveTabParam() ); $adminSidePanelHelper->localRedirect($saveAndAddUrl); LocalRedirect($saveAndAddUrl); } } else { $applyUrl = $urlBuilder->getSectionDetailUrl( $ID, array( "find_section_section" => $find_section_section, "return_url" => $return_url <> '' ? $return_url: null ), "&".$tabControl->ActiveTabParam() ); $applyUrl = $adminSidePanelHelper->setDefaultQueryParams($applyUrl); LocalRedirect($applyUrl); } } } ClearVars("str_"); $str_ACTIVE="Y"; $str_NAME = htmlspecialcharsbx($arIBlock["FIELDS"]["SECTION_NAME"]["DEFAULT_VALUE"]); $str_DESCRIPTION_TYPE = $arIBlock["FIELDS"]["SECTION_DESCRIPTION_TYPE"]["DEFAULT_VALUE"] !== "html"? "text": "html"; $str_DESCRIPTION = htmlspecialcharsbx($arIBlock["FIELDS"]["SECTION_DESCRIPTION"]["DEFAULT_VALUE"]); $str_SORT="500"; $str_IBLOCK_SECTION_ID = $IBLOCK_SECTION_ID; $result = CIBlockSection::GetByID($ID); $arSection = $result->ExtractFields("str_"); if(!$arSection) { $ID = 0; $ipropTemlates = new \Bitrix\Iblock\InheritedProperty\SectionTemplates($IBLOCK_ID, 0); } else { $ipropTemlates = new \Bitrix\Iblock\InheritedProperty\SectionTemplates($IBLOCK_ID, $ID); } if($bVarsFromForm) { $DB->InitTableVarsForEdit("b_iblock_section", "", "str_"); $str_IPROPERTY_TEMPLATES = $_POST["IPROPERTY_TEMPLATES"]; } else { $str_IPROPERTY_TEMPLATES = $ipropTemlates->findTemplates(); $str_IPROPERTY_TEMPLATES["SECTION_PICTURE_FILE_NAME"] = \Bitrix\Iblock\Template\Helper::convertModifiersToArray($str_IPROPERTY_TEMPLATES["SECTION_PICTURE_FILE_NAME"] ?? null); $str_IPROPERTY_TEMPLATES["SECTION_DETAIL_PICTURE_FILE_NAME"] = \Bitrix\Iblock\Template\Helper::convertModifiersToArray($str_IPROPERTY_TEMPLATES["SECTION_DETAIL_PICTURE_FILE_NAME"] ?? null); $str_IPROPERTY_TEMPLATES["ELEMENT_PREVIEW_PICTURE_FILE_NAME"] = \Bitrix\Iblock\Template\Helper::convertModifiersToArray($str_IPROPERTY_TEMPLATES["ELEMENT_PREVIEW_PICTURE_FILE_NAME"] ?? null); $str_IPROPERTY_TEMPLATES["ELEMENT_DETAIL_PICTURE_FILE_NAME"] = \Bitrix\Iblock\Template\Helper::convertModifiersToArray($str_IPROPERTY_TEMPLATES["ELEMENT_DETAIL_PICTURE_FILE_NAME"] ?? null); // default values $columns = $DB->GetTableFieldsList("b_iblock_section"); foreach ($columns as $column) { ${"str_{$column}"} ??= null; } } if($ID>0) $APPLICATION->SetTitle(GetMessage("IBSEC_E_EDIT_TITLE", array("#IBLOCK_NAME#"=>$arIBlock["NAME"], "#SECTION_TITLE#"=>$arIBlock["SECTION_NAME"]))); else $APPLICATION->SetTitle(GetMessage("IBSEC_E_NEW_TITLE", array("#IBLOCK_NAME#"=>$arIBlock["NAME"], "#SECTION_TITLE#"=>$arIBlock["SECTION_NAME"]))); if ($pageConfig['SHOW_NAVCHAIN']) { if ($pageConfig['NAVCHAIN_ROOT']) { $adminChain->AddItem(array( "TEXT" => htmlspecialcharsex($arIBlock["NAME"]), "LINK" => htmlspecialcharsbx($urlBuilder->getSectionListUrl(0)) )); } if ($find_section_section > 0) { $nav = CIBlockSection::GetNavChain($IBLOCK_ID, $find_section_section, array('ID', 'NAME'), true); foreach ($nav as $ar_nav) { $last_nav = $urlBuilder->getSectionListUrl( (int)$ar_nav['ID'] ); $adminChain->AddItem(array( "TEXT" => htmlspecialcharsEx($ar_nav["NAME"]), "LINK" => htmlspecialcharsbx($last_nav), )); } unset($last_nav, $ar_nav, $nav); } } if ($bAutocomplete) require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_popup_admin.php"); else require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); if ($pageConfig['SHOW_CONTEXT_MENU']) { $aMenu = array( array( "TEXT" => htmlspecialcharsbx($arIBlock["SECTIONS_NAME"]), "LINK" => $urlBuilder->getSectionListUrl($find_section_section), "ICON" => "btn_list", ), ); if ($ID > 0) { $newUrl = $urlBuilder->getSectionDetailUrl( null, array( "find_section_section" => $find_section_section, "IBLOCK_SECTION_ID" => ($IBLOCK_SECTION_ID > 0 ? $IBLOCK_SECTION_ID : $find_section_section) ) ); if (!$adminSidePanelHelper->isPublicFrame()) $newUrl = $adminSidePanelHelper->setDefaultQueryParams($newUrl); $aMenu[] = array( "TEXT" => htmlspecialcharsbx($arIBlock["SECTION_ADD"]), "LINK" => $newUrl, "ICON" => "btn_new", ); $deleteUrlParams = array('find_section_section'=> $find_section_section, 'action'=>'delete'); if (!$adminSidePanelHelper->isPublicFrame()) $deleteUrlParams['skip_public'] = true; $urlDelete = $selfFolderUrl.CIBlock::GetAdminSectionListLink($IBLOCK_ID, $deleteUrlParams); $urlDelete.= '&'.bitrix_sessid_get(); $urlDelete.= '&ID[]='.(preg_match('/iblock_list_admin\.php/', $urlDelete) ? "S" : "").$ID; $buttonAction = $adminSidePanelHelper->isPublicFrame() ? "ONCLICK" : "LINK"; $aMenu[] = array( "TEXT" => htmlspecialcharsbx($arIBlock["SECTION_DELETE"]), $buttonAction => "javascript:if(confirm('".GetMessageJS("IBSEC_E_CONFIRM_DEL_MESSAGE")."'))top.window.location.href='".CUtil::JSEscape($urlDelete)."'", "ICON" => "btn_delete", ); } $context = new CAdminContextMenu($aMenu); $context->Show(); } if($strWarning) CAdminMessage::ShowOldStyleError($strWarning."<br>"); elseif($message) echo $message->Show(); $nameFormat = CSite::GetNameFormat(); //We have to explicitly call calendar and editor functions because //first output may be discarded by form settings $bFileman = Loader::includeModule("fileman"); $arTranslit = $arIBlock["FIELDS"]["SECTION_CODE"]["DEFAULT_VALUE"]; $bLinked = !$ID && (empty($_POST["linked_state"]) || $_POST["linked_state"] !== 'N'); $tabControl->BeginPrologContent(); ?> <style> #bx-admin-prefix table.internal tr:last-child td.internal-left, td.internal-left { border-left: 1px solid!important; border-color:#f1f1f1 #ccd5d7 #cfd8d9 #cfd8da!important; border-color:rgba(0,0,0,0.05) rgba(204,213,215,1) rgba(207,216,217,1) rgba(207,216,218,1); } #bx-admin-prefix table.internal tr:last-child td.internal-right, td.internal-right { border-right: 1px solid!important; border-color:#f1f1f1 #ccd5d7 #cfd8d9 #cfd8da!important; border-color:rgba(0,0,0,0.05) rgba(204,213,215,1) rgba(207,216,217,1) rgba(207,216,218,1); } </style> <? if(method_exists($USER_FIELD_MANAGER, 'showscript')) echo $USER_FIELD_MANAGER->ShowScript(); CAdminCalendar::ShowScript(); if(COption::GetOptionString("iblock", "use_htmledit") === "Y" && $bFileman) { //TODO:This dirty hack will be replaced by special method like calendar do echo '<div style="display:none">'; CFileMan::AddHTMLEditorFrame( "SOME_TEXT", "", "SOME_TEXT_TYPE", "text", array( 'height' => 450, 'width' => '100%' ), "N", 0, "", "", $arIBlock["LID"] ); echo '</div>'; } if($arTranslit["TRANSLITERATION"] == "Y") { CJSCore::Init(array('translit')); ?> <script type="text/javascript"> var linked=<?if($bLinked) echo 'true'; else echo 'false';?>; function set_linked() { linked=!linked; var name_link = document.getElementById('name_link'); if(name_link) { if(linked) name_link.src='/bitrix/themes/.default/icons/iblock/link.gif'; else name_link.src='/bitrix/themes/.default/icons/iblock/unlink.gif'; } var code_link = document.getElementById('code_link'); if(code_link) { if(linked) code_link.src='/bitrix/themes/.default/icons/iblock/link.gif'; else code_link.src='/bitrix/themes/.default/icons/iblock/unlink.gif'; } var linked_state = document.getElementById('linked_state'); if(linked_state) { if(linked) linked_state.value='Y'; else linked_state.value='N'; } } var oldValue = ''; function transliterate() { if(linked) { var from = document.getElementById('NAME'); var to = document.getElementById('CODE'); if(from && to && oldValue != from.value) { BX.translit(from.value, { 'max_len' : <?echo intval($arTranslit['TRANS_LEN'])?>, 'change_case' : '<?echo $arTranslit['TRANS_CASE']?>', 'replace_space' : '<?echo $arTranslit['TRANS_SPACE']?>', 'replace_other' : '<?echo $arTranslit['TRANS_OTHER']?>', 'delete_repeat_replace' : <?echo $arTranslit['TRANS_EAT'] == 'Y'? 'true': 'false'?>, 'use_google' : <?echo $arTranslit['USE_GOOGLE'] == 'Y'? 'true': 'false'?>, 'callback' : function(result){to.value = result; setTimeout('transliterate()', 250);} }); oldValue = from.value; } else { setTimeout('transliterate()', 250); } } else { setTimeout('transliterate()', 250); } } transliterate(); </script> <? } ?> <script type="text/javascript"> var InheritedPropertiesTemplates = new JCInheritedPropertiesTemplates( '<?echo $tabControl->GetName()?>_form', '<?=$selfFolderUrl?>iblock_templates.ajax.php?ENTITY_TYPE=S&IBLOCK_ID=<?echo $IBLOCK_ID;?>&ENTITY_ID=<?echo intval($ID)?>&bxpublic=y' ); BX.ready(function(){ setTimeout(function(){ InheritedPropertiesTemplates.updateInheritedPropertiesTemplates(true); }, 1000); }); </script> <? $tabControl->EndPrologContent(); $tabControl->BeginEpilogContent(); ?> <?=bitrix_sessid_post()?> <?echo GetFilterHiddens("find_");?> <input type="hidden" name="linked_state" id="linked_state" value="<?if($bLinked) echo 'Y'; else echo 'N';?>"> <input type="hidden" name="Update" value="Y"> <input type="hidden" name="ID" value="<?echo $ID?>"> <?if($return_url <> ''):?> <input type="hidden" name="return_url" value="<?=htmlspecialcharsbx($return_url)?>"> <?endif; $tabControl->EndEpilogContent(); $customTabber->SetErrorState($bVarsFromForm); $arEditLinkParams = array( "find_section_section" => intval($find_section_section) ); if ($bAutocomplete) { $arEditLinkParams['lookup'] = $strLookup; } if ($adminSidePanelHelper->isPublicFrame()) { $arEditLinkParams["IFRAME"] = "Y"; $arEditLinkParams["IFRAME_TYPE"] = "PUBLIC_FRAME"; } $tabControl->Begin(array( "FORM_ACTION" => $urlBuilder->getSectionSaveUrl(null, $arEditLinkParams) )); $tabControl->BeginNextFormTab(); ?> <?$tabControl->BeginCustomField("ID", "ID:");?> <?if($ID>0):?> <tr> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo $str_ID?></td> </tr> <?endif;?> <?$tabControl->EndCustomField("ID", '');?> <?$tabControl->BeginCustomField("DATE_CREATE", GetMessage("IBSEC_E_CREATED"));?> <?if($ID>0):?> <?if($str_DATE_CREATE <> ''):?> <tr> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo $str_DATE_CREATE?><? if(intval($str_CREATED_BY)>0): ?> [<a href="user_edit.php?lang=<?=LANGUAGE_ID?>&ID=<?=$str_CREATED_BY?>"><?echo $str_CREATED_BY?></a>]<? $rsUser = CUser::GetByID($str_CREATED_BY); $arUser = $rsUser->Fetch(); if($arUser): echo ' '.CUser::FormatName($nameFormat, $arUser, false, true); endif; endif; ?></td> </tr> <?endif;?> <?endif;?> <?$tabControl->EndCustomField("DATE_CREATE", '');?> <?$tabControl->BeginCustomField("TIMESTAMP_X", GetMessage("IBSEC_E_LAST_UPDATE"));?> <?if($ID>0):?> <tr> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo $str_TIMESTAMP_X?><? if(intval($str_MODIFIED_BY)>0): ?> [<a href="user_edit.php?lang=<?=LANGUAGE_ID?>&ID=<?=$str_MODIFIED_BY?>"><?echo $str_MODIFIED_BY?></a>]<? if(intval($str_CREATED_BY) != intval($str_MODIFIED_BY)) { $rsUser = CUser::GetByID($str_MODIFIED_BY); $arUser = $rsUser->Fetch(); } if($arUser): echo ' '.CUser::FormatName($nameFormat, $arUser, false, true); endif; endif?></td> </tr> <?endif;?> <?$tabControl->EndCustomField("TIMESTAMP_X", '');?> <? $tabControl->AddCheckBoxField( 'ACTIVE', GetMessage('IBSEC_E_ACTIVE'), false, [ 'Y', 'N', ], $str_ACTIVE === 'Y' ); $tabControl->BeginCustomField("IBLOCK_SECTION_ID", GetMessage("IBSEC_E_PARENT_SECTION").":");?> <tr> <td><?echo $tabControl->GetCustomLabelHTML()?></td> <td> <?$l = CIBlockSection::GetTreeList(Array("IBLOCK_ID"=>$IBLOCK_ID), array("ID", "NAME", "DEPTH_LEVEL"));?> <select name="IBLOCK_SECTION_ID" > <option value="0"><?echo GetMessage("IBLOCK_UPPER_LEVEL")?></option> <? while($a = $l->Fetch()): ?><option value="<?echo intval($a["ID"])?>"<?if($str_IBLOCK_SECTION_ID==$a["ID"])echo " selected"?>><?echo str_repeat(".", $a["DEPTH_LEVEL"])?><?echo htmlspecialcharsbx($a["NAME"])?></option><? endwhile; ?> </select> </td> </tr> <? $tabControl->EndCustomField("IBLOCK_SECTION_ID", '<input type="hidden" id="IBLOCK_SECTION_ID" name="IBLOCK_SECTION_ID" value="'.$str_IBLOCK_SECTION_ID.'">'); if($arTranslit["TRANSLITERATION"] == "Y") { $tabControl->BeginCustomField("NAME", GetMessage("IBLOCK_FIELD_NAME").":", true); ?> <tr id="tr_NAME"> <td><?echo $tabControl->GetCustomLabelHTML()?></td> <td nowrap> <input type="text" size="70" name="NAME" id="NAME" maxlength="255" value="<?echo $str_NAME?>"><img id="name_link" title="<?echo GetMessage("IBSEC_E_LINK_TIP")?>" class="linked" src="/bitrix/themes/.default/icons/iblock/<?if($bLinked) echo 'link.gif'; else echo 'unlink.gif';?>" onclick="set_linked()" /> </td> </tr> <? $tabControl->EndCustomField("NAME", '<input type="hidden" name="NAME" id="NAME" value="'.$str_NAME.'">' ); $tabControl->BeginCustomField("CODE", GetMessage("IBLOCK_FIELD_CODE").":", $arIBlock["FIELDS"]["SECTION_CODE"]["IS_REQUIRED"] === "Y"); ?> <tr id="tr_CODE"> <td><?echo $tabControl->GetCustomLabelHTML()?></td> <td nowrap> <input type="text" size="70" name="CODE" id="CODE" maxlength="255" value="<?echo $str_CODE?>"><img id="code_link" title="<?echo GetMessage("IBSEC_E_LINK_TIP")?>" class="linked" src="/bitrix/themes/.default/icons/iblock/<?if($bLinked) echo 'link.gif'; else echo 'unlink.gif';?>" onclick="set_linked()" /> </td> </tr> <? $tabControl->EndCustomField("CODE", '<input type="hidden" name="CODE" id="CODE" value="'.$str_CODE.'">' ); } else { $tabControl->AddEditField("NAME", GetMessage("IBLOCK_FIELD_NAME").":", true, array("size" => 70, "maxlength" => 255), $str_NAME); } $tabControl->BeginCustomField("PICTURE", GetMessage("IBSEC_E_PICTURE"), $arIBlock["FIELDS"]["SECTION_PICTURE"]["IS_REQUIRED"] === "Y"); if($bVarsFromForm && !array_key_exists("PICTURE", $_REQUEST) && $arSection) $str_PICTURE = intval($arSection["PICTURE"]); ?> <tr class="adm-detail-file-row"> <td><?echo $tabControl->GetCustomLabelHTML()?></td> <td><? echo \Bitrix\Main\UI\FileInput::createInstance(array( "name" => "PICTURE", "description" => true, "upload" => true, "allowUpload" => "I", "medialib" => true, "fileDialog" => true, "cloud" => true, "delete" => true, "maxCount" => 1 ))->show(($bVarsFromForm ? $_REQUEST["PICTURE"] : $str_PICTURE), $bVarsFromForm); ?> </td> </tr> <? $tabControl->EndCustomField("PICTURE", ''); $tabControl->BeginCustomField("DESCRIPTION", GetMessage("IBSEC_E_DESCRIPTION"), $arIBlock["FIELDS"]["SECTION_DESCRIPTION"]["IS_REQUIRED"] === "Y"); ?> <tr class="heading"> <td colspan="2"><?echo $tabControl->GetCustomLabelHTML()?></td> </tr> <?if(COption::GetOptionString("iblock", "use_htmledit") === "Y" && $bFileman):?> <tr id="tr_DESCRIPTION_EDITOR"> <td colspan="2" align="center"> <?CFileMan::AddHTMLEditorFrame( "DESCRIPTION", $str_DESCRIPTION, "DESCRIPTION_TYPE", $str_DESCRIPTION_TYPE, array( 'height' => 450, 'width' => '100%' ), "N", 0, "", "", $arIBlock["LID"], true, false, array( 'hideTypeSelector' => $arIBlock["FIELDS"]["SECTION_DESCRIPTION_TYPE_ALLOW_CHANGE"]["DEFAULT_VALUE"] === "N", ) );?> </td> </tr> <?else:?> <tr id="tr_DESCRIPTION_TYPE"> <td><?echo GetMessage("IBSEC_E_DESC_TYPE")?></td> <td> <?php $isHtml = $str_DESCRIPTION_TYPE === 'html'; if($arIBlock["FIELDS"]["SECTION_DESCRIPTION_TYPE_ALLOW_CHANGE"]["DEFAULT_VALUE"] === "N"): ?> <input type="hidden" name="DESCRIPTION_TYPE" value="<?= $str_DESCRIPTION_TYPE;?>"><?= ($isHtml ? GetMessage("IBSEC_E_DESC_TYPE_HTML"): GetMessage("IBSEC_E_DESC_TYPE_TEXT")); ?> <?php else: ?> <input type="radio" name="DESCRIPTION_TYPE" id="DESCRIPTION_TYPE_text" value="text"<?= (!$isHtml ? ' checked' : ''); ?>> <label for="DESCRIPTION_TYPE_text"><?= GetMessage("IBLOCK_DESC_TYPE_TEXT")?></label> / <input type="radio" name="DESCRIPTION_TYPE" id="DESCRIPTION_TYPE_html" value="html"<?= ($isHtml ? ' checked' : ''); ?>> <label for="DESCRIPTION_TYPE_html"><?= GetMessage("IBLOCK_DESC_TYPE_HTML")?></label> <?php endif; ?> </td> </tr> <tr id="tr_DESCRIPTION"> <td colspan="2" align="center"> <textarea cols="60" rows="15" name="DESCRIPTION" style="width:100%"><?echo $str_DESCRIPTION?></textarea> </td> </tr> <?endif; $tabControl->EndCustomField("DESCRIPTION", '<input type="hidden" name="DESCRIPTION" value="'.$str_DESCRIPTION.'">'. '<input type="hidden" name="DESCRIPTION_TYPE" value="'.$str_DESCRIPTION_TYPE.'">' ); $tabControl->BeginNextFormTab(); $tabControl->AddSection("IPROPERTY_TEMPLATES_SECTION", GetMessage("IBSEC_E_SEO_FOR_SECTIONS")); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_SECTION_META_TITLE", GetMessage("IBSEC_E_SEO_META_TITLE")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "SECTION_META_TITLE", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_SECTION_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_SECTION_META_TITLE", IBlockInheritedPropertyHidden($IBLOCK_ID, "SECTION_META_TITLE", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_SECTION_OVERWRITE")) ); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_SECTION_META_KEYWORDS", GetMessage("IBSEC_E_SEO_META_KEYWORDS")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "SECTION_META_KEYWORDS", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_SECTION_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_SECTION_META_KEYWORDS", IBlockInheritedPropertyHidden($IBLOCK_ID, "SECTION_META_KEYWORDS", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_SECTION_OVERWRITE")) ); ?> <? $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_SECTION_META_DESCRIPTION", GetMessage("IBSEC_E_SEO_META_DESCRIPTION")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "SECTION_META_DESCRIPTION", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_SECTION_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_SECTION_META_DESCRIPTION", IBlockInheritedPropertyHidden($IBLOCK_ID, "SECTION_META_DESCRIPTION", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_SECTION_OVERWRITE")) ); ?> <? $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_SECTION_PAGE_TITLE", GetMessage("IBSEC_E_SEO_SECTION_PAGE_TITLE")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "SECTION_PAGE_TITLE", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_SECTION_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_SECTION_PAGE_TITLE", IBlockInheritedPropertyHidden($IBLOCK_ID, "SECTION_PAGE_TITLE", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_SECTION_OVERWRITE")) ); ?> <? $tabControl->AddSection("IPROPERTY_TEMPLATES_ELEMENT", GetMessage("IBSEC_E_SEO_FOR_ELEMENTS")); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_ELEMENT_META_TITLE", GetMessage("IBSEC_E_SEO_META_TITLE")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "ELEMENT_META_TITLE", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_ELEMENT_META_TITLE", IBlockInheritedPropertyHidden($IBLOCK_ID, "ELEMENT_META_TITLE", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_ELEMENT_META_KEYWORDS", GetMessage("IBSEC_E_SEO_META_KEYWORDS")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "ELEMENT_META_KEYWORDS", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_ELEMENT_META_KEYWORDS", IBlockInheritedPropertyHidden($IBLOCK_ID, "ELEMENT_META_KEYWORDS", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_ELEMENT_META_DESCRIPTION", GetMessage("IBSEC_E_SEO_META_DESCRIPTION")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "ELEMENT_META_DESCRIPTION", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_ELEMENT_META_DESCRIPTION", IBlockInheritedPropertyHidden($IBLOCK_ID, "ELEMENT_META_DESCRIPTION", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_ELEMENT_PAGE_TITLE", GetMessage("IBSEC_E_SEO_PAGE_TITLE")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "ELEMENT_PAGE_TITLE", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_ELEMENT_PAGE_TITLE", IBlockInheritedPropertyHidden($IBLOCK_ID, "ELEMENT_PAGE_TITLE", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->AddSection("IPROPERTY_TEMPLATES_SECTIONS_PICTURE", GetMessage("IBSEC_E_SEO_FOR_SECTIONS_PICTURE")); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_SECTION_PICTURE_FILE_ALT", GetMessage("IBSEC_E_SEO_FILE_ALT")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "SECTION_PICTURE_FILE_ALT", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_SECTION_PICTURE_FILE_ALT", IBlockInheritedPropertyHidden($IBLOCK_ID, "SECTION_PICTURE_FILE_ALT", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_SECTION_PICTURE_FILE_TITLE", GetMessage("IBSEC_E_SEO_FILE_TITLE")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "SECTION_PICTURE_FILE_TITLE", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_SECTION_PICTURE_FILE_TITLE", IBlockInheritedPropertyHidden($IBLOCK_ID, "SECTION_PICTURE_FILE_TITLE", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_SECTION_PICTURE_FILE_NAME", GetMessage("IBSEC_E_SEO_FILE_NAME")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "SECTION_PICTURE_FILE_NAME", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_SECTION_PICTURE_FILE_NAME", IBlockInheritedPropertyHidden($IBLOCK_ID, "SECTION_PICTURE_FILE_NAME", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->AddSection("IPROPERTY_TEMPLATES_SECTIONS_DETAIL_PICTURE", GetMessage("IBSEC_E_SEO_FOR_SECTIONS_DETAIL_PICTURE")); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_SECTION_DETAIL_PICTURE_FILE_ALT", GetMessage("IBSEC_E_SEO_FILE_ALT")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "SECTION_DETAIL_PICTURE_FILE_ALT", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_SECTION_DETAIL_PICTURE_FILE_ALT", IBlockInheritedPropertyHidden($IBLOCK_ID, "SECTION_DETAIL_PICTURE_FILE_ALT", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_SECTION_DETAIL_PICTURE_FILE_TITLE", GetMessage("IBSEC_E_SEO_FILE_TITLE")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "SECTION_DETAIL_PICTURE_FILE_TITLE", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_SECTION_DETAIL_PICTURE_FILE_TITLE", IBlockInheritedPropertyHidden($IBLOCK_ID, "SECTION_DETAIL_PICTURE_FILE_TITLE", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_SECTION_DETAIL_PICTURE_FILE_NAME", GetMessage("IBSEC_E_SEO_FILE_NAME")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "SECTION_DETAIL_PICTURE_FILE_NAME", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_SECTION_DETAIL_PICTURE_FILE_NAME", IBlockInheritedPropertyHidden($IBLOCK_ID, "SECTION_DETAIL_PICTURE_FILE_NAME", $str_IPROPERTY_TEMPLATES, "S", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->AddSection("IPROPERTY_TEMPLATES_ELEMENTS_PREVIEW_PICTURE", GetMessage("IBSEC_E_SEO_FOR_ELEMENTS_PREVIEW_PICTURE")); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_ELEMENT_PREVIEW_PICTURE_FILE_ALT", GetMessage("IBSEC_E_SEO_FILE_ALT")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "ELEMENT_PREVIEW_PICTURE_FILE_ALT", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_ELEMENT_PREVIEW_PICTURE_FILE_ALT", IBlockInheritedPropertyHidden($IBLOCK_ID, "ELEMENT_PREVIEW_PICTURE_FILE_ALT", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_ELEMENT_PREVIEW_PICTURE_FILE_TITLE", GetMessage("IBSEC_E_SEO_FILE_TITLE")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "ELEMENT_PREVIEW_PICTURE_FILE_TITLE", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_ELEMENT_PREVIEW_PICTURE_FILE_TITLE", IBlockInheritedPropertyHidden($IBLOCK_ID, "ELEMENT_PREVIEW_PICTURE_FILE_TITLE", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_ELEMENT_PREVIEW_PICTURE_FILE_NAME", GetMessage("IBSEC_E_SEO_FILE_NAME")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "ELEMENT_PREVIEW_PICTURE_FILE_NAME", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_ELEMENT_PREVIEW_PICTURE_FILE_NAME", IBlockInheritedPropertyHidden($IBLOCK_ID, "ELEMENT_PREVIEW_PICTURE_FILE_NAME", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->AddSection("IPROPERTY_TEMPLATES_ELEMENTS_DETAIL_PICTURE", GetMessage("IBSEC_E_SEO_FOR_ELEMENTS_DETAIL_PICTURE")); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_ELEMENT_DETAIL_PICTURE_FILE_ALT", GetMessage("IBSEC_E_SEO_FILE_ALT")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "ELEMENT_DETAIL_PICTURE_FILE_ALT", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_ELEMENT_DETAIL_PICTURE_FILE_ALT", IBlockInheritedPropertyHidden($IBLOCK_ID, "ELEMENT_DETAIL_PICTURE_FILE_ALT", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_ELEMENT_DETAIL_PICTURE_FILE_TITLE", GetMessage("IBSEC_E_SEO_FILE_TITLE")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "ELEMENT_DETAIL_PICTURE_FILE_TITLE", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_ELEMENT_DETAIL_PICTURE_FILE_TITLE", IBlockInheritedPropertyHidden($IBLOCK_ID, "ELEMENT_DETAIL_PICTURE_FILE_TITLE", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->BeginCustomField("IPROPERTY_TEMPLATES_ELEMENT_DETAIL_PICTURE_FILE_NAME", GetMessage("IBSEC_E_SEO_FILE_NAME")); ?> <tr class="adm-detail-valign-top"> <td width="40%"><?echo $tabControl->GetCustomLabelHTML()?></td> <td width="60%"><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "ELEMENT_DETAIL_PICTURE_FILE_NAME", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE"))?></td> </tr> <? $tabControl->EndCustomField("IPROPERTY_TEMPLATES_ELEMENT_DETAIL_PICTURE_FILE_NAME", IBlockInheritedPropertyHidden($IBLOCK_ID, "ELEMENT_DETAIL_PICTURE_FILE_NAME", $str_IPROPERTY_TEMPLATES, "E", GetMessage("IBSEC_E_SEO_ELEMENT_OVERWRITE")) ); $tabControl->AddSection("IPROPERTY_TEMPLATES_MANAGEMENT", GetMessage("IBSEC_E_SEO_MANAGEMENT")); $tabControl->BeginCustomField("IPROPERTY_CLEAR_VALUES", GetMessage("IBSEC_E_SEO_CLEAR_VALUES")); ?> <tr> <td width="40%"><label for="IPROPERTY_CLEAR_VALUES"><?echo $tabControl->GetCustomLabelHTML()?></label></td> <td width="60%"> <input type="checkbox" id="IPROPERTY_CLEAR_VALUES" name="IPROPERTY_CLEAR_VALUES" value="Y" /> </td> </tr> <? $tabControl->EndCustomField("IPROPERTY_CLEAR_VALUES", '<input type="hidden" name="IPROPERTY_CLEAR_VALUES" value="N">' ); $tabControl->BeginNextFormTab(); $tabControl->AddEditField("SORT", GetMessage("IBLOCK_FIELD_SORT").":", false, array("size" => 7, "maxlength" => 10), $str_SORT); if(COption::GetOptionString("iblock", "show_xml_id", "N")=="Y") { $tabControl->AddEditField( "XML_ID", GetMessage("IBLOCK_FIELD_XML_ID").":", $arIBlock["FIELDS"]["SECTION_XML_ID"]["IS_REQUIRED"] === "Y", array("size" => 70, "maxlength" => 255), $str_XML_ID ); } if($arTranslit["TRANSLITERATION"] != "Y") { $tabControl->AddEditField("CODE", GetMessage("IBLOCK_FIELD_CODE").":", $arIBlock["FIELDS"]["SECTION_CODE"]["IS_REQUIRED"] === "Y", array("size" => 70, "maxlength" => 255), $str_CODE); } $tabControl->BeginCustomField("DETAIL_PICTURE", GetMessage("IBLOCK_FIELD_DETAIL_PICTURE").":", $arIBlock["FIELDS"]["SECTION_DETAIL_PICTURE"]["IS_REQUIRED"] === "Y"); if($bVarsFromForm && !array_key_exists("DETAIL_PICTURE", $_REQUEST) && $arSection) $str_DETAIL_PICTURE = intval($arSection["DETAIL_PICTURE"]); ?> <tr class="adm-detail-file-row"> <td><?echo $tabControl->GetCustomLabelHTML()?></td> <td><? echo \Bitrix\Main\UI\FileInput::createInstance(array( "name" => "DETAIL_PICTURE", "description" => true, "upload" => true, "allowUpload" => "I", "medialib" => true, "fileDialog" => true, "cloud" => true, "delete" => true, "maxCount" => 1 ))->show(($bVarsFromForm ? $_REQUEST["DETAIL_PICTURE"] : $str_DETAIL_PICTURE), $bVarsFromForm); ?> </td> </tr> <? $tabControl->EndCustomField("DETAIL_PICTURE", ''); //Add user fields tab only when there is fields defined or user has rights for adding new field $entity_id = "IBLOCK_".$IBLOCK_ID."_SECTION"; if( (!empty($USER_FIELD_MANAGER->GetUserFields($entity_id))) || ($USER_FIELD_MANAGER->GetRights($entity_id) >= "W") ) { $tabControl->BeginNextFormTab(); if($USER_FIELD_MANAGER->GetRights($entity_id) >= "W") { $tabControl->BeginCustomField("USER_FIELDS_ADD", GetMessage("IBSEC_E_USER_FIELDS_ADD_HREF")); $userFieldUrl = $selfFolderUrl."userfield_edit.php?lang=".LANGUAGE_ID."&ENTITY_ID=".urlencode($entity_id); $userFieldUrl = $adminSidePanelHelper->editUrlToPublicPage($userFieldUrl); $userFieldUrl .= "&back_url=".urlencode($APPLICATION->GetCurPageParam('', array('bxpublic'))."&tabControl_active_tab=user_fields_tab"); ?> <tr> <td align="left" colspan="2"> <a target="_top" href="<?=$userFieldUrl?>"><?= $tabControl->GetCustomLabelHTML()?></a> </td> </tr> <? $tabControl->EndCustomField("USER_FIELDS_ADD", ''); } $arUserFields = $USER_FIELD_MANAGER->GetUserFields($entity_id, $ID, LANGUAGE_ID); foreach($arUserFields as $FIELD_NAME => $arUserField) { $arUserField["VALUE_ID"] = intval($ID); $strLabel = $arUserField["EDIT_FORM_LABEL"]?: $arUserField["FIELD_NAME"]; $arUserField["EDIT_FORM_LABEL"] = $strLabel; $tabControl->BeginCustomField($FIELD_NAME, $strLabel, $arUserField["MANDATORY"]=="Y"); echo $USER_FIELD_MANAGER->GetEditFormHTML($bVarsFromForm, $GLOBALS[$FIELD_NAME] ?? '', $arUserField); $form_value = $GLOBALS[$FIELD_NAME] ?? ''; if(!$bVarsFromForm) $form_value = $arUserField["VALUE"]; elseif($arUserField["USER_TYPE"]["BASE_TYPE"]=="file") $form_value = $GLOBALS[$arUserField["FIELD_NAME"]."_old_id"]; $hidden = IBlockGetHiddenHTML($FIELD_NAME, $form_value); $tabControl->EndCustomField($FIELD_NAME, $hidden); } } if($bEditRights) { $tabControl->BeginNextFormTab(); if($ID > 0) { $obSectionRights = new CIBlockSectionRights($IBLOCK_ID, $ID); $htmlHidden = ''; foreach($obSectionRights->GetRights() as $RIGHT_ID => $arRight) $htmlHidden .= ' <input type="hidden" name="RIGHTS[][RIGHT_ID]" value="'.htmlspecialcharsbx($RIGHT_ID).'"> <input type="hidden" name="RIGHTS[][GROUP_CODE]" value="'.htmlspecialcharsbx($arRight["GROUP_CODE"]).'"> <input type="hidden" name="RIGHTS[][TASK_ID]" value="'.htmlspecialcharsbx($arRight["TASK_ID"]).'"> '; } else { $obSectionRights = new CIBlockSectionRights($IBLOCK_ID, $str_IBLOCK_SECTION_ID); $htmlHidden = ''; } $tabControl->BeginCustomField("RIGHTS", GetMessage("IBSEC_E_RIGHTS_FIELD")); IBlockShowRights( 'section', $IBLOCK_ID, $ID, GetMessage("IBSEC_E_RIGHTS_SECTION_TITLE"), "RIGHTS", $obSectionRights->GetRightsList(), $obSectionRights->GetRights(array("count_overwrited" => true, "parent" => $str_IBLOCK_SECTION_ID)), true, /*$bForceInherited=*/($ID <= 0) ); $tabControl->EndCustomField("RIGHTS", $htmlHidden); } if($arIBlock["SECTION_PROPERTY"] === "Y") { $editor = new CEditorPopupControl(); $tabControl->BeginNextFormTab(); $tabControl->BeginCustomField("SECTION_PROPERTY", GetMessage("IBSEC_E_SECTION_PROPERTY_FIELD")); ?> <tr><td align="right" colspan="2"> <a id="modeChangeToTree" href="javascript:setMode(BX('table_SECTION_PROPERTY'), 'tree')"><?echo GetMessage("IBSEC_E_PROP_TREE_MODE");?></a> <a id="modeChangeToFlat" style="display: none;" href="javascript:setMode(BX('table_SECTION_PROPERTY'), 'flat')"><?echo GetMessage("IBSEC_E_PROP_FLAT_MODE");?></a> </td></tr> <tr><td align="center" colspan="2"> <? echo $editor->getEditorHtml(); ?> <table class="internal" id="table_SECTION_PROPERTY" style="border-left: none !important; border-right: none !important;"> <tr id="tr_HEADING" class="heading" mode="flat" prop_sort="-1" prop_id="0" left_margin="-1" > <td class="internal-left"><?echo GetMessage("IBSEC_E_PROP_TABLE_NAME");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_CODE");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_TYPE");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_SMART_FILTER");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_DISPLAY_TYPE");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_DISPLAY_EXPANDED");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_FILTER_HINT");?></td> <td class="internal-right"><?echo GetMessage("IBSEC_E_PROP_TABLE_ACTION");?></td> </tr> <? if(CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, "iblock_edit")) $arShadow = $arHidden = array( -1 => GetMessage("IBSEC_E_PROP_SELECT_CHOOSE"), 0 => GetMessage("IBSEC_E_PROP_SELECT_CREATE"), ); else $arShadow = $arHidden = array( -1 => GetMessage("IBSEC_E_PROP_SELECT_CHOOSE"), ); $arPropLinks = CIBlockSectionPropertyLink::GetArray($arIBlock["ID"], $ID, $ID <= 0); $arParents = array(); foreach ($arPropLinks as $prop_id => $arLink) { if (!isset($arParents[$arLink["INHERITED_FROM"]])) { $arParents[$arLink["INHERITED_FROM"]] = array( "ID" => $arLink["INHERITED_FROM"], "TITLE" => $arLink["LINK_TITLE"], "LEFT_MARGIN" => $arLink["LEFT_MARGIN"], ); } } \Bitrix\Main\Type\Collection::sortByColumn( $arParents, 'LEFT_MARGIN', '', null, true ); $maxMargin = 0; foreach ($arParents as $parent) { $maxMargin = $parent["LEFT_MARGIN"]; ?> <tr id="tr_PARENT_<?echo $parent["ID"]?>" mode="tree" prop_sort="0" prop_id="0" left_margin="<?echo $parent["LEFT_MARGIN"];?>" style="display:none; border:none;" > <td align="left" colspan="4" style="background-color:#f5f9f9; border: none;"> <?if ($parent["ID"] > 0) { $localUrl = CIBlock::GetAdminSectionEditLink( $IBLOCK_ID, $parent["ID"], array( "form_section_".$IBLOCK_ID."_active_tab" => "edit4", "replace_script_name" => true ) ); if (!$adminSidePanelHelper->isPublicFrame()) $localUrl = $adminSidePanelHelper->setDefaultQueryParams($localUrl); ?> <br><br><a href="<?=$localUrl; ?>"><? echo htmlspecialcharsex($parent["TITLE"]) ?></a> <? } else { $localUrl = CIBlock::GetAdminIBlockEditLink( $IBLOCK_ID, array( "form_catalog_edit_".$IBLOCK_ID."_active_tab" => "edit3", "replace_script_name" => true ) ); if (!$adminSidePanelHelper->isPublicFrame()) $localUrl = $adminSidePanelHelper->setDefaultQueryParams($localUrl); ?> <br><br><a href="<?=$localUrl; ?>"><?echo htmlspecialcharsex($parent["TITLE"])?></a> <? } ?> </td> </tr> <tr id="tr_PARENTHEADER_<?echo $parent["ID"]?>" class="heading" mode="tree" prop_sort="1" prop_id="-1" left_margin="<?echo $parent["LEFT_MARGIN"];?>" style="display:none" > <td class="internal-left"><?echo GetMessage("IBSEC_E_PROP_TABLE_NAME");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_CODE");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_TYPE");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_SMART_FILTER");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_DISPLAY_TYPE");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_DISPLAY_EXPANDED");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_FILTER_HINT");?></td> <td class="internal-right"><?echo GetMessage("IBSEC_E_PROP_TABLE_ACTION");?></td> </tr> <? } $rsProps = CIBlockProperty::GetList(array("SORT"=>"ASC",'ID' => 'ASC'), array("IBLOCK_ID" => $arIBlock["ID"], "CHECK_PERMISSIONS" => "N", "ACTIVE"=>"Y")); $rows = 0; $maxSort = 0; while ($arProp = $rsProps->Fetch()): $arProp['CODE'] = (string)$arProp['CODE']; $propName = ($arProp['CODE'] != '' ? '['.$arProp['CODE'].'] ' : '').$arProp['NAME']; $maxSort = $arProp["SORT"]; if(array_key_exists($arProp["ID"], $arPropLinks)) { $rows++; $arLink = $arPropLinks[$arProp["ID"]]; if($arLink["INHERITED"] == "N") $arShadow[$arProp["ID"]] = $propName; } else { $arLink = false; $arHidden[$arProp["ID"]] = $propName; $arShadow[$arProp["ID"]] = $propName; } unset($propName); ?> <tr id="tr_SECTION_PROPERTY_<?echo $arProp["ID"]?>" mode="<?echo (is_array($arLink)? "both": "none");?>" prop_sort="<?echo $arProp["SORT"]?>" prop_id="<?echo $arProp["ID"]?>" left_margin="<?echo is_array($arLink)? $arLink["LEFT_MARGIN"]: $maxMargin;?>" <?if(!is_array($arLink)) echo 'style="display:none"';?> > <td align="left" class="internal-left"> <?if(!is_array($arLink) || $arLink["INHERITED"] == "N"):?> <input type="hidden" name="SECTION_PROPERTY[<?echo $arProp["ID"]?>][SHOW]" id="hidden_SECTION_PROPERTY_<?echo $arProp["ID"]?>" value="<?echo is_array($arLink)? "Y": "N";?>"> <?endif?> <?echo htmlspecialcharsex($arProp["NAME"])?> </td> <td align="left"><?echo htmlspecialcharsex($arProp["CODE"])?></td> <td align="left"><? if($arProp['PROPERTY_TYPE'] == "S" && !$arProp['USER_TYPE']) echo GetMessage("IBLOCK_PROP_S"); elseif($arProp['PROPERTY_TYPE'] == "N" && !$arProp['USER_TYPE']) echo GetMessage("IBLOCK_PROP_N"); elseif($arProp['PROPERTY_TYPE'] == "L" && !$arProp['USER_TYPE']) echo GetMessage("IBLOCK_PROP_L"); elseif($arProp['PROPERTY_TYPE'] == "F" && !$arProp['USER_TYPE']) echo GetMessage("IBLOCK_PROP_F"); elseif($arProp['PROPERTY_TYPE'] == "G" && !$arProp['USER_TYPE']) echo GetMessage("IBLOCK_PROP_G"); elseif($arProp['PROPERTY_TYPE'] == "E" && !$arProp['USER_TYPE']) echo GetMessage("IBLOCK_PROP_E"); elseif($arProp['USER_TYPE'] && is_array($ar = CIBlockProperty::GetUserType($arProp['USER_TYPE']))) echo htmlspecialcharsex($ar["DESCRIPTION"]); else echo GetMessage("IBSEC_E_PROP_TYPE_S"); ?></td> <td style="text-align:center"><? echo '<input type="checkbox" value="Y" '.((is_array($arLink) && $arLink["INHERITED"] === "Y")? 'disabled="disabled"': '').' name="SECTION_PROPERTY['.$arProp['ID'].'][SMART_FILTER]" '.(is_array($arLink) && $arLink["SMART_FILTER"] === "Y"? 'checked="checked"': '').'>'; ?></td> <td> <? $displayTypes = CIBlockSectionPropertyLink::getDisplayTypes($arProp["PROPERTY_TYPE"], $arProp["USER_TYPE"]); if ($displayTypes) { $displayType = null; $field1 = ''; if (is_array($arLink)) { $displayType = $arLink["DISPLAY_TYPE"]; $field1 = $arLink["INHERITED"] === "Y" ? 'disabled="disabled"' : ''; } echo SelectBoxFromArray( 'SECTION_PROPERTY['.$arProp['ID'].'][DISPLAY_TYPE]', [ "REFERENCE_ID" => array_keys($displayTypes), "REFERENCE" => array_values($displayTypes), ], $displayType, '', $field1 ); } else { echo ' '; } ?> </td> <td style="text-align:center"><? echo '<input type="checkbox" value="Y" '.((is_array($arLink) && $arLink["INHERITED"] == "Y")? 'disabled="disabled"': '').' name="SECTION_PROPERTY['.$arProp['ID'].'][DISPLAY_EXPANDED]" '.(is_array($arLink) && $arLink["DISPLAY_EXPANDED"] == "Y"? 'checked="checked"': '').'>'; ?></td> <td> <? if (!is_array($arLink) || $arLink["INHERITED"] == "N") { $filterHint = (is_array($arLink) ? (string)$arLink['FILTER_HINT'] : ''); echo $editor->getControlHtml('SECTION_PROPERTY['.$arProp['ID'].'][FILTER_HINT]', $filterHint, 255); } elseif ($arLink['FILTER_HINT'] <> '') { echo CTextParser::closeTags($arLink['FILTER_HINT']); } else { echo ' '; } ?></td> <td align="left" class="internal-right"><? if(!is_array($arLink) || $arLink["INHERITED"] == "N") echo '<a class="bx-action-href" href="javascript:deleteSectionProperty('.$arProp['ID'].', \'select_SECTION_PROPERTY\', \'shadow_SECTION_PROPERTY\', \'table_SECTION_PROPERTY\')">'.GetMessage("IBSEC_E_PROP_TABLE_ACTION_HIDE").'</a>'; else echo ' '; ?></td> </tr> <?endwhile?> <tr id="tr_FOOTER" mode="<?echo ($rows == 0)? 'both': 'none';?>" prop_sort="<?echo $maxSort + 1?>" prop_id="0" left_margin="<?echo $maxMargin + 1?>" <?echo ($rows == 0)? '': 'style="display:none"';?> > <td align="center" colspan="8"> <?echo GetMessage("IBSEC_E_PROP_TABLE_EMPTY")?> </td> </tr> </table><br> <select id="shadow_SECTION_PROPERTY" style="display:none"> <?foreach($arShadow as $key => $value):?> <option value="<?echo htmlspecialcharsex($key)?>"><?echo htmlspecialcharsbx($value)?></option> <?endforeach?> </select> <select id="select_SECTION_PROPERTY"> <?foreach($arHidden as $key => $value):?> <option value="<?echo htmlspecialcharsex($key)?>"><?echo htmlspecialcharsbx($value)?></option> <?endforeach?> </select> <input type="button" value="<?echo GetMessage("IBSEC_E_PROP_TABLE_ACTION_ADD")?>" onclick="javascript:addSectionProperty(<?echo $arIBlock["ID"];?>, 'select_SECTION_PROPERTY', 'shadow_SECTION_PROPERTY', 'table_SECTION_PROPERTY')"> <script type="text/javascript"> <?echo CIBlockSectionPropertyLink::getDisplayTypesJsFunction();?> var last_mode = 'flat'; var target_id = ''; var target_select_id = ''; var target_shadow_id = ''; function addSectionProperty(iblock_id, select_id, shadow_id, table_id) { var select = BX(select_id); if(select && select.value > 0) { var hidden = BX('hidden_SECTION_PROPERTY_' + select.value); var tr = BX('tr_SECTION_PROPERTY_' + select.value); if(hidden && tr) { jsSelectUtils.deleteOption(select_id, select.value); hidden.value = 'Y'; tr.style.display = 'table-row'; tr.setAttribute('mode', 'both'); animateTR(tr); } adjustEmptyTR(table_id); } if(select && select.value == 0) { target_id = table_id; target_select_id = select_id; target_shadow_id = shadow_id; (new BX.CAdminDialog({ 'content_url' : '<?=$selfFolderUrl?>iblock_edit_property.php?lang=<?echo LANGUAGE_ID?>&IBLOCK_ID='+iblock_id+'&ID=n0&bxpublic=Y&from_module=iblock&return_url=section_edit', 'width' : 700, 'height' : 400, 'buttons': [BX.CAdminDialog.btnSave, BX.CAdminDialog.btnCancel] })).Show(); } } function animateTR(tr) { var tds = BX.findChildren(tr, {tag:'td'}, true); BX.fx.colorAnimate.addRule('animationRule',"#F8F9FC","#faeeb4", "background-color", 50, 1, true); for(var i = 0; i < tds.length; i++) BX.fx.colorAnimate(tds[i], 'animationRule'); } function deleteSectionProperty(id, select_id, shadow_id, table_id) { var hidden = BX('hidden_SECTION_PROPERTY_' + id); var tr = BX('tr_SECTION_PROPERTY_' + id); if(hidden && tr) { hidden.value = 'N'; tr.style.display = 'none'; tr.setAttribute('mode', 'none'); var select = BX(select_id); var shadow = BX(shadow_id); if(select && shadow) { jsSelectUtils.deleteAllOptions(select); for(var i = 0; i < shadow.length; i++) { if(shadow[i].value <= 0) jsSelectUtils.addNewOption(select, shadow[i].value, shadow[i].text); else if (BX('hidden_SECTION_PROPERTY_' + shadow[i].value).value == 'N') jsSelectUtils.addNewOption(select, shadow[i].value, shadow[i].text); } } adjustEmptyTR(table_id); } } function createSectionProperty(id, name, type, sortnum, property_type, user_type, code) { var tbl = BX(target_id); if(tbl) { var cnt = tbl.rows.length; var row = tbl.insertRow(cnt-1); //row.vAlign = 'top'; row.id = 'tr_SECTION_PROPERTY_' + id; row.setAttribute('mode', 'both'); row.setAttribute('prop_sort', sortnum); row.setAttribute('prop_id', id); row.setAttribute('left_margin', <?echo intval($str_LEFT_MARGIN)?>); var cell, c = 0; row.insertCell(-1); cell = row.cells[c]; cell.align = 'left'; cell.innerHTML = '<input type="hidden" name="SECTION_PROPERTY['+id+'][SHOW]" id="hidden_SECTION_PROPERTY_'+id+'" value="Y">'+BX.util.htmlspecialchars(name); cell.className = 'internal-left'; row.insertCell(-1); cell = row.cells[++c]; cell.align = 'left'; cell.innerHTML = code; row.insertCell(-1); cell = row.cells[++c]; cell.align = 'left'; cell.innerHTML = type; row.insertCell(-1); cell = row.cells[++c]; cell.align = 'center'; cell.style.textAlign = 'center'; cell.innerHTML = '<input type="checkbox" value="Y" name="SECTION_PROPERTY['+id+'][SMART_FILTER]">'; row.insertCell(-1); cell = row.cells[++c]; var displayTypes = getDisplayTypes(property_type, user_type); if (!displayTypes) { cell.innerHTML = ' '; } else { var select = BX.create('select', { 'props': { 'name': 'SECTION_PROPERTY[' + id + '][DISPLAY_TYPE]' } }); for (var x in displayTypes) { if (displayTypes.hasOwnProperty(x)) { jsSelectUtils.addNewOption(select, x, displayTypes[x], false, false); } } cell.appendChild(select); } row.insertCell(-1); cell = row.cells[++c]; cell.align = 'center'; cell.style.textAlign = 'center'; cell.innerHTML = '<input type="checkbox" value="Y" name="SECTION_PROPERTY['+id+'][DISPLAY_EXPANDED]">'; row.insertCell(-1); cell = row.cells[++c]; cell.innerHTML = '<?echo CUtil::JSEscape($editor->getControlHtml('SECTION_PROPERTY[#ID#][FILTER_HINT]', '', 255))?>'.replace('#ID#', id) || ' '; row.insertCell(-1); cell = row.cells[++c]; cell.align = 'left'; cell.className = 'internal-right'; cell.innerHTML = '<a class="bx-action-href" href="javascript:deleteSectionProperty('+id+', \''+target_select_id+'\', \''+target_shadow_id+'\', \''+target_id+'\')"><?echo GetMessageJS("IBSEC_E_PROP_TABLE_ACTION_HIDE")?></a>'; setMode(tbl, last_mode); animateTR(row); var shadow = BX(target_shadow_id); if(shadow) jsSelectUtils.addNewOption(shadow, id, name); //adjustEmptyTR(target_id); BX.adminPanel.modifyFormElements(row); } } function adjustEmptyTR(table_id) { var tbl = BX(table_id); if(tbl) { var cnt = tbl.rows.length; var tr = tbl.rows[cnt-1]; var display = 'table-row'; for(var i = 1; i < cnt-1; i++) { if(tbl.rows[i].style.display != 'none') display = 'none'; } tr.style.display = display; } } function setMode(table, mode) { for (var i = 0; i < table.rows.length; i++) { var tr = table.rows[i]; var trMode = tr.getAttribute('mode'); if (!trMode) { return; } if (trMode == 'both' || trMode == mode) tr.style.display = 'table-row'; else tr.style.display = 'none'; } if (mode == 'tree') { BX('modeChangeToTree').style.display = 'none'; BX('modeChangeToFlat').style.display = 'block'; sortPropsTable(table, compareRowsByMargin); } else { BX('modeChangeToFlat').style.display = 'none'; BX('modeChangeToTree').style.display = 'block'; sortPropsTable(table, compareRowsBySort); } jsUserOptions.SaveOption('iblock', 'section_property', 'mode', mode); last_mode = mode; } function compareRowsByMargin(a, b) { var sortA = parseInt(a.getAttribute('left_margin')); var sortB = parseInt(b.getAttribute('left_margin')); if (sortA > sortB) return 1; else if (sortA < sortB) return -1; else return compareRowsBySort(a, b); } function compareRowsBySort(a, b) { var sortA = parseInt(a.getAttribute('prop_sort')); var sortB = parseInt(b.getAttribute('prop_sort')); if (sortA > sortB) return 1; else if (sortA < sortB) return -1; else return compareRowsByPropId(a, b); } function compareRowsByPropId(a, b) { var sortA = parseInt(a.getAttribute('prop_id')); var sortB = parseInt(b.getAttribute('prop_id')); if (sortA > sortB) return 1; else if (sortA < sortB) return -1; else return 0; } function sortPropsTable(table, compareFunction) { for (var j = 1; j <= table.rows.length - 1; j++) { for (var i = 1; i <= table.rows.length - j; i++) { if (compareFunction(table.rows[i-1], table.rows[i]) > 0) { table.tBodies[0].insertBefore(table.rows[i], table.rows[i-1]); } } } } <? $userSettings = CUserOptions::getOption('iblock', 'section_property'); if (isset($userSettings["mode"]) && $userSettings["mode"] === "tree"): ?> BX.ready(function(){ setMode(BX('table_SECTION_PROPERTY'), 'tree'); }); <?endif;?> </script> </td></tr> <? $arCatalog = false; if (Loader::includeModule("catalog")) $arCatalog = CCatalogSku::GetInfoByProductIBlock($IBLOCK_ID); if (is_array($arCatalog)) { ?> <tr class="heading"> <td align="center" colspan="3"><?echo GetMessage("IBSEC_E_PROP_SKU_SECTION");?></td> </tr> <tr><td align="center" colspan="2"> <table class="internal" id="table_SKU_SECTION_PROPERTY"> <tr class="heading"> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_NAME");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_CODE");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_TYPE");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_SMART_FILTER");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_DISPLAY_TYPE");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_DISPLAY_EXPANDED");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_FILTER_HINT");?></td> <td><?echo GetMessage("IBSEC_E_PROP_TABLE_ACTION");?></td></tr> <? if(CIBlockRights::UserHasRightTo($arCatalog["IBLOCK_ID"], $arCatalog["IBLOCK_ID"], "iblock_edit")) $arShadow = $arHidden = array( -1 => GetMessage("IBSEC_E_PROP_SELECT_CHOOSE"), 0 => GetMessage("IBSEC_E_PROP_SELECT_CREATE"), ); else $arShadow = $arHidden = array( -1 => GetMessage("IBSEC_E_PROP_SELECT_CHOOSE"), ); $arPropLinks = CIBlockSectionPropertyLink::GetArray($arCatalog["IBLOCK_ID"], $ID); $rsProps = CIBlockProperty::GetList(array( "SORT"=>"ASC", 'ID' => 'ASC', ), array( "IBLOCK_ID" => $arCatalog["IBLOCK_ID"], "CHECK_PERMISSIONS" => "N", "ACTIVE"=>"Y", )); $rows = 0; while ($arProp = $rsProps->Fetch()): if($arProp["ID"] == $arCatalog["SKU_PROPERTY_ID"]) continue; $arProp['CODE'] = (string)$arProp['CODE']; $propName = ($arProp['CODE'] != '' ? '['.$arProp['CODE'].'] ' : '').$arProp['NAME']; if(array_key_exists($arProp["ID"], $arPropLinks)) { $rows++; $arLink = $arPropLinks[$arProp["ID"]]; if($arLink["INHERITED"] == "N") $arShadow[$arProp["ID"]] = $propName; } else { $arLink = false; $arHidden[$arProp["ID"]] = $propName; $arShadow[$arProp["ID"]] = $propName; } unset($propName); ?> <tr id="tr_SECTION_PROPERTY_<?echo $arProp["ID"]?>" <?if(!is_array($arLink)) echo 'style="display:none"';?>> <td align="left"> <?if(!is_array($arLink) || $arLink["INHERITED"] == "N"):?> <input type="hidden" name="SECTION_PROPERTY[<?echo $arProp["ID"]?>][SHOW]" id="hidden_SECTION_PROPERTY_<?echo $arProp["ID"]?>" value="<?echo is_array($arLink)? "Y": "N";?>"> <?endif?> <?echo htmlspecialcharsex($arProp["NAME"])?> </td> <td align="left"><?echo htmlspecialcharsex($arProp["CODE"])?></td> <td align="left"><? if($arProp['PROPERTY_TYPE'] == "S" && !$arProp['USER_TYPE']) echo GetMessage("IBLOCK_PROP_S"); elseif($arProp['PROPERTY_TYPE'] == "N" && !$arProp['USER_TYPE']) echo GetMessage("IBLOCK_PROP_N"); elseif($arProp['PROPERTY_TYPE'] == "L" && !$arProp['USER_TYPE']) echo GetMessage("IBLOCK_PROP_L"); elseif($arProp['PROPERTY_TYPE'] == "F" && !$arProp['USER_TYPE']) echo GetMessage("IBLOCK_PROP_F"); elseif($arProp['PROPERTY_TYPE'] == "G" && !$arProp['USER_TYPE']) echo GetMessage("IBLOCK_PROP_G"); elseif($arProp['PROPERTY_TYPE'] == "E" && !$arProp['USER_TYPE']) echo GetMessage("IBLOCK_PROP_E"); elseif($arProp['USER_TYPE'] && is_array($ar = CIBlockProperty::GetUserType($arProp['USER_TYPE']))) echo htmlspecialcharsex($ar["DESCRIPTION"]); else echo GetMessage("IBSEC_E_PROP_TYPE_S"); ?></td> <td align="center"><? echo '<input type="checkbox" value="Y" '.((is_array($arLink) && $arLink["INHERITED"] === "Y")? 'disabled="disabled"': '').' name="SECTION_PROPERTY['.$arProp['ID'].'][SMART_FILTER]" '.(is_array($arLink) && $arLink["SMART_FILTER"] === "Y"? 'checked="checked"': '').'>'; ?></td> <td> <? $displayTypes = CIBlockSectionPropertyLink::getDisplayTypes($arProp["PROPERTY_TYPE"], $arProp["USER_TYPE"]); if ($displayTypes) { $displayType = null; $field1 = ''; if (is_array($arLink)) { $displayType = $arLink["DISPLAY_TYPE"]; $field1 = $arLink["INHERITED"] === "Y" ? 'disabled="disabled"' : ''; } echo SelectBoxFromArray( 'SECTION_PROPERTY['.$arProp['ID'].'][DISPLAY_TYPE]', [ "REFERENCE_ID" => array_keys($displayTypes), "REFERENCE" => array_values($displayTypes), ], $displayType, '', $field1 ); } else { echo ' '; } ?> </td> <td align="center"><? echo '<input type="checkbox" value="Y" '.((is_array($arLink) && $arLink["INHERITED"] === "Y")? 'disabled="disabled"': '').' name="SECTION_PROPERTY['.$arProp['ID'].'][DISPLAY_EXPANDED]" '.(is_array($arLink) && $arLink["DISPLAY_EXPANDED"] === "Y"? 'checked="checked"': '').'>'; ?></td> <td><? if (!is_array($arLink) || $arLink["INHERITED"] == "N") { $filterHint = (is_array($arLink) ? (string)$arLink['FILTER_HINT'] : ''); echo $editor->getControlHtml('SECTION_PROPERTY['.$arProp['ID'].'][FILTER_HINT]', $filterHint, 255); } elseif ($arLink['FILTER_HINT'] <> '') { echo CTextParser::closeTags($arLink['FILTER_HINT']); } else { echo ' '; } ?></td> <td align="left"><? if(!is_array($arLink) || $arLink["INHERITED"] == "N") echo '<a class="bx-action-href" href="javascript:deleteSectionProperty('.$arProp['ID'].', \'select_SKU_SECTION_PROPERTY\', \'shadow_SKU_SECTION_PROPERTY\', \'table_SKU_SECTION_PROPERTY\')">'.GetMessage("IBSEC_E_PROP_TABLE_ACTION_HIDE").'</a>'; else echo ' '; ?></td> </tr> <?endwhile?> <tr <?echo ($rows == 0)? '': 'style="display:none"';?>> <td align="center" colspan="8"> <?echo GetMessage("IBSEC_E_PROP_TABLE_EMPTY")?> </td> </tr> </table> <select id="shadow_SKU_SECTION_PROPERTY" style="display:none"> <?foreach($arShadow as $key => $value):?> <option value="<?echo htmlspecialcharsex($key)?>"><?echo htmlspecialcharsbx($value)?></option> <?endforeach?> </select> <select id="select_SKU_SECTION_PROPERTY"> <?foreach($arHidden as $key => $value):?> <option value="<?echo htmlspecialcharsex($key)?>"><?echo htmlspecialcharsbx($value)?></option> <?endforeach?> </select> <input type="button" value="<?echo GetMessage("IBSEC_E_PROP_TABLE_ACTION_ADD")?>" onclick="javascript:addSectionProperty(<?echo $arCatalog["IBLOCK_ID"];?>, 'select_SKU_SECTION_PROPERTY', 'shadow_SKU_SECTION_PROPERTY', 'table_SKU_SECTION_PROPERTY')"> </td></tr> <? } ?> <? $tabControl->EndCustomField("SECTION_PROPERTY", ''); } if($return_url <> '') $bu = $return_url; else $bu = $selfFolderUrl.CIBlock::GetAdminSectionListLink($IBLOCK_ID, array('find_section_section'=>intval($find_section_section))); if ($adminSidePanelHelper->isSidePanelFrame()): $tabControl->Buttons(array("disabled" => false)); elseif (!defined('BX_PUBLIC_MODE') || BX_PUBLIC_MODE != 1): $tabControl->Buttons(array( "disabled" => false, "btnSaveAndAdd" => !$bAutocomplete, "btnApply" => !$bAutocomplete, "btnCancel" => !$bAutocomplete, "back_url" => $bu, )); elseif($nobuttons !== "Y"): $save_and_add = "{ title: '".CUtil::JSEscape(GetMessage("IBSEC_E_SAVE_AND_ADD"))."', name: 'save_and_add', id: 'save_and_add', className: 'adm-btn-add', action: function () { var FORM = this.parentWindow.GetForm(); FORM.appendChild(BX.create('INPUT', { props: { type: 'hidden', name: 'save_and_add', value: 'Y' } })); this.parentWindow.hideNotify(); this.disableUntilError(); this.parentWindow.Submit(); } }"; $cancel = "{ title: '".CUtil::JSEscape(GetMessage("admin_lib_edit_cancel"))."', name: 'cancel', id: 'cancel', action: function () { BX.WindowManager.Get().Close(); if(window.reloadAfterClose) top.BX.reload(true); } }"; $tabControl->ButtonsPublic(array( '.btnSave', $cancel, $save_and_add, )); endif; $tabControl->Show(); $tabControl->ShowWarnings($tabControl->GetName(), $message); if(CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, "iblock_edit") && (!defined('BX_PUBLIC_MODE') || BX_PUBLIC_MODE != 1) && !$adminSidePanelHelper->isSidePanel()) { echo BeginNote(), GetMessage("IBSEC_E_IBLOCK_MANAGE_HINT"), ' <a href="iblock_edit.php?type='.htmlspecialcharsbx($type).'&lang='.LANGUAGE_ID.'&ID='.$IBLOCK_ID.'&admin=Y&return_url='.urlencode(CIBlock::GetAdminSectionEditLink($IBLOCK_ID, $ID, array("find_section_section" => intval($find_section_section), "IBLOCK_SECTION_ID" => intval($find_section_section), "return_url" => $return_url <> ''? $return_url: null))).'">', GetMessage("IBSEC_E_IBLOCK_MANAGE_HINT_HREF"), '</a>', EndNote() ; } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");