Перейти к содержимому


Фотография
- - - - -

Настройка результатов фильтрации


Лучший Ответ SmetDenis , 28 December 2016 - 19:37

Для фильтра подобной возможности не реализовано.

Можно сделать условие в шаблоне, которое будет срабатывать только во время фильтрации.

Например, так


if ($this->app->jbrequest->getCtrl() === 'search') {
    // фильтр
} else {
    // другие страницы
}

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 14

#1 DMV

DMV

Отправлено 21 December 2016 - 14:20

Подскажите пожалуйста  как можно сделать, что бы в результатах поиска (фильтра) выводилось только по одному материалу из каждой категории.

Допустим в результатах поиска нашлось 10 материалов: 5 принадлежат к одной категории, 5 - к другой.

Так вот надо что бы в итоге показалось только 2 материала - по одному  из каждой категории. 


Сообщение отредактировал DMV: 22 December 2016 - 09:39

  • 0

#2 DMV

DMV

Отправлено 22 December 2016 - 09:40

Неужели никто не знает?

Подскажите хоть с какого файла начинать копать.


  • 0

#3 CB9TOIIIA

CB9TOIIIA

Отправлено 22 December 2016 - 09:50

Задача не тривиальная - колотить и костылить, если поиск стандартный - то одни файлы, если фильтр от jbzoo - там иные.


  • 0

#4 DMV

DMV

Отправлено 22 December 2016 - 09:55

Задача не тривиальная - колотить и костылить, если поиск стандартный - то одни файлы, если фильтр от jbzoo - там иные.

 

Спасибо.

Понятно что костылить, не понятно откуда начать: с модуля mod_jbzoo_search  который использую, или с файлов jbzoo


  • 0

#5 CB9TOIIIA

CB9TOIIIA

Отправлено 22 December 2016 - 09:58

Модуль Вам запросы только посылает, Вам надо будет результаты поиска (фильтра) отсеивать по условиям.


  • 0

#6 DMV

DMV

Отправлено 22 December 2016 - 10:03

Модуль Вам запросы только посылает, Вам надо будет результаты поиска (фильтра) отсеивать по условиям.

 

Это и подозревал

Насколько понял, отображаются они здесь:

/media/zoo/applications/jbuniversal/templates/uikit/filter.php 

но где формируются не могу найти

 

Буду очень благодарен, если наставите на путь


  • 0

#7 CB9TOIIIA

CB9TOIIIA

Отправлено 22 December 2016 - 10:06

Я с фильтром особо не работал, но если вывод в том файле - то я бы взял бы дампер - ограничил результат вывода в нем (по категориям например).


  • 0

#8 DMV

DMV

Отправлено 22 December 2016 - 13:52

В том то и дело, что вот это

 // items
        echo $this->app->jblayout->render('items', $this->items);

выводит уже сформированное и отформатированое,

и по var_dump выводит копию результатов фильтра

а где это "собирается" - не найти


  • 0

#9 SmetDenis

SmetDenis

Отправлено 25 December 2016 - 14:42

Начните с изучения картинки

http://jbzoo.ru/docs/how-work-jbzoo

 

Весь самый интересный рендеринг происходит в директории

jbuniversal/templates/uikit/renderer/<тип шаблона>/_default.php

 

items - Это как раз и есть тип.

Он вызовет item_columns

 

Разделение на колонки будет происходить в хелпере

framework\helpers\jblayout.php в одноименном модуле.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#10 DMV

DMV

Отправлено 26 December 2016 - 11:20

Спасибо

Но вы меня наверно не так поняли

Мне нужно поменять не внешний вид (количество колонок и т.д.) вывода фильтра, а логику

Мне нужно ограничить в результатах вывода количество материалов

Т.е. чтобы из каждой найденной категории выводилось только по 1 материалу,

Или если по другому: не должно быть в результатах фильтра 2 (или более) материалов из одной категории


  • 0




Click to return to top of page in style!