Вывод вместо объектов каталога раздела, в котором он содержится в результатах поиска (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( )%