Оганичение вывода изображений в тизере drupal 7
В описании хука сказано, что он используется для изменения или добавления элеменов перед рендерингом сущнощности. Например обернуть элемент в какой нибудь div, используя свойство #markup (как показано в примере к хуку). В данном же случае, нужно применить php функцию array_slice, с помощью которой можно обрезать массив, указав нужную выборку.
Приведённая ниже запись демонстрирует передачу в функцию массива данных (информация о картинках), номер элемента массива с которого нужно начать обрезку и количество последующих элементов
В нашем случае в функцию передаётся 0 и 1, для того чтобы она вернула нам один самый первый элемент (картинку). Затем обновляем значение $entity->content['field_image']['#items']. На самом деле всё очень просто!
Ниже описано решение ограничения вывода картинок в тизере.
Надеюсь моя заметка пригодится начинающим (и не только) друпаллерам. Буду рад комментариям и замечаниям.
array_slice($entity->content['field_image']['#items'], 0, 1)
function MODULENAME_entity_view($entity, $type, $view_mode, $langcode) { if ($view_mode == 'teaser') { $entity->content['field_image']['#items'] = array_slice($entity->content['field_image']['#items'], 0, 1); } }
Комментарии
Помогите пожалуйста с проблемой:
есть модуль метатегс и в нем в материалах настраивается изображение которое будет браться при публикации ссылки в снипете социальных сетей.
Так вот для этого надо добавить какой то токен. если добавить стандартный [node:field_image] то он выводит все ссылки на картинки, притом без использования стилей с вотермарками.
А хочется что бы бралась первая и со стилями.
Смотрю в сторону модуля Custom Tokens - но пока не могу найти код который бы смог сформировать такую ссылку...
p.s. ц вас на сайте нехватает подписаться на комментарии.
Добавить комментарий