<?php $search = $this->macros('search', 'search_do') ?>
Может быть использован с параметром "?search_string=поисковый_запрос
". В остальных случаях будет пытаться получить его из URL .
XML-ответ UData
<udata module="search" method="search_do" generation-time="0.022250">
<items>
<item id="27" name="FAQ" link="/umicms/" xlink:href="upage://27">
<p><b>UMI.CMS</b> Вопросы о коммерческом продукте <b>UMI.CMS</b>.</p>
</item>
<item id="28" name="Общие вопросы по UMI.CMS" link="/umicms/obwie_voprosy_po_umicms/" xlink:href="upage://28">
<p>Общие вопросы по <b>UMI.CMS</b></p>
</item>
...
</items>
<total>7</total>
<per_page>10</per_page>
</udata>
Вывод осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, в этом случае для вывода свойства будет использован шаблон по умолчанию — default.tpl
.
Используемые блоки шаблона
search_block
Выводит блок оформления для результатов поиска.
- %last_search_string%
-
Выводит предыдущий поисковый запрос, если такой был.
- %lines%
-
Выводит список результатов поиска, построенный с использованием блока search_block_line .
- %total%
-
Выводит общее количество новостей в ленте. Можно использовать для макроса %system numpages()% .
- %per_page%
-
Выводит значение параметра per_page. Можно использовать для макроса %system numpages()% .
search_block_line
Выводит отдельную страницу в результате поиска.
- %id%
-
Выводит id найденной страницы.
- %name%
-
Выводит название найденной страницы.
- %link%
-
Выводит ссылку на найденную страницу.
- %num%
-
Выводит порядковый номер найденной страницы.
- %context%
-
Выводит контекст, в котором встречается одно из слов в поисковом запросе.
- %quant%
-
Выводит разделитель используя блок search_block_line_quant.
- %list-class-first%
-
в случае, если элемент первый, выводит "first"
- %list-class-last%
-
в случае, если элемент последний, выводит "last"
- %list-class-odd%
-
в случае, если элемент четный, выводит "odd"
- %list-class-even%
-
в случае, если элемент нечетный, выводит "even"
- %list-position%
-
вставляет порядковый номер в списке
Примеры использования
<?php
$FORMS = Array();
$FORMS['search_block'] = <<<END
%search insert_form('searchform')%
<p>Найдено %total% страниц.</p>
%lines%
<p>%system numpages(%total%, %per_page%)%</p>
END;
$FORMS['search_block_line'] = <<<END
<p>
<span class="s_num">%num%.</span> <a href='%link%'><b>%name%</b></a>
%context%
</p>
END;
$FORMS['search_empty_result'] = <<<END
%search insert_form('searchform')%
<p>Извините. По данному запросу ничего не найдено.</p>
END;
?>
Название
%search search_do()% — Выводит результаты поиска по сайту.
Параметры: search search_do([template = 'default', search_string = '', search_types = '', search_branches = '', per_page = 0])
- template
-
Имя шаблона, по которому следует выводить результаты поиска по сайту. В XSLT-шаблонизаторе игнорируется.
- search_string
-
Поисковая фраза. Если значение не задано, оно берётся из переданного через форму поиска запроса.
- search_types
-
Список идентификаторов иерархических типов для поиска (указываются через пробел). Если значение не указано, поиск оcуществляется по всем типам.
- search_branches
-
Список разделов в которых будет осуществляться поиск (указываются через пробел). Если значение не указано, поиск осуществляется по всем разделам. Параметр может принимать как id страниц, так и их URL.
- per_page
-
Количество результатов на странице. Если параметр не задан, будет взято значение, указанное в настройках модуля "Поиск".
Описание
Выводит результаты поиска, если они переданы через форму, выведенную с помощью макроса %search insert_form()% (поисковый запрос будет присутствовать в URL после отправки данных формы).
По умолчанию для вывода результатов поиска используется системная страница с адресом /search/search_do/. Можно создать обычную страницу контента, вставить в нее макрос %search search_do(...)% и в форме поиска, выводимой через %search insert_form()% поменять атрибут action
у тега form
на адрес этой страницы контента.
В результатах поиска искомые слова будут выделены тегом <b></b>.