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

Posted: 6th Март 2010 by admin in Без рубрики

Почему же все таки 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, но как видно, они восстановили виртуальный хостинг и все работает)

  1. iamdeuterium:

    И чего вы нам нового донесли???
    Я вчера пазл купил. Мне описать как я его собрал?

  2. mmib:

    Опишите, если ваш пазл обладает полезным функционалом

  3. Javoronok:

    Отличный пост с линками и короткими пояснениями. Буду пробовать ставить.

  4. mecommayou:

    Интересен был результат… а ссылки нету… если тут не хочешь скинь в пм плиз.

  5. mmib:

    В пост добавил скриншоты, ссылку на блог отправил в пм

  6. iamdeuterium:

    bb.org.ua
    мне понравилось

  7. mecommayou:

    А мне нет.

  8. Zzet:

    Для галерей на своих сайтах использую исключительно Cooliris.
    Преимущества:
    1. Фиксация дизайна, а для меня это критично, особенно для альбома в 100+ фотографий (посмотрел бы я на вашу страницу с такими то превью)
    2. Большие возможности и вариации просмотра (описывать в комменте бесполезно — проще увидеть и попробовать)
    3. Все то же самое что вы и хотели изначально (и линки на отдельную страницу и комменты и тп. естественно с предварительными телодвижениями — но для начала больше чем достаточно. хотя, наверное за исключением размера отдаваемого фото. тут немного по другому. хотя побожески и очень дружелюбно.)
    4. Что для меня было очень важно это то, чтобы можно было просмотреть все фотографии в альбоме без лишних переходов. Все-таки чаше всего народу хочется просто посмотреть, а не истерично тыкать на все фото или элементы управления для их пролистывания. Вопрос комментирования каждой фоты пользователем тоже интересен — если брать пользователя как единицу измерения — то могу предположить, что пользователь не стремится прокомментировать каждую фоту в альбоме, соответственно перегрузка функционалом идет на минус сайту.
    5. др.

    Минус есть большой, хотя его можно с трудом посчитать сейчас минусом — технология flash.

    однако на вкус и цвет…

  9. mmib:

    1. 50 фотографий на странице в три колонки без проблем. Клик по нижнему углу на интересующей фотографии — она откроется на этой же странице. Клик по другому месту фотографии откроется на новой странице с возможностью посмотреть оригинал.
    2. На вкус и цвет. Для друпала ставил флэш модуль просмотра галерей. Флэш решения не люблю, описывать здесь не стал.
    3. Комментариев к фотографии не нашел
    4. Такая возможность есть — кликните по заголовку альбома и смотрите все фотографии
    5. не конструктивно

    Вот хочет девушка скопировать фотографии себе на диск, как она это сделает, если это flash?
    Как послать ссылку на фото, если это flash?
    Скорость загрузки такого сайта будет медленнее, особенно если человек смотрит с нетбука. Просмотр с iPhone невозможен

  10. Zzet:

    Вы однозначно не пробовали данный модуль

    1. Галерея, в которой вся страница усыпана одними картинками, приточенными друг к другу не воспринимается адекватно. В глазах мельтишит и теряется вся прелесть галереи, хотя и есть выигрыш — если уже знаешь что на странице — то легко, относительно легко найти нужную фотографию. Однако лично для меня это не так важно, для знакомых — аналогично, от посетителей упреков не видел. Относительно «угол и сама фото». простите, а это пользователи должны догадаться? Могу Вас разуверить, что не все пользователи интернета одинаково хорошо понимают ВАШУ логику. Тут вы меня шокировали…
    2. Описывать не стали — ваш косяк. Кажется, вы правильнее сделать обзор того как можно сделать, а не того, как вам понравилось, или что надо было именно для ВАШЕГО сайта. Считаю, что вы не справились с поставленной задачей, тем более в тематическом блоге.
    3. Про телодвижения вы не прочли, про Image забыли… Как бы сказать… красота требует жертв. Иногда эти жертвы — время. иногда деньги. Тяп ляп сейчас не в моде. Воспринимать друпал как систему для навешивания модулей — равно не использовать его функционал вовсе.
    4. Простите, но уж коли на то пошло, то придется повторить фразу «Что для меня было очень важно — это то, чтобы можно было просмотреть все фотографии в альбоме без лишних переходов.» Клик соответственно не приветствовался. Большие страницы аналогично.

    захочет сохранить — перейдет на страницу с фотографией и сохранит. в вашем случае — та же ботва.
    как послать и скорость загрузки — прежде чем задавать вопросы — ознакомились бы с примером. Для примера вот это: simple.puntolatinoclub.de/category/gallery-assist/examples/cooliris
    Вопрос с iPhone легко решается через связку с Gallery Assist, для которого и используется cooliris.

    Ну хотя что я в чужой монастырь. Мое дело было сказать что можно использовать как альтернативу…

  11. mmib:

    1. При наведении мышью на фотографию в углу появляется соответствующая иконка, догадаться можно. Не все догадываются, здесь с вами согласен.
    2. Перед катом описаны поставленные задачи, далее идет решение. Не утверждаю, что он единственно правильное и самое лучше.
    3. Воспринимаю друпал как многопользовательскую CMS с большим количеством различных модулей
    тоже самое написано на drupal.org:

    Drupal.org is the official website of Drupal, an open source content management platform.

    Equipped with a powerful blend of features, Drupal supports a variety of websites ranging from personal weblogs to large community-driven websites.

    4. вот ссылка на один из альбомов (тема Deco и сгоревший hosting.ua, даю именно ее, что бы избежать эффекта) mike.pp.ua

    Про Gallery Assist вы не написали в первом комментарии — это действительно то что нужно! А Cooliris — просмотрщик на флеше, не так интересно, но красиво.

  12. ikistol:

    Для фотоблога Gallerix выглядит привлекательней.

  13. mmib:

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

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

  14. Anonym:

    Вы уж извините, но ни одного объективного плюса в сторону какого-либо решения я в вашем топике не увидел. Весь смысл сводится к «Попробовал кучу модулей, один понравился, я молодец». Если бы вы сами написали достойную галерею…

  15. mmib:

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

  16. yas375:

    мне пригодилось. спасибо. Как раз вот аналогичная задача появилась и ты мне время сэкономил )

  17. andruhan:

    Использую zenphoto, но у меня не фотоблог :)
    Оно умеет всё, что автор хочет.
    Пример: gallery.andruhan.ru

  18. mmib:

    показ альбомов в виде топиков с описанием и превью из нескольких фотографий на главной странице

    — в вашем примере и примере на их сайте это не умеет.

    комментарии посетителей для альбома и отдельной фотографии (с премодерацией)

    — не увидел

  19. andruhan:

    Каюсь, из коробки не поддерживаются комментарии к альбому (в моем примере комментарии отключены ко всему).
    Но, наверняка есть расширение, которое это умеет делать. Как, например, расширение, позволяющее интегрировать галлерею в Wordpress.
    Вначале не видел вашего примера — очень хорошо получилось, мне нравится)