Drupal → Фильтр по результату php кода в Views

16.08.2010

Встала задача — вывести материалы из категории (категория это термин таксономии), к которой принадлежал последний добавленный материал. Например, если последний материал был добавлен в категорию Легковушки, то на главной нужно вывести последние 10 легковушек.

Вбил в поиск на drupal.org фразу "views php filter" и первым же результатом получил ссылку на модуль Views PHP Filter. Модуль добавляет в фильтры новое поле Node ID PHP handler:

Новое вычисляемое поле 'Node ID PHP handler'

В поле можно вставить php-код, который должен вернуть идентификаторы нод:

Настройки фильтра по полю 'Node ID PHP handler'

Задача решилась, но решение показалось не очень гибким. А что если завтра мне понадобится аналогичный php фильтр, но например уже по дате создания материала или любому другому полю? Views PHP Filter уже не поможет.

Несколько часов спустя вспомнил, что при создании аргументов, можно указать значение по умолчанию в формате php-кода:

Настройки аргумента по умолчанию

Вот теперь то что доктор прописал. Красота! :)

Написанное актуально для
Views 2
Похожие записи

Комментарии

Роман
05.12.2012, 14:38

Скажите пожалуйста, а если встает, к примеру, задача - сделать выборку данных, у которых некое поле больше (или меньше), чем аргумент.

Или, к примеру, если строковое поле содержит в себе значение аргумента.

В обычном SQL задача решается элементарно - вместо "=" пишется ">". А вот как такая задача решается, если запрос строить с помощью views (в частности Views 3 для Drupal 7) ?

Подскажите пожалуйста, какой PHP-код вписать в аргумент, чтобы было значение больше на 1 чем текущий NID?

Вернее, даже не на 1, а вообще, больше, чем текущий NID, а то может быть проблема, если нода окажется не в том термине.
Хочу сделать листалку - назад, вперед.

Добавить комментарий