Вы здесь

Drupal - Урок одиннадцатый - Модуль Panels.

Создание сайтов давно перестало быть простым делом. Подумать только, для написания мало-мальски нормального сайта нужно знание 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.jpgPanel 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), но об этом, и многом другом, мы поговорим в следующий раз. Спасибо за внимание.

Комментарии

Все никак не дойду до Panels. По всему видно — вещь нужная, особенно для корпоративных сайтов. Но сложно как-то все, не подступишься.

Как сказал кто-то из мудных "Начало — половина дела", Начнете разбираться, многие проблемы решаться сами, да и если разобрались со Views, например, проблем вообще не возникнет)

Спасибо, пост однозначно полезный!

P.S. воткни адсенс что ли Поблагодарим! :)

Эх и попотел я, когда перешел с 5 Друпала и панелей для 5.
Это как переход с Майкрософт Оффиса 2003 на 2007, не знаешь, что и где искать.
Слава Богу, уже разобрался во всем, теперь другая проблема - пару проектов остались на 5-ке. (:

Самый полезный плагин для создания "блочных" отображений, если я правильно
помню, то CCK fields умеет почти тоже самое, только отображение полей нужно задавать самому(в php-ввиде).

из readme panels

TinyMCE, FCKEditor and other wysiwyg editors really blow up on Panels
content editing.
Cause:
The modal dialogs that Panels uses are very particular about javascript
and these editors are too much for them. Also, these editors get
cranky about complicated forms with several text areas.
Solution:
Disable these editors on all of your panels admin pages. The important
URLs are admin/panels/* and panels/ajax/*. More details instructions
may follow if someone familiar with these systems submits a patch at
the above drupal.org URL.

То есть, wysiwyg не поддерживаются