klondike

Корпоративный блог студии "Клондайк"

Клондайк интернет маркетинга - WEB, SEO, SMM


Previous Entry Share Next Entry
Игошев Дмитрий
klondike

Bitrix эрмитаж, отредактировать нередактируемое.

У наших последних проектов частенько имеется сложная адаптивная шапка, которую не так легко отредактировать, а порой эрмитаж и вовсе посылает админа лесом и отказывается подсвечивать включаемые области и компоненты, крайне наглядно это проявляется на chaye.ru, там даже логотип поменять не так просто, как хотелось бы.
Что делать, Постоянно бегать к программистам не вариант, можно конечно попробовать найти нужные области в папке /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.
(скриншот №1)

2) В шаблон сайта нужно заложить блок который будет содержать все необходимые для редактирования области, он будет отображаться только в режиме правки шапки. По факту это просто Bootstrap сетка в которой свободно размещены включаемые области и компоненты, весь блок обрамлен условием, в котором считываются определенные $_GET запросы. См. скриншот №2.
(скриншот №2)

Благодаря этому нехитрому коду, любой администратор сайта сможет отредактировать нужные ему данные. Есть конечно и минусы, к примеру компоненты так все же не перенастроишь. Но вывод можно допилить, к примеру разверстывать шапку таким образом, чтобы все удобно редактировалось и без дополнительного блока, но в мои задачи сейчас это не входило.

  • 1
Проздравляю c прошедшим ДР. ТЧК. Каких бы благ Вам понажелать?.. Если не сочтете, что поздно. .

  • 1
?

Log in

No account? Create an account