Интернет и графику в наше время уже не разъединить. Кому интересен голый текст? 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 Сохраняем, появляется окно настройки поля, можно оставить все по умолчанию, хотя настройки довольно таки интересны: 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 — Сколько изображений можно прикрепить к ноде? Я оставил все по умолчанию. После сохранения, при создании Story, к ним можно будет прикреплять рисунки. При помощи темизации, вы легко сможете разместить картинку так, как вам нужно, но если вы хотите подогнать картинку под какие то только вам ведомые стандарты? Обрезать и скалировать каждое изображение фотошопом, жуть как неудобно... И тут на помощь приходит модуль Image cache, как и большинство полезных модулей Drupal, сам он работать отказывается, и требует imageapi. Устанавливаем ImageAPI, ImageCache, ImageCache UI, и поддержку одной из библиотек, в зависимости от того, какая установлена у вас на сервере, в моем случае это ImageAPI GD2. Сохраняем. Кстати, для работы Image cache требуется включить Clean URL. Теперь мы можем создавать пресеты (preset), или если вам будет проще, я бы назвал их «фильтрами». Заходим на страницу «Administer › Site building › ImageCache». И нажимаем «Add new preset». Вводим имя фильтра Сохраняем и попадаем на страницу выбора действий (Action) с изображением. К каждой картинке можно применить сразу несколько действий. 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 второй фильтр, назвал Sec Теперь давайте сделаем что бы этот фильтр накладывался на загружаемые нами изображения. Зайдем в «Administer › Content management › Content types», нажмем «manage fields», напротив типа Story, и там «Display fields». Здесь можно задать как будет отображаться наше изображение. Выберем Label — Hidden, что бы убрать противную надпись «image», у нод, Teaser — First image, то есть, на изображение в тизере будет накладываться первый фильтр, и Full node — Sec image, на изображение в полной ноде будет накладываться второй фильтр. Проверяем работу... В тизере исходное изображение уменьшено, и в черно-белых тонах. А в полной ноде, перевернуто и уменьшено. Как вы уже наверно поняли, Image cache в связке с CCK, и Views, дает неограниченные возможности при умелом использовании, главное не бойтесь пробовать что то новое -) Спасибо за внимание.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
вOFFка (вт, 2009-10-20 21:25)
Действительно замечательная связка! До ее использовал для вставки изображений модуль Image, но это совсем не то.
Правда так и не добился того, чтобы дать пользователям возможность вставлять несколько изображений в произвольных местах текста с произвольным выравниванием. :(
symbios (ср, 2009-10-21 09:12)
спасибо за ваши уроки... хотел бы предложить рассмотреть поподробнее связку cck+taxonomy, как работает автодополнение, как связывается cck с views.. спасибо :)
RemaGe (ср, 2009-10-21 17:22)
Незачто, в одном из будущих уроков обязательно вернусь к Views, возможно затрону и taxonomy -)
Резидент (вс, 2009-10-25 14:30)
Здравствуйте, Евгений!!
Во-первых: ОЧЕНЬ БОЛЬШОЕ СПАСИБО ЗА УРОКИ!
Во-вторых: мне надо сделать две вещи на друпал, и возможно, их можно выполнить на основе предыдущих уроков, и если это так, то скажите в каком направлении мне точно надо двигаться(какие еще модули нужны).
Проблема 1: необходимо сделать что-то вроде справочника сотрудников, которые размещены в таблице базы данных. Т.е. при переходе на страницу выводится таблица сотрудников сгруппированных по отделам, при нажатии на конкретного сотрудника открывается новое окно с полной информацией на него.
Проблема 2: есть директория на сервере, например – filesdoc, в ней находятся папки и в папках файлы с инфой в форматах doc или pdf. При переходе на страницу например – документы нужно чтобы выводилась таблица с названиями папок в одной колонке и файлами хранящимися в этих папках в другой колонке (а лучше что-то вроде меню, папки – меню, файлы - подменю).
Буду очень БЛАГОДАРЕН за помощь.
PS Те кто пишет, что “где вы были год назад?” тоже могли делиться своим опытом общения с друпал на этом сайте, т.к. возможно Вы уже делали что-то очень специфическое и интересное, что могло бы помочь остальным в будущем.
RemaGe (вс, 2009-10-25 14:38)
Здравствуйте, спасибо за оценку)
Проблема 1
Отделы создаете с помощью таксономии, тип материала "сотрудники", с помощью CCK, если нужна фотография, читаете этот урок.
Проблема 2
Не видел ничего подобного на друпал, либо придется вручную создавать ноды, и прицеплять к ним файлы. Либо писать свой модуль. Можно конечно полазить посмотреть на drupal ru, и drupal org, но не уверен что найдете.
Vzmix (ср, 2009-11-04 10:00)
Евгений, а будет урок как видео на сайт залить?
RemaGe (ср, 2009-11-04 11:45)
Посмотрите урок про CCK, это то что нужно. Только нужно выбрать подходящий модуль- поле для CCK.
Orevytrappy (пт, 2009-11-06 10:36)
Интересно написано, я пробовал подобное делать ничего не вышло
RofGuttyLot (сб, 2009-11-07 05:12)
Отличный сайт и материалы очень познавательные