Дополнительные типы блоков (EBT) — новый опыт конструктора страниц❗

Дополнительные типы блоков (EBT) — стилизованные, настраиваемые типы блоков: слайдшоу, вкладки, карточки, аккордеоны и многие другие. Встроенные настройки для фона, DOM Box, плагины Javascript.

Демо EBT модули Скачать EBT модули

❗Дополнительные типы параграфов (EPT) — новый опыт работы с параграфами

Дополнительные типы параграфов (EPT) — набор модулей, основанный на аналогичных параграфах.

Демо EPT модули Скачать EPT модули

Scroll
22/02/2025, by Гость (не проверено)

Прошу помощи!

Создан тип материала с несколькими полями, в частности "Категория" (таксономия) и "Cтоимость" (числовое поле)

Задача состоит в следующем на странице, созданной views при помощи контекстных фильтров вывести материалы, удовлетворяющие параметрам категория/стоимость от/стоимость до

Т.е. на выходе получаем страницу вида seite.ru/search/110/100/1000, где 110 - tid термина, от 100 до 1000 - ценовые рамки. Видел на одном сайте (сайт на друпале был точно) такую реализацию.

Собственно вопрос как настроить фильтры для числовых полей?

Вот о чем речь: http://firmaterra.ru/poisk.html кликните на кнопку "Поиск" и посмотрите на URL

Заранее благодарю!


Здравствуйте,

1) Форму делаем через drupal forms API, пишем массив в своем модуле, выводим форму в виде блока на странице, страницу лучше всего добавить с помощью хука hook_menu().

2) Форма ссылается на ту же страницу, поэтому пишем обработку этой формы на этой же странице.

3) После обработки формы делаем редирект на другую страницу (где урл с аргументами), которую мы также делаем через hook_menu(), на странице обработки мы считываем аргументы через arg(). Делаем запрос к БД  и выводим как нам нужно, главное получить массив нод которые будем выводить. А выводить уже можно тизерами как здесь написано:

http://stackoverflow.com/questions/9358298/print-node-teaser-from-nid

Если нужен пагинатор на странице, то нужно делать запрос вот так:

http://api.drupal.org/api/drupal/includes%21database%21database.inc/function/db_select/7#comment-23858

 

Возможно есть готовые решения с помощью Views, chaos tools и одним из этих модулей:

http://drupal.org/project/facetapi

http://drupal.org/project/search_facetapi

http://drupal.org/project/zend_lucene

 

Но я бы советовал вам открыть любой учебник по PHP или любому php-фреймворку и посмотреть как там выборку из БД делают.