
Задача
Сделать галерею на Drupal 6. Требования к галереи:
- Массовая загрузка изображений;
- Современный простой и понятный интерфейс;
- Возможности изменения и расширения.
Решение
В репозитории друпал существует масса модулей, предназначенных для построения галерей. На практике большинство из них не удовлетворяет поставленной задаче.
Перебрав массу модулей я остановился на не самом популярном модуле Galleria. Модуль использует библиотеку jQuery Gallery.
Далее я расскажу, каким образом на основе этого модуля создать универсальный движок для сайта-галереи.
Необходимые модули:
- Galleria;
- CCK;
- FileField;
- ImageField;
- Image Fupload;
- Image FUpload (CCK) (входит в комплект Image Fupload);
- ImageAPI;
- ImageAPI GD2 (входит в комплект ImageAPI);
- ImageCache;
- ImageCache UI (входит в комплект ImageCache).
Скачиваем и включаем.
Для работы модуля ImageAPI нужно включить модуль обработки изображений. Я использую ImageAPI GD2. Модуль Image Fupload требует наличия библиотеки swfupload.
Для настройки отображений нам необходимо создать несколько представлений наших будущих картинок. Представления создаются с помощью модуля ImageCache на странице: sitenane/admin/build/imagecache.
Я создал представление full, с эффектом Scale с размером 900х900, и представления preview и small с тем же эффектом и размером 300х300 и 150х150 соответственно.
Приступаем к настройке полей материала. Я хочу добавить галерею к типу материала «page». Для этого я создаю поля типа File и элементом редактирования Image FUpload на странице: sitenane/admin/content/node-type/page/fields.

Выполняем настройки поля photo:
- Метод сохранения: несколько фотографий на ноду.
- Представление превью: preview.
- Количество переменных: не ограничено.
В настройках отображения sitenane/admin/content/node-type/page/display для поля photo я выбираю следующие настройки:

Далее необходимо выполнить настройки галереи на странице sitenane/admin/settings/galleria.
Тут необходимо выбрать представления для большой картинки (ImageCache gallery preset) и представление для маленькой картинки-ссылки (ImageCache thumbnail preset). Я выбрал соответственно full и small.
Остальные настройки оставляем по-умолчанию.
На этом настройка галереи закончена.
Нам остается создать галерею sitenane/node/add/page.
Созданная нами галерея выглядит подобным образом:

Оказалось, что модуль Galleria использует устаревшую jQuery библиотеку. Установка jQuery Update и небольшой хак модуля Galleria решает эту проблему. В новой версии корректно работает плагин истории, галерея приобретает более подтянутый вид.

Работающий пример.