Bitrix эрмитаж, отредактировать нередактируемое.
Что делать, Постоянно бегать к программистам не вариант, можно конечно попробовать найти нужные области в папке /local/include/, благо по стандарту все лежит в одном месте, но это не удобно + пункты меню так не добавишь (для этого правда есть и другие инструменты).
Выход нашелся довольно простой и быстрый в реализации.
Весь лайфхак можно разбить на 2 этапа.
1) в init.php «ловим» событие построения админ панели в публичной части сайта и добавляем кнопку при помощи которой будем активировать режим редактирования шапки.
AddEventHandler("main", "OnPanelCreate", Array("HeaderEdit", "OnPanelCreateHandler")); class HeaderEdit{ // добавим кнопку в панель управления function OnPanelCreateHandler(){ global $APPLICATION; if($_REQUEST['header_edit']!='y'||$_REQUEST['bitrix_include_areas']=='N'){ $APPLICATION->AddPanelButton(array( "HREF" => "?bitrix_include_areas=Y&header_edit=y", // ссылка на кнопке "SRC" => "/local/include/tpl/img/header_edit.png", // картинка на кнопке "ALT" => "Включить режим редактирования шапки", "MAIN_SORT" => 9000, "SORT" => 100, "TYPE" => "BIG", "ICON" => "faq", "TEXT" => "Включить режим редактирования шапки" )); }elseif($_REQUEST['bitrix_include_areas']!='N'){ $APPLICATION->AddPanelButton(array( "HREF" => $APPLICATION->GetCurPage(false), // ссылка на кнопке "SRC" => "/local/include/tpl/img/header_edit_a.png", // картинка на кнопке "ALT" => "Выключить режим редактирования шапки", "MAIN_SORT" => 9000, "SORT" => 100, "TYPE" => "BIG", "ICON" => "faq", "TEXT" => "Выключить режим редактирования шапки" )); } } }
Двумя APIшными функциями мы строим кнопку либо активации режима, либо деактивации, если мы уже находимся в режиме редактирования шапки.
См. скриншот № 1.
2) В шаблон сайта нужно заложить блок который будет содержать все необходимые для редактирования области, он будет отображаться только в режиме правки шапки. По факту это просто Bootstrap сетка в которой свободно размещены включаемые области и компоненты, весь блок обрамлен условием, в котором считываются определенные $_GET запросы.
См. скриншот № 2.
Благодаря этому нехитрому коду, любой администратор сайта сможет отредактировать нужные ему данные. Есть конечно и минусы, к примеру компоненты так все же не перенастроишь. Но вывод можно допилить, к примеру разверстывать шапку таким образом, чтобы все удобно редактировалось и без дополнительного блока, но в мои задачи сейчас это не входило.
Оставить комментарий
Комментарии (2)