Тизер галереи Drupal 7
Я создал простую галерею в Drupal, используя пользовательский тип контента. На самом деле это просто статья с полем изображения, которое может содержать неограниченное количество элементов. Я создал собственный шаблон для этого типа контента (node - gallery.tpl.php), и для полной страницы я доволен внешним видом.
Одна вещь, на которой я застрял, - это отображение только первых нескольких изображений в тизере. Я хочу отобразить только первый ряд изображений в тизере (это первые 3 изображения). В файле шаблона $content['field_images']
содержит все изображения для галереи, но print render($content['field_images']
выводит все изображения (как я и ожидал).
Итак, как мне заставить Drupal просто вывести первые три элемента из $content['field_images']
? Меня заинтересовало бы улучшение: как заставить Drupal выводить 3 случайных изображения, хотя, если я знаю, как сократить количество отображаемых изображений, я уверен, что смогу решить это самостоятельно.
2 ответа
В вашем шаблоне найдите подходящую структуру массива с именами файлов изображений. Если вы не можете найти его в $content
посмотрите на вывод var_dump $node
, Напиши for
цикл, чтобы перебрать первые три элемента, и для каждого из этих элементов вызовите либо theme_image(), либо, если у вас есть стили изображений, которые вы хотите использовать, theme_image_style (). Передайте в соответствующий массив конфигурации либо имя файла, которое вы получили из массива.
Вместо того, чтобы делать var_dump или перебирать массив, почему бы не установить модуль devel и использовать его функцию dpm(), которая дает хороший результат.