Тизер галереи 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(), которая дает хороший результат.

Другие вопросы по тегам