Jump to content


Photo
- - - - -

Изменение JBsearch Accordion - в одном Tab несколько фильтров

filter accordion search tabs tab-body

Best Answer Iv_Le , 25 May 2015 - 15:07

Решение:

 

Смешиваем код из разных файлов в один default.php (если он нужен, то создаем аналогичный по принципу)

 

 

1. из accordion.php я вытащил:

<div class="filter-element jsAccordion">
....
</div>

2. из tab.php вытащил:

<div class="tab-body"> 
...
</div>

3. далее смешал все это в default.php (в чистом файле обработка только 1 позиции fields, на ней и пример)

<div class="filter-element jsAccordion">
    <h3>
         <?php echo JText::_('<span  class="your_class">Название заголовка таба</span>'); ?>
    </h3>

    <div class="tab-body"> 
        <?php echo $this->renderPosition('fields', array('moduleParams' => $params, 'style' => 'filter.block')); ?>
    </div>
</div>

 

Таким образом вы можете строить фильтр с несколькими однотематическими фильтрами, которые можно закрыть в табе. Спецы, откомментируйте, может последствия будут. Например, в этой конструкции для меня не ясно присутствие 'moduleParams' => $params

 

Заголовок в <h3> нужен в обяз, иначе у таба не будет штуки, на которую надо нажимать для открытия, закрытия.

Go to the full post


  • This topic is locked This topic is locked
5 replies to this topic

#1 Iv_Le

Iv_Le
  • JBZoo User (rus)
  • User rate: 8.3
  • posts: 219
  • topics: 45

Posted 25 May 2015 - 12:40

Поискал по форуму и удивился, что никто не пытался этого сделать. 

 

Я пытаюсь в одну вкладку засунуть несколько фильтров, а самой вкладке дать произвольное название. Мне это нужно для того, чтобы фильтры относящиеся к одной тематике были рядом. Но их много, чтобы располагать в виде default.

 

Вроде такого:

 

> Tab 1

-- Поиск по числам (slider)

-- Радио-кнопки 1

-- Список

 

> Tab 2

-- Диапазон дат

-- Радио-кнопки 2

 

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

 

 

Вопрос заодно: как сделать, чтобы вкладка не сворачивалась, если открываешь другую?


Edited by Iv_Le, 25 May 2015 - 12:41.

  • 0

#2 Iv_Le

Iv_Le
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 8.3
  • posts: 219
  • topics: 45

Posted 25 May 2015 - 15:07   Best Answer

Решение:

 

Смешиваем код из разных файлов в один default.php (если он нужен, то создаем аналогичный по принципу)

 

 

1. из accordion.php я вытащил:

<div class="filter-element jsAccordion">
....
</div>

2. из tab.php вытащил:

<div class="tab-body"> 
...
</div>

3. далее смешал все это в default.php (в чистом файле обработка только 1 позиции fields, на ней и пример)

<div class="filter-element jsAccordion">
    <h3>
         <?php echo JText::_('<span  class="your_class">Название заголовка таба</span>'); ?>
    </h3>

    <div class="tab-body"> 
        <?php echo $this->renderPosition('fields', array('moduleParams' => $params, 'style' => 'filter.block')); ?>
    </div>
</div>

 

Таким образом вы можете строить фильтр с несколькими однотематическими фильтрами, которые можно закрыть в табе. Спецы, откомментируйте, может последствия будут. Например, в этой конструкции для меня не ясно присутствие 'moduleParams' => $params

 

Заголовок в <h3> нужен в обяз, иначе у таба не будет штуки, на которую надо нажимать для открытия, закрытия.


Edited by Iv_Le, 25 May 2015 - 15:08.

  • 1

#3 Iv_Le

Iv_Le
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 8.3
  • posts: 219
  • topics: 45

Posted 25 May 2015 - 15:56

Черт побери, я теперь не понимаю, почему у меня все вкладки открыты по умолчанию.

 

Ок :) накопал здесь /media/zoo/applications/jbuniversal/assets/js/jquery.jbzootools.min.js и сделал activeTab:1 (было activeTab:0)

 

 

 

Посмотрел как устроен оригинальный accordion и имею еще один вопрос: нельзя ли сделать так, чтобы вкладки, которые открыл посетитель оставались открытыми и после перезагрузки страницы?


Edited by Iv_Le, 25 May 2015 - 16:09.

  • 0

#4 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 26 May 2015 - 07:12

Добрый день,

В оригинальной идеи каждая вкладка - это обертка из стиля позиции http://jbzoo.ru/docs/position-styles
В вашем случае я бы использовал не наш упрощенный вариант аккордеона, а jQueryUI- http://api.jqueryui....ion-collapsible

У него есть опции и методы для работы с вкладками + Cookie
http://stackoverflow...osed-by-default

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



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


#5 Iv_Le

Iv_Le
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 8.3
  • posts: 219
  • topics: 45

Posted 26 May 2015 - 07:20

(sweat)  (sweat)  (sweat)  не мой пока что уровень, но если найдутся герои с навыками, поделитесь. А я допетрю мб месяца чз 2-3.

 

Но спс большое.


  • 0

#6 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 26 May 2015 - 07:34

Прежде чем отказываться, попробуйте на тоже разметке HTML использовать пример инициализации из второго примера.
http://stackoverflow...osed-by-default

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



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






Also tagged with one or more of these keywords: filter, accordion, search, tabs, tab-body

Click to return to top of page in style!