Настройка макета галереи в Drupal с помощью Views и CCK

StackOverflow https://stackoverflow.com/questions/1028401

  •  06-07-2019
  •  | 
  •  

Вопрос

Я создаю сайт галереи / альбомов в Drupal 6. Возможно, описание будет немного подробным, но все же по какой-то причине сложно создать галерею в Drupal простым способом.

На данный момент я использую комбинацию CCK + Views + FileField + ImageCache + Lightbox2.

Это позволило мне - создать тип узла Album CCK, который может содержать несколько изображений - создать представление, отображающее альбомы в формате 9x9 (используя пейджер и элементы в строке)

Но здесь есть одна проблема. Хотя основной вид 9x9 с альбомами отображается хорошо, когда я детализирую конкретный узел альбома, щелкнув его изображение, он отображает загруженные изображения узлов в вертикальном ряду , и я не могу контролировать его форматирование.

Видимо, у меня есть 2 варианта а) каким-то образом контролировать вывод html моего поля CCK с его файлами (делить на строки) б) или создать другой вид для отображения изображений из одного альбома

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

а) Я могу создать файл node-album.tpl - но все его содержимое уже будет в одной переменной $ content, которую я не смогу разбить на 3 элемента подряд. Я не прав?

b) если я решу создать представление для отображения элементов из одного узла Album, я не уверен, как я буду ссылаться на него из родительского представления Albums. Проблема в том, что в разделе Поля представления я могу переопределить ссылку, но он предлагает только 2 шаблона замены для передачи потенциальному " дочернему элементу " view, которые представляют собой [title] и [field_images_fid] - достаточно ли этого для создания дочернего представления для отображения изображений из определенного альбома?

Это было полезно?

Решение

  

Я могу создать файл node-album.tpl, но все его содержимое уже будет в одной переменной $ content, которую я не смогу разбить на 3 элемента подряд. Я не прав?

Вы правы и неправы.

В своем файле template.php вы можете передать другие переменные в ваш node-album.tpl, вы можете передать переменную $ node и отобразить ее очень настраиваемым способом, хотя в дальнейшем это уменьшит гибкость, как если бы вы использовали другой модуль для добавления вещей в $ content вам придется отредактировать файл tpl для доступа к новым переменным.

Для этого вы используете хук preprocess_page в файле template.php. Вы можете добавить переменные в массив $ vars и использовать их в файле node-album.tpl. Я думаю , что $ node уже будет определен в файле tpl, что, вероятно, облегчит вашу жизнь. Вы можете игнорировать контент вообще.

Если это не сработает для вас, вы также можете создать собственный модуль и использовать hook_nodeapi и hook_theme для темы тем, что вам нравится, при этом используя $ content. Однако это может быть слишком сложной работой для вас (если вы хотите пойти по этому пути, ответьте, и я напишу отдельный ответ).

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top