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


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

Два фильтра таблицей: как сделать разные шаблоны вывода

фильтры таблица

Лучший Ответ SmetDenis , 30 September 2014 - 09:09

Добрый день,

В документации предполагалось, что будет одна таблица и один фильтр.

В вашем случае нужно добавить условия от внешних условия, например от категории. Это нужно сделать шаблонах item_columns и teaser

  1. $elements = $this->app->jbrequest->getElements();
  2. $categories = isset($elements['_itemcategory']) ? $elements['_itemcategory'] : array();
  3.  
  4. if (in_array('15', $categories)) {
  5.  
  6. // один вариант разметки таблицы, если id = 15
  7.  
  8. } else if (in_array('14', $categories) || in_array('13', $categories)) {
  9.  
  10. // второй вариант разметки таблицы для категории с id=14 ИЛИ id=13
  11.  
  12. } else if (in_array('16', $categories) && in_array('18', $categories)) {
  13.  
  14. // второй вариант разметки таблицы для категории с id=16 И id=18
  15.  
  16. } else {
  17.  
  18. // по умолчанию
  19. }

id категории можно посмотреть при редактировании, справа
dts_200x0.png Перейти к сообщению


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

#1 Yaspis

Yaspis

Отправлено 29 September 2014 - 09:24

На сайте используется табличный вывод элементов каталога. А так же, применяется фильтр для сортировки элементов. Два фильтра, каждый работает в своей категориях, и у этих категорий свой шаблон item_columns, т.е. шапка таблицы отличается.
В документации сказано, что "Таблица будет работать для результатов фильтра (автоматически)." И соответственно !Фильтры выводят результаты поиска только в одном шаблоне item_columns. 

Как разделить, чтобы каждый фильтр использовал свой шаблон вывода?

1 фильтр http://home-volga.ru...ru-komnatu.html
2 фильтр http://home-volga.ru...ru-komnatu.html


  • 0

#2 SmetDenis

SmetDenis

Отправлено 30 September 2014 - 09:09   Лучший Ответ

Добрый день,

В документации предполагалось, что будет одна таблица и один фильтр.

В вашем случае нужно добавить условия от внешних условия, например от категории. Это нужно сделать шаблонах item_columns и teaser
  1. $elements = $this->app->jbrequest->getElements();
  2. $categories = isset($elements['_itemcategory']) ? $elements['_itemcategory'] : array();
  3.  
  4. if (in_array('15', $categories)) {
  5.  
  6. // один вариант разметки таблицы, если id = 15
  7.  
  8. } else if (in_array('14', $categories) || in_array('13', $categories)) {
  9.  
  10. // второй вариант разметки таблицы для категории с id=14 ИЛИ id=13
  11.  
  12. } else if (in_array('16', $categories) && in_array('18', $categories)) {
  13.  
  14. // второй вариант разметки таблицы для категории с id=16 И id=18
  15.  
  16. } else {
  17.  
  18. // по умолчанию
  19. }

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



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


#3 Yaspis

Yaspis

Отправлено 30 September 2014 - 12:54

У меня в teaser как-раз есть условия "от пунктов меню", т.к. категории привязаны к меню. А в документации сказано : "Внимание! Если категория привязана к какому-либо пункту меню Joomla, это условие работать не будет."

Шаблоны item_columns к каждой категории свой.
Временно решила переносом категорий "Аренды" в отдельный каталог, но это конечно не решение...

 

  1. //Определяем переменную с id пункта меню
  2. $itemid = JRequest::getVar('Itemid');
  3. $align = $this->app->jbitem->getMediaAlign($item, $layout);
  4. //Только для пункта меню "Купить квартиру, комнату"
  5. if($itemid == '163'){
  6.  
  7. //один вариант разметки таблицы для пункта меню = 163
  8.  
  9. }
  10.  
  11. //и т.д.

Сообщение отредактировал Yaspis: 30 September 2014 - 13:29

  • 0

#4 SmetDenis

SmetDenis

Отправлено 01 October 2014 - 09:39

Боюсь, вы не верно растолковали документацию и путаете обычный страницу категории и страницу с результатами фильтра.

В обоих фильтрах у вас указан один и тот же пункт меню, поэтому itemid не подойдет. Либо нужно чтобы каждая форма ссылалась на свой пункт меню.

Сейчас я вижу что в каждой форме используются свои скрытые поля для категории.
Это можно использовать. Как раз это я предложил в предыдущем сообщении.


--

Если вы хотите использовать id категории из страницы (НЕ из фильтра), то можно попробовать определять её так
 
  1. $catId = $this->app->jbrequest->getSystem('category');

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



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


#5 Yaspis

Yaspis

Отправлено 01 October 2014 - 10:08

Действительно, условия вывода по пунктам меню у меня указаны в файле teaser, а шапка таблицы формируется в item_columns, правильно? Т.е. сейчас у меня используются несколько шаблонов item_columns, каждый для своей категории, и выбраны они через админку. А надо видимо свести их все в один файл с условиями вывода по категории, как раз так, как вы и предложили, так? Попробую.


Сообщение отредактировал Yaspis: 01 October 2014 - 10:09

  • 0

#6 SmetDenis

SmetDenis

Отправлено 01 October 2014 - 10:39

Да, все верно.
В вашем случае наиболее удобный вариант - это использовать в одном файле несколько условийю
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



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






Темы с аналогичным тегами фильтры, таблица

Click to return to top of page in style!