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)