Можно ли во views с помощью filter делать сложные условия?
Прислано: Siegfrid@drupal.org
вт, 09/03/2010 - 20:30
Интересует следующее, можно ли сделать к примеру вот такой запрос с помощью views (в особенности интересна часть, относящаяся к фильтру):
select n.nid from node n where n.`changed` - n.created > 100;
- Siegfrid@drupal.org's blog
- Для комментирования войдите или зарегистрируйтесь
можно сделать типа where n.`changed`=1 а потом в хуке hook_views_query_alter в своем модуле поменять на то что нужно
- Для комментирования войдите или зарегистрируйтесь
Если в своем модуле, то проще свой фильтр-хэндлер написать, который будет эту формулу подставлять.
- Для комментирования войдите или зарегистрируйтесь
Меня все таки интересует готовое универсальное решение. wokraround все таки менее привлекателен, т.к вся прелесть во вьювс, это скорость и относительная простота разработки, иначе проще будет написать свой небольшой модуль без вызова views.
- Для комментирования войдите или зарегистрируйтесь
Фильтр-хэндлер - это не workaround, написание своих хэндлеров - фича Views API.
Но если хочется попроще, то надо просто зайти на drupalmodules.com и написать в строке поиска "views filter". После чего появится модуль Views Date Range Filter, где какие-то фильтры дат уже написаны за вас. Если там нету, то наверное придется написать.
- Для комментирования войдите или зарегистрируйтесь
Фильтр-хэндлер - это не workaround, написание своих хэндлеров - фича Views API.
Но если хочется попроще, то надо просто зайти на drupalmodules.com и написать в строке поиска "views filter". После чего появится модуль Views Date Range Filter, где какие-то фильтры дат уже написаны за вас. Если там нету, то наверное придется написать.
Странно, но я так и не смог найти похожего модуля, хотя как мне кажется, было бы вполне естественным желание сделать модуль поддержки арифметических условий для фильтров во views.
Например, чтобы осуществлять выборку нод за последние n дней с точностью до минуты, при этом n дней должны задаваться пользователем через CCK поле и могут варьироваться в заданном диапазоне.
- Для комментирования войдите или зарегистрируйтесь
Ну так а Views Date Range Filter полезен, или нет? Интересно же.
- Для комментирования войдите или зарегистрируйтесь
Ну раз есть такой модуль, значит для кого то он был полезен, но для меня он не подошел.
- Для комментирования войдите или зарегистрируйтесь
Значит, видимо, руками придется делать. Это не страшно, views-хэндлеры писать нетрудно.
- Для комментирования войдите или зарегистрируйтесь
на хабре что-то было на тему написания расширений для views
- Для комментирования войдите или зарегистрируйтесь
Я недавно писал у себя в блоге про расширения для views, только там больше про кастомные типы данных.
Но если с английским языком проблем нет, то вот тут много написано по теме: http://views-help.doc.logrus.com/
- Для комментирования войдите или зарегистрируйтесь
Пока еще руки не дойдут никак до views api. Но уже чувствую, что скоро озадачусь! Спасибо за помощь!
- Для комментирования войдите или зарегистрируйтесь


Комментарии