UMIhelp

Разработка сайта на UMI.CMS => Макросы UMI.CMS => Тема начата: vicliner от 27 Февраля 2013, 18:28:42

Название: Хлебные крошки в результатах поиска
Отправлено: vicliner от 27 Февраля 2013, 18:28:42
Столкнулся с проблемой: при выводе результатов поиска у каждого найденного  элемента необходимо построить полный путь к соответствующей странице, которая содержит текущий результат. По сути нужно вывести хлебные крошки до каждой найденной странице. Обращался в службу поддержки, сказали что стандартного решения нет и нужно кастомизировать функцию navibar класса core, но пока попытки решить данную задачу ни к чему не привели.
Название: Re:Хлебные крошки в результатах поиска
Отправлено: admin от 27 Февраля 2013, 18:54:43
копируете макрос core navibar

находите там определения currelementid

public function navibar($template = 'default', $isFull = true, $offsetLeft = 0, $offsetRight = 0,$id) {
if(!$template) $template = 'default';
$cmsController = cmsController::getInstance();
$hierarchy = umiHierarchy::getInstance();
                       
//было
//$currentElementId = $cmsController->getCurrentElementId();
// стало
$currentElementId =$id;
                        if(!$currentElementId) $currentElementId = $cmsController->getCurrentElementId();
                       
Название: Re:Хлебные крошки в результатах поиска
Отправлено: vicliner от 27 Февраля 2013, 22:34:13
Спасибо, сейчас буду пробовать.
Название: Re:Хлебные крошки в результатах поиска
Отправлено: vicliner от 27 Февраля 2013, 23:10:40
Все отлично работает. Огромное спасибо!!!
Название: Re:Хлебные крошки в результатах поиска
Отправлено: admin от 27 Февраля 2013, 23:19:58
если вам не сложно, выложите проверенное решение с пошаговым объяснением, другим может быть полезно
Название: Re:Хлебные крошки в результатах поиска
Отправлено: vicliner от 27 Февраля 2013, 23:49:30
Результат можно увидеть здесь http://intratv.net/search_results/?search_string=%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D1%8F

Что касаемо пошаговых действий:

В папке /classes/modules в файле core.php нашел ф-ию navibar, полностью скопировал в файл custom.php, находящийся в той же папке, и внес описанные выше изменения, переименовал ф-ию в navibar_custom.
Если кто не знает, то кастомизированные макросы лучше выносить в файл custom.php чтобы они не затерлись при обновлении системы.  После в файле  поиска, у меня это шаблон с названием search.tpl (/tpls/search) в блоке
$FORMS['search_block_line'] = <<<END  вывожу макрос крошек, в отличии от стандартного последним параметром нужно передать id найденной страницы: %custom navibar_custom(default,1,0,1,%id%)%
Вот и все! Наслаждаемся результатом!)))