Адаптивное меню администратора для мобильных устройств: Administration Menu + Navbar

Drupal: 
Уровень сложности: 
Модули: 

Инструкция на странице https://www.darrylnorris.com/blog/improving-drupal-administration-menu-b... рассказывает о том, как сделать меню администратора удобным при просмотре с устройств.

Проблема: если вы используете обычный Toolbar + Shortcuts, и ваш сайт адаптивный, то для зарегистрированных пользователей меню администратора будет занимать большую часть экрана, делая неудобным просмотр сайта и тем более работу с материалами.
Если вы используете Administration menu, тогда меню занимает четверть экрана и всегда на виду, что тоже добавляет трудности.

Решение: нужно использовать Navbar для мобильных устройств и Administration menu для компьютеров.

Как сделать меню администратора адаптивным

Для этого будем использовать Administriation menu на компьютерах и меню для мобильных - Navbar.

Установите 3 основных модуля и 1 вспомогательный.

Модуль Administration menu изначально показывает меню Management, но с помощью модуля Administration Menu Source можно выбирать источник ссылок меню для разных ролей.

Модуль Navbar создаёт меню администратора всего из 2-3 кнопок: Назад на сайт, Меню, Ярлыки (если включен модуль Shortcut), Имя юзера. Это меню большое, не фиксировано на экране, умеет раскрываться при клике, если правильно установить все 3 библиотеки, указанные в инструкции установки модуля. Но это меню показывается всегда, не реагируя на устройство.

Модуль Mobile Detect - позволяет определять устройство до загрузки страницы Drupal, предлагая API Для разработчика. Модуль не так просто установить, библиотека должна быть правильно размещена в папке sites/all/libraries/Mobile_Detect. Подробнее о модуле на нашем сайте - в графе модули.

Модуль Admin Menu Navbar - делает выбор между двумя меню, получая информацию об устройстве через API модуля Mobile Detect.

Для смены меню при просмотре с мобильных устройств, предлагается использовать готовый модуль Admin Menu Navbar. В модуле не присутствует проверка наличия модуля Mobile Detect и наличия библиотеки Mobile Detect, поэтому если вы не активировали и не настроили их, то включение модуля может привести к белому экрану на сайте. Как смотреть ошибки php при белом экране описано тут: http://conspirolog.ru/drupal/drupal-i-belyy-ekran-white-screen-wsod
Также, если не активирован модуль Navbar, то для мобильных устройств меню администратора просто не показывается.

Доработка модуля Admin Menu Navbar до безопасного, исключение аварийного состояния сайта

Модуль написан разработчиком и размещён на drupal.org Однако, это не побудило разработчика избавить модуль от аварийных состояний. Модуль очень простой, состоит из двух функций и двух css-файлов, которые просто отключают показ меню display:none; для компьютеров или мобильных. Но если на сайте нет библиотеки Mobile Detect, то при включении модуля показывается белый экран. Также, если поломан модуль Navbar (удалён), то для мобильных просто не показывается меню администратора: ни Navbar, ни Administration menu.

Допишем код модуля Admin Menu Navbar, чтобы обезопасить сайт от работы этого модуля.

Для проверки работы модулей в скрипте предлагается добавить в файл admin_menu_navbar/admin_menu_navbar.module
в функцию: function admin_menu_navbar_page_build(&$page) () в самое начало:

  1. /*check if modules do not exist*/
  2. if (!module_exists('admin_menu') || !module_exists('navbar') || !module_exists('mobile_detect')) return;

Для проверки наличия библиотеки Mobile Detect предлагается в код модуля далее в в файл admin_menu_navbar/admin_menu_navbar.module добавить:

  1. /*check if Mobile Detect library not work and class not exists return*/
  2. if (!class_exists('Mobile_Detect')) return;

Таки образом, мы добавили молчаливую проверку. Если что-либо не установлено и не работает, модуль перестанет работать, тогда вы будете видеть либо только 1 меню, либо оба вместе, если оба модуля меню активированы.

Рубрика: