Работа с модулем Panels в Drupal
Создание сайтов давно перестало быть простым делом. Подумать только, для написания мало-мальски нормального сайта нужно знание HTML, CSS, PHP, SQL, java script, и это только самые популярные в своих нишах языки. Радует то, что веб-разработчики в целом, и разработчики Drupal в частности, не сидят на месте, и пытаются всячески упростить жизнь обыкновенных смертных. Сегодня мы поговорим о модуле Panels. Если модуль Views в основном служил для не напряжного составления SQL-запросов, и помогал наиболее комфортно представить их в нужном виде, то модуль Panels помогает расположить на странице (или в блоке) отдельные куски информации, без знаний CSS или HTML (Кстати, если не ошибаюсь у этих модулей один разработчик).
Для начала скачаем сам
Итак, на операционном столе: Drupal 6.14, Ctools 6.1, Panels 6.3. Нужно установить модули: Chaos tools, Page manager, Mini panels, Panel nodes, Panels. Переходим на страницу «Your_sites/admin/build/panels», и наблюдаем такую картину:
Panel page — Добавить панель-страницу, то есть панель занимает целую страницу, при этом имеет свой путь и ссылку в меню. Так же в них можно передавать аргументы.
Panel node — Примерно то же самое что и Panel page, только слегка ограниченные. Панель встраивается в ноду.
Mini panel — Панель в виде блока.
Как я уже говорил, панели помогают располагать различную информацию на странице. Вставить туда можно многое, думаю лучше это будет показать на примере.
Давайте создадим Panel page и поиграемся с настройками.
Заходим на страницу «Home › Administer › Site building › Panels» и кликаем «Panel page».
И видим страницу с основными настройками:
Administrative title — имя страницы отображаемое для администратора. Я поставил «page».
Machine name — машинное имя, после сохранения, не изменяется. Я поставил «page».
Administrative description — описание панели, если делаете сайт навеселе, стоит заполнить. Не заполнял.
Path — путь по которому будет доступна эта страница. Поставил «page».
Make this your site home page — чекбокс, если выбран, то данная панель заменит главную страницу.
Optional features — дополнительные настройки панели, я отметил все:
Access control — выбираем кто может просматривать страницу.
Visible menu item — добавляем ссылку в меню.
Selection rules — можно задать разные варианты панели, для разных пользователей.
Contexts — если в двух словах, то contexts позволяет использовать в панеле дополнительные объекты. Например, если вы добавите contexts «Node add form», то сможете вставить в панель форму добавления нод, притом как полностью, так и отдельные ее куски.
Нажимаем «Continue», и попадаем на страницу «Access control» (если вы конечно отметили этот чекбокс на первой странице).
Можно определять доступность страницы 3 методами:
PHP Code — вбиваем свою проверку на PHP, если она вернет true, пользователь увидит страницу.
User: permission — если у пользователя есть разрешение на что-то (например на создание нод типа story), то ему будет доступна и эта страница.
User: role — можно выбрать роли которым будет доступна эта страница.
All criteria must pass - Пользователь получит доступ к странице, если удовлетворены все условия.
Only one criteria must pass - Пользователь получит доступ к странице, если удовлетворено хотя бы 1 условие.
Переходим далее.
На этой странице можно задать элемент меню для страницы, я выбрал Normal menu entry, Title: page, Menu: Navigation, то есть в меню Navigation, появится ссылка «Page», на страницу с панелью.
Далее идут настройки вариантов панели, то есть, все вышеперечисленное относилось к панели в целом, все что идет далее, будет заполняться для каждого варианта.
Страница «Selection rules» в точности такая же как и «Access control», только критерии показа задаются ни ко всей странице, а к вариантам.
на странице Contexts можно добавить разные объекты сайта для отображения. Я добавил « Node add form»
и Node (перед этим создав страницу, и запомнив ее id)
Страница «Choose layout», здесь нужно выбрать на сколько регионов будем разбивать страницу:
Крайне важное свойство, от которого зависит расположение элементов, я выбрал 2 колоночный вариант, и попал на последнюю страницу:
На которой и происходит наполнение панели информацией, жмем на шестеренку, должно отобразиться 2 пункта:
Add content — добавление содержимого,
Region style: Default — выбор стиля панели.
жмем Add content, и выбираем что же вставить в панель:
Все описывать не буду, т.к. Это долго и непродуктивно, да и в зависимости от ситуации, эта страничка может измениться. Например, в нашем случае, добавились 2 вкладки: Form, после добавления Contexts « Node add form», и Node, после добавления Contexts «Node». Да и лучше будет если вы сами попробуете разные варианты.
Посмотрите 2 последних пункта:
New custom content - позволяет добавить произвольное содержимое, то есть любой нужный вам текст.
Existing node — позволяет вставить существующую ноду.
Я добавил в первую вкладку тело существующей ноды, и блок «Who's online», а во вторую ноду целиком, и форму добавления ноды.
а так выглядит готовая страница (не забудьте сохранить результат):
Если вы справились с Panel page, остальное не должно вызвать у вас проблем.
Естественно, учитывая одного создателя, модули Views и Panels, отлично работают друг с другом (если честно, в основном я использовал Panels для того что бы быстро раскидать блоки Views), но об этом, и многом другом, мы поговорим в следующий раз.
Спасибо за внимание.