Вы здесь

Галерея на Drupal 7: Views + Panels + Colorbox

Чтобы эту галерею соорудить, нам понадобится модули: Views, Panels, Ctools (требуется для панелей), Colorbox. Структура у галереи будет почти такая же, как в Media Gallery: мы сделаем страницу с превьюшками "коллекций", на странице "коллекции" выведем обложки галерей, ну и собственно сами галереи у нас будут состоять из превьюшек, которые открываются в колорбоксе.

Так вот незатейливо. Приступим?

Для начала, создаем словарик, термины в котором будут у нас служить коллекциями галерей (как gallery collections в media gallery). Кроме названия у термина будет поле с картинкой, которая будет служить обложкой "коллекции".

Добавляем несколько терминов в словарик (вместе с картинками-обложками) и после этого идем создавать тип материала для галереи. Не забываем про Term Reference - это поле нужно, чтобы "прицепить" галерею к нужной категории.

Переходим во вкладку Manage Disply и там настраиваем вывод поля "Gallery Images" (field_gallery_img):

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

Теперь можно приступить к самому главному: надо создать две вьюсы. Одну для вывода обложек галерей в коллекциях, вторую - для вывода страницы самих коллекций.

Сначала сделаем блок со списком галерей в коллекции-термине таксономии.

Обратите внимание: при добавлении поля Content: Gallery Images не забудьте указать нужный вам пресет. А в блоке "Multiple Field Settings" отметить "Display all values in same row" и Display - 1, чтобы выводилась только одна картинка (обложка галереи).

Чтобы на странице термина (коллекции) выводились только те галереи, которые к этому термину отностся добавляем аргумент "Content: Has taxonomy term id". Должен передаваться аргумент по умолчанию, а именно ID термина из URL открытой страницы.

Теперь нам нужно для словарика с терминами-коллекциями нужно переопределить вывод term view. Можно сделать это несколькими способами, но в этот раз мы будем использовать возможности модуля Panels.

Предположим, что все нужные модули у вас уже включены. Поэтому открываем Structure -> Pages. Включаем "term_view". Создаем новый вариант вывода. При создании ставим галку в чекбокс "Selection rules" - правила выбора дадут нам возможность указать, для какого словаря применять создаваемый вариант вывода.

Нажимаем "Create variant" и на следующем шаге укажем в правилах выбора словарик, в котором у нас содержатся термины-категории для галерей.

Далее выбираем шаблон страницы - в принципе подойдет одна колонка без всяких там излишеств. На следующем шаге указываем Административный заголовок (он будет выводиться в списке вариантов слева), указать общий css id для страницы. Я иногда ставлю, иногда нет. Это совсем просто, поэтому обойдемся без скриншотов.

Осталось добавить в панель содержимое, а именно - вьюсу, которую мы уже создали. Тычем в симпатичную шестеренку в левом верхнем углу панельки, добавляем:

Нажимаем кнопку создать вариант, и после этого не забываем нажать кнопку сохранить. Я регулярно забываю, и удивляюсь - а чего это не работает :)

Переходим к последнему этапу: создаем вьюсу для вывода страницы с превьюшками "коллекций".

Добавляем поле с картинкой-обложкой. В итоге получаем готовую вьюсу.

Сохраняем. И.... Все! В меню появился новый пункт - Галерея. Результат примерно такой:

Страница с превьюшками коллекций:

Превьюхи галерей на странице коллекции-термина.

 

Страница с галереей - фотка открыта в колорбоксе.

Дальше - дело за малым: немного css, фантазии и получится галерея не хуже той же Media Gallery. К тому же в данном случае вы не ограничены возможностями одного модуля галереи. Можно ноду-галерею выодить, например, с помощью модуля Galleria или Views Gallerific. Или даже Field Slideshow. Можно прикручивать вручную jQuery эффекты и вообще изворачиваться как угодно. Именно поэтому при вопросах о том, как лучше сделать галерею на Drupal знающие люди говорят CCK+Views (точнее, так говорят о друпал 6, в drupal 7 функционал cck включен в ядро).

Автора автора и огромные спасибы!