Вывод вместо объектов каталога раздела, в котором он содержится в результатах поиска (tpl).
Материал из Umicms
Актуально для версии 2.9
- Данное решение рассмотрено на примере интернет-магазина "Классический", шаблон demoold.
Задача:
- Необходимо, чтобы, при поиске на сайте, в результатах выводился раздел, в котором содержится искомый товар вместе с остальными товарами данного раздела.
Решение:
- В модуле шаблоны данных для типа "Объект каталога" добавляем поле типа строка, например, "путь до каталога" с идентификатором put_do_kataloga
- Для каждого объекта заполняем это поле подобным образом(одинарные кавычки обязательно):
'/market/hamsters/'
- Поиск осуществляется с помощью макроса %search search_do()%
Вывод результатов осуществляется согласно шаблону, который находится в /tpls/search/ В нем необходимо отредактировать вывод результатов поиска в блоке $FORMS['search_block_line']
- Добавим в результаты поиска вывод информации о разделе каталога с помощью макроса
%catalog category() %
В качестве параметра, который определяет путь до раздела каталога будем использовать макрос %data getProperty()% с помощью последнего получим поле "путь до каталога" для каждого найденного с помощью поиска объекта
В общем и целом блок отображения результатов поиска будет выглядеть так:
$FORMS['search_block_line'] = <<<END
<div>
%catalog category('default', %data getProperty(%id%,'put_do_kataloga','default')%)%
</div>
END;
- Таким образом, в результатах будет выводится раздел, в котором содержится искомый товар вместе с остальными товарами данного раздела.
Для вывода раздела в определенном виде можно, также, написать отдельный шаблон и использовать его имя в качестве первого параметра макроса %catalog category( )%