Как я могу указать количество экземпляров данного поля в представлении

У меня есть стандартный базовый тип контента статьи, который, среди прочего, содержит поле изображения, настроенное на неограниченное количество значений.

Теперь я пытаюсь создать представление, в котором перечислены некоторые поля в этом типе контента, но я хочу ограничить количество изображений, возвращаемых для этого конкретного поля, до 3 случайных изображений в списке (или меньше). Это то, что может быть достигнуто прямо в моей конфигурации представления, или мне нужно сделать что-то ниндзя? Я не знаю обо всем, что возможно с помощью php, чтобы «переписать» / «фильтровать» результаты моего представления, но мне комфортно со всем, что связано с программированием.

Я использую drupal-7 с представлениями 7.x-3.0-alpha1.

Спасибо!


person Francis Boivin    schedule 11.02.2011    source источник


Ответы (1)


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

Я вижу два возможных способа теоретически добиться того, чего вы хотите.

  1. Используйте hook_views_query_alter, чтобы изменить запрос SQL для представления. Я не уверен, что представления поддерживают то, что вам нужно для рандомизации результатов, но у вас есть возможность изменить запрос, генерируемый представлениями, и, возможно, рандомизировать его.
  2. Выберите все результаты, но используйте темы для отображения только случайно выбранных параметров. Это можно сделать в функции предварительной обработки. Представления предоставляют несколько, в зависимости от вашего варианта отображения, hook_views_view_unformatted может быть тем, что вам нужно.
person googletorp    schedule 11.02.2011