Создание, сопровождение и продвижение сайтов на CMS Drupal

View - хитрости вывода изображений.

Задача довольно таки стандартная – необходимо вывести список первых изображений CCK поля типа ImageField. При этом при нажатии на данное изображение с помощью ShadowBox отображается поочередно все изображения в данном поле, и только они. Т.е. изображения отображаются по «галереям».
Для решения данной задачи используется View и естественно ShadowBox. Предпологаю, что с основными настройками View и ImageCache читатель без проблем справится сам, остановлюсь только на особенностях. Данная задача была решена в рамках разработки портфолио сайта веб студии.

Итак действия по пунктам:

1. Создаем новый View, в котором выводим одно и тоже поле два раза. Одно поле будет отображаться в списке, второе поле скроем с помощью CSS. Второе поле необходимо, чтобы на странице присутствовали все изображения поля для отображения их в виде галереи в ShadowBox.

Настройка View

2. Настраиваем первое поле – в этом поле будет первое изображение для предварительного просмотра. Формат отображения предварительно настраивается в ImageCache.

Настройка первого поля View

Поле во View настраиваем следующим образом: отображаем только первое поле, без заголовка и формат отображения - ShadowBox Gallery NodeID: small_200 to original [SB G nid: small_200 to original] Важно! Тип отображения именно SB G nid, чтобы все изображения одной ноды отображались как галерея в ShadowBox.

3. Настраиваем второе - это поле в последствии мы скроем и не будем отображать, оно необходимо, чтобы на странице присутствовали все изображения галереи с данным nid, для ShadowBox Gallery.

Настройка второго поля View

Поле во View настраиваем следующим образом: отображаем все поля, начиная со второго (счет полей начинается с 0, поэтому установлена 1), без заголовка и формат отображения - ShadowBox Gallery NodeID: small_200 to original (SB G nid: small_200 to original) Важно! Тип отображения именно SB G nid. Таким образом nid у обоих полей будет одинаковым и они будут отображаться в одной галереи ShadowBox.

4. Скрываем изображения второго поля с помощью CSS.

.view-id-ci .field-pictires-fid-1{
    display:none;
}

Основным недостатком данной реализации является, то что на страницу закачиваются привью изображений (small_200), что увеличивает размер страницы. Решается эта проблема созданием отдельного пресета (назовем его zero) в ImageCache для изображения размером 1х1. Тогда формат отображения второго поля выбираем в качестве этого присета - SB G nid: zero to original, главное чтобы был выбран - SB G nid.

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

Если у кого есть другие варианты – велком в комментарии. :)

Ну и в конце немного о фото в начале статьи… Место: Япония, Цукуба, университетский городок. Время: конец ноября 2010 года. Все фотки прогулки можно посмотреть в блоге о Японии.