Делаем фотогаллерею, используюя CCK, ImageField, ImageCache и Highslide

Главные вкладки

Аватар пользователя Stalk Stalk 20 апреля 2011 в 9:20

Постановка задачи:
1) В ноде нужно сделать вывод превьюшек картинок в каком-либо упорядоченном виде, например в виде таблицы;
2) На увеличенной версии картинки должно находится ее полноценное текстовое описание, включающее теги HTML.

Решение:
1) Ставим модули CCK, ImageField, ImageField Extended, ImageCache, Highslide;
2) В настройках ImageField Extended добавляем поле desc|Описание;
3) Создаем в ноде поле field_photos типа File и в его настройках в секции Описание text settings ставим галочку Enable custom Описание text. Также выбираем значение Text field style, например Formatted multi-line text;
4) Темизируем вывод ССK ImageField для поля field_photos, используя файл c именем content-field-field_photos.tpl.php. Незабудьте также скопировать в корень вашей темы файл content-field.tpl.php.из папки theme модуля CCK;
5) Настраиваем Highslide. Во вкладке Highslide - Imagecache/CCK редактируем формат defaulf указываем соответствующие форматы для превьшек и полного размера. Лучше выбрать форматы Highslide. В поле Caption contents выбираем любое значение - далее будет понятно почему;
6) Для поля field_photos в настройках ноды в разделе Display fields указываем вывод Highslide Default(Zooms)
7) Немного подпиливаем модуль Highslide. Открываем файл highslide.module и изменяем в строках с 381 по 387
с

if ($formatter['caption'] != 'none') {
if (isset($formatter['caption_field']) && $formatter['caption_field'] != 'default') {
$caption_content = _highslide_caption_content($node, $formatter['caption_field']);
}
else if (isset($item['data']['description'])) {
$caption_content = $item['data']['description'];
}

на

if ($formatter['caption'] != 'none') {
#if (isset($formatter['caption_field']) && $formatter['caption_field'] != 'default') {
# $caption_content = _highslide_caption_content($node, $formatter['caption_field']);
#}
if (isset($item['data']['desc']['body'])) {
$caption_content = $item['data']['desc']['body'];
}

Вот собственно и все.
Кстати, Highslide прекрасно уживается с CCK Fieldgroup Tabs и галлерею можно заснуть под вкладку.

ВложениеРазмер
Двоичные данные highslide.module18.58 КБ
Иконка простого текстового файла content-field-field_photos-location.tpl_.php_.txt1.38 КБ
Иконка простого текстового файла highslide-full.min_.js_.txt73.85 КБ

Комментарии