MODX. Панели и виджеты
Отредактировано: 23 Декабря 2018
Первая страница которую видит администратор после захода в административную часть сайта содержит в себе панель с виджетами (по адресу www.site.dom/manager/).
- Панель — сущность, содержащая в себе набор виджетов.
- Виджет — блок, реализующий какое-либо действие (отображает информацию, позволяет запустить код и т.п.).
Панель можно редактировать и настраивать для себя, а можно заводить несколько панелей и настраивать для разных групп пользователей свою.
Панелями (Dashboards) можно управлять пройдя по пути «Системные настройки» ⇒ «Панели» ⇒ вкладка «Панели». По умолчанию там уже имеется панель, можно редактировать ее, а можно создать новую.
Создать или отредактировать виджет (Widgets) можно по соседству, по адресу «Системные настройки» ⇒ «Панели» ⇒ вкладка «Виджеты».
Пример создания виджета просмотра неопубликованных статей.
Способ создания раздела управления виджетами для контент-менеджеров, от Ильи Уткина.
Разбор панели создания виджета
Виджеты могут быть нескольких типов, на момент написания статьи: HTML, Файл, Сниппет, Встроенный PHP-виджет.
- HTML — кусок HTML кода, для отображения на панели, также поддерживает кэшированные плейсхолдеры и вызовы элементов.
Hello, [[+modx.user.username]]!
- Файл — путь к файлу, который будет подключаться при открытии панели.
Указывая путь к файлу можно использовать плейсхолдеры:
- [[++base_path]]
- [[++core_path]]
- [[++manager_path]]
- [[++assets_path]]
- [[++manager_theme]]
При использовании файла можно возвращать обработанный результат, или имя класса:
// возвращаем результат <?php return 'Hello, world!'; // определяем и возвращаем имя класса class modDashboardWidgetHelloWorld extends modDashboardWidgetInterface { public $version = '1.0'; public function render() { $o = 'Hello, World! Version: '.$this->version; return $o; } } return 'modDashboardWidgetHelloWorld';
Доступные переменные:
- $modx — ссылка на экземпляр MODX.
- $scriptProperties — массив свойств текущего виджета.
- Сниппет — сниппет который будет обрабатываться при открытии панели. В содержимом указывается имя сниппета:
CustomDashboardSnippetName
-
Встроенный PHP-виджет — Inline PHP, строковая запись PHP кода.
Пример:
<?php return 'Hello, World!';
Особенности:
- Не используйте "echo", так как он будет игнорироваться;
- Не используйте $modx->resource в вашем виджете, так как нет активного ресурса для панели инструментов
- Не помещайте закрывающий тег PHP в конец кода.
Стоит помнить, что панель менеджера не привязана к какому либо ресурсу, поэтому вывод соответствующих тегов, либо использование конструкции $modx->resource в каком либо из типов виджетов, не приведут к рабочему результату.
Здравствуйте!
Позвольте представиться, меня зовут Марина. Более 10 лет я занимаюсь обслуживанием сайтов и развитием интернет проектов. Если вы хотите избавиться от хлопот связанных с созданием и поддержкой сайта, тогда вы попали по адресу. При работе с сайтами я предоставляю качественные услуги, ориентируясь на ваши индивидуальные потребности. Для связи со мной воспользуйтесь формой обратной связи.