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


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

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

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

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

Добрый день,

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

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

$elements = $this->app->jbrequest->getElements();
$categories = isset($elements['_itemcategory']) ? $elements['_itemcategory'] : array();

if (in_array('15', $categories)) {

    // один вариант разметки таблицы, если id = 15

} else if (in_array('14', $categories) || in_array('13', $categories)) {

    // второй вариант разметки таблицы для категории с id=14 ИЛИ id=13

} else if (in_array('16', $categories) && in_array('18', $categories)) {

    // второй вариант разметки таблицы для категории с id=16 И id=18

} else {

   // по умолчанию
}

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
$elements = $this->app->jbrequest->getElements();
$categories = isset($elements['_itemcategory']) ? $elements['_itemcategory'] : array();

if (in_array('15', $categories)) {

    // один вариант разметки таблицы, если id = 15

} else if (in_array('14', $categories) || in_array('13', $categories)) {

    // второй вариант разметки таблицы для категории с id=14 ИЛИ id=13

} else if (in_array('16', $categories) && in_array('18', $categories)) {

    // второй вариант разметки таблицы для категории с id=16 И id=18

} else {

   // по умолчанию
}

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



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


#3 Yaspis

Yaspis

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

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

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

 

//Определяем переменную с id пункта меню 
$itemid = JRequest::getVar('Itemid');
$align = $this->app->jbitem->getMediaAlign($item, $layout);
//Только для пункта меню "Купить квартиру, комнату"
if($itemid == '163'){

//один вариант разметки таблицы для пункта меню = 163

}

//и т.д.

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

  • 0

#4 SmetDenis

SmetDenis

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

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

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

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


--

Если вы хотите использовать id категории из страницы (НЕ из фильтра), то можно попробовать определять её так
 
$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!