Я пытаюсь узнать, как создать пользовательский фильтр для добавленного модуля (выберите или другой). Я нашел это руководство для Drupal 6, но, похоже, код не работает "из коробки" на Drupal 7.
Я также попытался просмотреть код в модуле иерархического выбора, но он кажется гораздо более сложным, чем то, что я пытаюсь сделать.
Есть ли у кого-нибудь предложения для учебных пособий или модулей, которые реализуют пользовательские открытые фильтры относительно простым способом (например, не огромное количество пользовательских обработчиков, таких как модуль определения местоположения), из которых я могу извлечь уроки?
Я бродил по Интернету, пытаясь найти ответ на тот же вопрос, и вот что я получил в результате:
Реализуйте несколько хуков в вашем пользовательском модуле. Замените
modulename
иfiltername
вашими настоящими именами.Создайте папку с именем
inc
внутри вашей папки модуля и создайте файл с именемmodulename_handler_filter_filtername.inc
там (см. Код выше для неявной ссылки на этот файл). Не забудьте использовать настоящие имена модулей и фильтров.Вставьте следующий код в этот
modulename_handler_filter_filtername.inc
файл. Код, который я использовал для этого примера, создает набор переключателей, отображающих годы. Таким образом, вы можете фильтровать узлы по годам создания, используя только годы, в которых были созданы узлы.Это все, что вам нужно, чтобы получить простейший пользовательский фильтр!
Обратите внимание, что использование
FROM_UNIXTIME
в условииSELECT
запроса может замедлить вашу базу данных.источник
$this->query->add_where($this->options['group'], $real_field_name, $this->value['value'], $this->operator);
. Это можно найти по ссылке выше.источник