Работа с модулем Panels в Drupal

Создание сайтов давно перестало быть простым делом. Подумать только, для написания мало-мальски нормального сайта нужно знание HTML, CSS, PHP, SQL, java script, и это только самые популярные в своих нишах языки. Радует то, что веб-разработчики в целом, и разработчики Drupal в частности, не сидят на месте, и пытаются всячески упростить жизнь обыкновенных смертных. Сегодня мы поговорим о модуле Panels. Если модуль Views в основном служил для не напряжного составления SQL-запросов, и помогал наиболее комфортно представить их в нужном виде, то модуль Panels помогает расположить на странице (или в блоке) отдельные куски информации, без знаний CSS или HTML (Кстати, если не ошибаюсь у этих модулей один разработчик).

Для начала скачаем сам модуль. Не так давно вышел первый стабильный релиз, поэтому спешим скачать) Для своей работы Panels требуют ctools.

Итак, на операционном столе: Drupal 6.14, Ctools 6.1, Panels 6.3. Нужно установить модули: Chaos tools, Page manager, Mini panels, Panel nodes, Panels. Переходим на страницу «Your_sites/admin/build/panels», и наблюдаем такую картину:

Drupal-6-panels-3.jpg

Panel page — Добавить панель-страницу, то есть панель занимает целую страницу, при этом имеет свой путь и ссылку в меню. Так же в них можно передавать аргументы.

Panel node — Примерно то же самое что и Panel page, только слегка ограниченные. Панель встраивается в ноду.

Mini panel — Панель в виде блока.

Как я уже говорил, панели помогают располагать различную информацию на странице. Вставить туда можно многое, думаю лучше это будет показать на примере.

Давайте создадим Panel page и поиграемся с настройками.

Заходим на страницу «Home › Administer › Site building › Panels» и кликаем «Panel page».

Drupal-6-panels-3-1.jpg

И видим страницу с основными настройками:

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» (если вы конечно отметили этот чекбокс на первой странице).

Drupal-6-panels-3-.jpg

Можно определять доступность страницы 3 методами:

PHP Code — вбиваем свою проверку на PHP, если она вернет true, пользователь увидит страницу.

User: permission — если у пользователя есть разрешение на что-то (например на создание нод типа story), то ему будет доступна и эта страница.

User: role — можно выбрать роли которым будет доступна эта страница.

All criteria must pass - Пользователь получит доступ к странице, если удовлетворены все условия.

Only one criteria must pass - Пользователь получит доступ к странице, если удовлетворено хотя бы 1 условие.

Переходим далее.

Drupal-6-panels-3-3.jpg

На этой странице можно задать элемент меню для страницы, я выбрал Normal menu entry, Title: page, Menu: Navigation, то есть в меню Navigation, появится ссылка «Page», на страницу с панелью.

Далее идут настройки вариантов панели, то есть, все вышеперечисленное относилось к панели в целом, все что идет далее, будет заполняться для каждого варианта.

Страница «Selection rules» в точности такая же как и «Access control», только критерии показа задаются ни ко всей странице, а к вариантам.

Drupal-6-panels-3-4.jpg

на странице Contexts можно добавить разные объекты сайта для отображения. Я добавил « Node add form»

Drupal-6-panels-3-5.jpg

и Node (перед этим создав страницу, и запомнив ее id)

Drupal-6-panels-3-6.jpg

Страница «Choose layout», здесь нужно выбрать на сколько регионов будем разбивать страницу:

Drupal-6-panels-3-7.jpg

Крайне важное свойство, от которого зависит расположение элементов, я выбрал 2 колоночный вариант, и попал на последнюю страницу:

Drupal-6-panels-3-8.jpg

На которой и происходит наполнение панели информацией, жмем на шестеренку, должно отобразиться 2 пункта:

Add content — добавление содержимого,

Region style: Default — выбор стиля панели.

жмем Add content, и выбираем что же вставить в панель:

Drupal-6-panels-3-9.jpg

Все описывать не буду, т.к. Это долго и непродуктивно, да и в зависимости от ситуации, эта страничка может измениться. Например, в нашем случае, добавились 2 вкладки: Form, после добавления Contexts « Node add form», и Node, после добавления Contexts «Node». Да и лучше будет если вы сами попробуете разные варианты.

Посмотрите 2 последних пункта:

New custom content - позволяет добавить произвольное содержимое, то есть любой нужный вам текст.

Existing node — позволяет вставить существующую ноду.

Я добавил в первую вкладку тело существующей ноды, и блок «Who's online», а во вторую ноду целиком, и форму добавления ноды.

Drupal-6-panels-3-10.jpg

а так выглядит готовая страница (не забудьте сохранить результат):

Drupal-6-panels-3-11.jpg

Если вы справились с Panel page, остальное не должно вызвать у вас проблем.

Естественно, учитывая одного создателя, модули Views и Panels, отлично работают друг с другом (если честно, в основном я использовал Panels для того что бы быстро раскидать блоки Views), но об этом, и многом другом, мы поговорим в следующий раз.

Спасибо за внимание.

2718