Работа с изображениями в Drupal с модулем Image cache

Интернет и графику в наше время уже не разъединить. Кому интересен голый текст? Drupal, конечно же, обладает средствами для работы с графикой. Давайте обсудим это поподробнее.

Для начала нам понадобится сам Drupal, на сегодняшний день актуальна версия — 6.14, в придачу к нему установим CCK, imagefield и filefield. Нам необходимы входящие в эти пакеты модули: Content, ImageField, FileField, Option Widgets. Устанавливаем все. Теперь мы можем прикреплять к нашим типам содержимого рисунки. Давайте попробуем видоизменить тип содержимого story. Заходим в «Administer › Content management › Content types». Находим Story, и нажимаем «manage fields», напротив него. Добавим поле с рисунком:

Label: image

Field name: image

Type of data to store: file

Form element to edit the data: Image

Drupal-work-with-image-1.jpg

Сохраняем, появляется окно настройки поля, можно оставить все по умолчанию, хотя настройки довольно таки интересны:

Permitted upload file extensions — разрешенные типы файлов, по умолчанию png gif jpg jpeg.

Maximum/Minimum resolution for Images — максимальное и минимальные разрешенные размеры рисунков (в пикселях), по умолчанию 0, то есть можно загружать рисунки любых размеров, забивается в формате 640x480.

File path — путь, куда будут загружаться рисунки, по умолчанию «files/».

File size restrictions — максимальный размер загружаемых файлов.

Maximum upload size per file — максимальный размер загружаемого файла.

Maximum upload size per node — максимальный размер загружаемых файлов на ноду.

ALT text settings — добавлять ли к рисункам свойство ALT.

Title text settings — добавлять ли к рисункам свойство Title.

Default image — Если не загружено изображение, использовать ли какое либо по умолчанию?

Required — поле обязательно?

Number of values — Сколько изображений можно прикрепить к ноде?

Drupal-work-with-image-2.jpg

Я оставил все по умолчанию. После сохранения, при создании Story, к ним можно будет прикреплять рисунки.

Drupal-work-with-image-3.jpg

При помощи темизации, вы легко сможете разместить картинку так, как вам нужно, но если вы хотите подогнать картинку под какие то только вам ведомые стандарты? Обрезать и скалировать каждое изображение фотошопом, жуть как неудобно... И тут на помощь приходит модуль Image cache, как и большинство полезных модулей Drupal, сам он работать отказывается, и требует imageapi. Устанавливаем ImageAPI, ImageCache, ImageCache UI, и поддержку одной из библиотек, в зависимости от того, какая установлена у вас на сервере, в моем случае это ImageAPI GD2. Сохраняем.

Кстати, для работы Image cache требуется включить Clean URL.

Теперь мы можем создавать пресеты (preset), или если вам будет проще, я бы назвал их «фильтрами». Заходим на страницу «Administer › Site building › ImageCache». И нажимаем «Add new preset».

Drupal-work-with-image-4.jpg

Вводим имя фильтра

Drupal-work-with-image-5.jpg

Сохраняем и попадаем на страницу выбора действий (Action) с изображением. К каждой картинке можно применить сразу несколько действий.

Drupal-work-with-image-6.jpg

Add Crop — обрезать картинку.

Add Deprecated Scale — Предшественник «Add Scale And Crop», исчезнет в версии ImageCache 2.1.

Add Desaturate — Сделать изображение черно-белым.

Add Resize — изменить размер изображения.

Add Rotate — повернуть изображение.

Add Scale — изменить размер изображения, с сохранением пропорций.

Add Scale And Crop — Изменить размер изображения до нужного, с сохранением пропорций, а потом обрезать.

Add Sharpen — изменить четкость изображения.

Я задал скалирование (Scale) до 200 пикселей по ширине, и сделал изображение черно-белым. Давайте добавим еще один фильтр, например, со скалированием до 400 пикселей по ширине, и поворотом (Add Rotate) изображения на 90 градусов.

Вот что у меня получилось.

Первый фильтр, я назвал его First

Drupal-work-with-image-7.jpg

второй фильтр, назвал Sec

Drupal-work-with-image-8.jpg

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

Зайдем в «Administer › Content management › Content types», нажмем «manage fields», напротив типа Story, и там «Display fields».

Drupal-work-with-image-9.jpg

Здесь можно задать как будет отображаться наше изображение.

Выберем Label — Hidden, что бы убрать противную надпись «image», у нод, Teaser — First image, то есть, на изображение в тизере будет накладываться первый фильтр, и Full node — Sec image, на изображение в полной ноде будет накладываться второй фильтр.

Проверяем работу... В тизере исходное изображение уменьшено, и в черно-белых тонах.

Drupal-work-with-image-10.jpg

А в полной ноде, перевернуто и уменьшено.

Drupal-work-with-image-11.jpg

Как вы уже наверно поняли, Image cache в связке с CCK, и Views, дает неограниченные возможности при умелом использовании, главное не бойтесь пробовать что то новое -)

Спасибо за внимание.

2111