Выбор категории для поиска в AjaxSearch [MODX Evo]

Дополнение для организации поиска на сайте AjaxSearch [MODX Evo] не имеет стандартной возможности настроить выбор в форме поиска категорию, в которой должен осуществляться поиск.

Можно организовать подобный функционал внеся небольшие дополнения к стандартному поиску.

В настройке вызова результатов поиска AjaxSearch есть параметр parent, который устанавливает категории, которые будут показаны в результатах поиска. Данную возможность и будем использовать.

Пример использования параметра:

&parents=`in:2,3` // показать результат для категорий 2 и 3

В форме обратной связи добавляем элемент select:

<select name=”category”>
<option value=”1">Category_1</option>
<option value=”2">Category_2</option>
<option value=”3">Category_3</option>
...
</select>

В элементе select параметре name указываем имя параметра, который получаем POST. В данном случае category.

В элементе option параметре value прописываем id-номер страницы-категории.

Чтобы “прокинуть” значение выбранной категории в parent создадим новый сниппет getPostSearch со следующим содержимый:

<?php
$category = $_POST[‘category’];
return $category;
?>

Итоговый код вызова результата поиска:

[!AjaxSearch? &ajaxSearch=`0` &pagingType=`0` &showInputForm=`0` &parents=`in:[!getPostSearch!]` !]