xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

Встала задача — вывести материалы из категории (категория это термин таксономии), к которой принадлежал последний добавленный материал. Например, если последний материал был добавлен в категорию Легковушки, то на главной нужно вывести последние 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
Похожие записи

Комментарии RSS

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

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

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

одним из описанных способов

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

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

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании