Простая форма поиска может содержать следующие элементы: поле для ввода поискового запроса, кнопку отправки запроса, элементы для выбора области поиска, выпадающее поле с подсказками поисковых запросов. Форму поиска можно вывести в любой части сайта (обычно — в макете дизайна), используя метод show_form():
$nc_search->show_form([string $params [, array $template [, array $areas]]])
Параметр | Описание |
---|---|
$params (опционально) | строка с дополнительными параметрами формы, соединёнными через амперсанд (например, "inputsize=30&suggest=0"). Если значения содержат символы &, =, пробел, они должны быть указаны как %26, %3D, + соответственно. |
$template (опционально) | массив с альтернативным шаблоном формы поиска |
$areas (опционально) | массив с областями поиска, где ключ — описание области (см. раздел «Области поиска на сайте»), а значение — текстовое описание, которое будет выведено в форме. |
В свою очередь у параметра $params есть свой перечень возможных передаваемых параметров:
Значение по умолчанию: если параметр $areas задан — select, иначе — empty.
В шаблонах вывода областей поиска можно использовать псевдопеременные %AREANUM (порядковый номер области поиска), %AREA (область поиска), %NAME (текстовое описание области поиска), %URL (ссылка на страницу поиска с поисковым запросом, но без параметра area). Во всех элементах шаблона можно использовать параметры-переменные из первого аргумента метода, например, $inputsize или $areastype.
Массив с альтернативным шаблоном формы поиска $template может содержать элементы prefix (начало формы — код до вывода областей поиска), suffix (окончание формы — код после вывода областей поиска), элементы для вывода областей поиска: unactive (невыбранная область поиска), active (выбранная область поиска), divider (разделитель между областями поиска). В массиве $template могут быть заданы не все элементы, а только их часть; недостающие элементы будут взяты из описания формы поиска по умолчанию в настройках модуля.
Обратите внимание на необходимость экранирования переменных (таких как $inputvalue, $inputsize и т. д.) в альтернативных шаблонах формы поиска, или, если не используется экранирование, фильтрации и дополнительной обработки переданных пользователем данных для предотвращения инъекции кода и XSS-атак. При вычислении значений частей шаблонов форм поиска используется функция eval().
Структура формы поиска по умолчанию определяется в панели управления модулем на вкладке «Настройки» — «Отображение».
Как правило, изменение шаблона не требуется, поскольку внешний вид формы можно изменить при помощи CSS.
Массив с областями поиска $areas можно записать в таком виде:
array("thissub" => "только в этом разделе")
или
array("" => "на всём сайте", "/catalogue/*" => "в каталоге товаров", "sub30*" => "в новостях")