Views. Вывод объектов через одного

Главные вкладки

Аватар пользователя kolyuchy.org kolyuchy.org 21 октября 2021 в 16:09

Суть вопроса простая: как во Views вывести объекты не все подряд, а точно через одного? Например, только те, которые при обычном выводе были бы чётными.

Пример обычного вывода:

Красный
Оранжевый
Желтый
Зеленый
Голубой
Синий
Фиолетовый

Пример нужного вывода:

Красный
Желтый
Голубой
Фиолетовый

Комментарии

Аватар пользователя OldWarrior OldWarrior 21 октября 2021 в 17:58
1

Не помню, чтобы подобное можно было сделать из UI Views.
Два программных выхода навскидку:

1. Использовать селекторы CSS (even/odd) для скрытия рядов через один.

2. Написать небольшой хук в модуль/тему, как-то так:

<?php
/**
 * Implements hook_views_pre_render().
 */
function THEMENAME_views_pre_render(&$view) {
  foreach (
$view->result as $i => $val) {
    if (
$i 2) {
      unset(
$view->result[$i]);
    }
  }
}
?>
Аватар пользователя kolyuchy.org kolyuchy.org 22 октября 2021 в 15:12

Да... CSS или JQuery - это первое, что пришло в голову. Думал, может какой PHP-код в контекстных фильтрах написать или еще что-то, что не умрет при обновлении модуля или темы...

Аватар пользователя OldWarrior OldWarrior 23 октября 2021 в 10:14

Кастомный модуль не умрёт.
Примерный код выше. Единственное, что нужно сделать - добавить проверку на ID вьюса, чтобы обрабатывалось одно выбранное представление.

PHP-код в фильтрах/полях вьюса считается моветоном, как бы.