Как стать автором
Обновить

Создаем фотоблог на Drupal 6

Время на прочтение3 мин
Количество просмотров3.2K
Почему же все таки Drupal? — Первоначально я остановил выбор на Wordpress, поскольку многопользовательская CMS меня не интересует, то решил попробовать именно Wordpress. Было это в 2008 году. Но на тот момент (возможно сейчас что-то изменилось) мне не удалось найти ни одного модуля или нескольких модулей, который бы удовлетворял следующим нехитрым требованиям (в порядке важности):
  1. группировка фотографий по альбомам, с возможностью добавления описания к альбому
  2. загрузка нескольких фотографий в альбом минимальным числом кликов
  3. группировка альбомов по категориям
  4. показ альбомов в виде топиков с описанием и превью из нескольких фотографий на главной странице
  5. прямая ссылка на любой альбом
  6. комментарии посетителей для альбома и отдельной фотографии (с премодерацией)
  7. управление размером отдаваемого формата

А вот с Drupal все это удалось реализовать, об этом и топик.



Вначале остановился на модуле Brilliant Gallery, который до сих пор используется для старых альбомов. Модуль позволяет показывать все фотографии, находящиеся в определенной папке на сервере, в теле заметки. Модуль позволяет сортировать картинку по алфавиту или в случайном порядке. Есть возможность кэширования изображений средствами Drupal. Кроме этого можно управлять размерами иконок и полноформатных изображений, выбор Ajax плагина для просмотра.
Сама заметка состоит из небольшой строки с данными для модуля:
[bg|girls/bonya|||||black||no]

Как видно, опции формируются для каждого альбома отдельно и при смене темы поменять цвет фона будет не так то просто, необходимо редактировать каждый альбом по отдельности.
Другие недостатки модуля:
  • нет веб интерфейса для создания соответствующей папки, загрузки в нее фотографий
  • невозможно комментировать отдельную фотографию
  • невозможность сортировки фото по популярности

Как видно, все поставленные задачи модуль не решает.

Продолжил поиски, и установил Image, который позволяет загружать отдельные фотографии в соответствующие категории (одна картинка может принадлежать нескольким категориям). Но вот группировать фотографии в альбомы не умеет. Полезной фичей стало появление блока «случайная картинка». Замечу, что для анонимусов картинка все время одинакова, если включить кэширование блоков. Если включить только кэширование страниц, то картинка будет одинаковой для при обновлении одной и той же страницы, но разной для разных страниц.
Этот модуль так же не решил поставленные задачи.

И наконец, добрался до самого мощного модуля album photos, который умеет все необходимое и другие полезные вещи.
Появилась возможность голосования за каждую отдельную фотографию (нравится/ не нравится), но для этого понадобился Voting API, с помощью которого можно так же устраивать опросы посетителей.
Возможности модуля:
  • Настройки опций показа картинок отдельно для главной и отдельно для самого альбома
  • Добавление альбома в меню сайта непосредственно при создании
  • Описание альбома может быть в html формате
  • Управление изображениями непосредственно из меню альбома
  • Включение/выключение комментариев для отдельного альбома
  • Возможность помещать/не помещать альбом на главную


Поставленная задача решена и можно перейти к улучшениям сайта под себя.

Для отображения полноразмерный картинок с главной и страниц альбомов поставил Lightbox2 (В настройках album photos можно выбрать и другие ajax просмотрщики)

Для комментариев установил Ajax и Ajax Comments

Для упрощения и ускорения навигации пригодился DHTML Menu

Самой сложной задачей стал выбор темы интерфейса. Долгое время пользовался вот этой приятной и качественной темой, немного подредактировав CSS и картинки Deco Но фотографии лучше смотрятся на черном фоне (по моему субъективному мнению), поэтому недавно перешел на Decayed. У темы были проблемы с меню и большой череп в правом верхнем углу. После небольшого редактирования CSS и фона темы проблемы были устранены.

Делал фотографии для одного ресурса про iPhone и получил оттуда более 3 000 посетителей за день. Хостер стал жаловаться на большой расход ресурсов и временами отключал доступ к сайту. Задумался о кэшировании и остановился на boost, поскольку основной (практически весь) трафик на сайт генерируется анонимными пользователями. Модуль очень мощный, но требует доступа к .htaccess — необходимо, что бы хостинг поддерживал это и cron, иначе кэш автоматически очищаться не будет. Если хостинг не поддерживает создание задач для cron, то можно воспользоваться маленькой хитростью — sitename/cron.php можно дергать с любого сервера.

UPD: цель статьи — показать возможное решение поставленной задачи средствами Drupal и обсудить с хабросообществом плюсы/минусы изложенного подхода, узнать о других вариантах решения
UPD2: в комментариях уже есть другие интересные решения
UPD3: Результат можно посомтреть вот здесь bb.org.ua (тема Decayed) и здесь mike.pp.ua (старая версия с темой Deco, хостится на погоревшем hosting.ua, но как видно, они восстановили виртуальный хостинг и все работает)
Теги:
Хабы:
Всего голосов 29: ↑14 и ↓15-1
Комментарии19

Публикации