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


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

Условие в шаблоне для опреления чётных и нечётных материалов


Сообщений в теме: 37

#31 zeus07

zeus07

Отправлено 23 March 2017 - 15:32

SmetDenis сказал(а) 23 Мар 2017 - 07:19:

static получится использовать только внутри функции.
Если прям посреди шаблона, то лучше баловаться глобальными переменными.

getItemLayout() определяется в этом классе jbmodulehelper.php
Она по сути только вернет имя шаблона материала.
Можно попробовать менять там.

 

Попробовал сделать таким образом: 

  1. public function getItemLayout()
  2. {
  3.  
  4. global $itemEven;
  5. if (!isset($itemEven)) {
  6. $itemEven = 0;
  7. }
  8. $itemEven = 1 - $itemEven;
  9. if ($itemEven) {
  10. return $this->_itemLayout;
  11. } else {
  12. $this->_itemLayout = 'bootstrap';
  13. }
  14. return $this->_itemLayout;
  15. }

Но не срабатывает. Также эти изменения влияют на модуль фильтра. Как сделать правильно?


  • 0

#32 SmetDenis

SmetDenis

Отправлено 27 March 2017 - 08:43

zeus07 сказал(а) 23 Мар 2017 - 14:32:

Как сделать правильно?


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



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


#33 zeus07

zeus07

Отправлено 27 March 2017 - 09:06

Да, понимаю конечно, что по сути реально костыли.

 

Как можно применить данные изменения только к определённому модулю? Чтобы данные костыли не влияли на другие..


  • 0

#34 SmetDenis

SmetDenis

Отправлено 27 March 2017 - 10:41

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



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


#35 zeus07

zeus07

Отправлено 27 March 2017 - 10:49

Но ведь если делать костыль в файле jbmodulehelper.php, то он всё равно повлияет, даже если модуль переименовать...Или я не верно понимаю?


  • 0

#36 SmetDenis

SmetDenis

Отправлено 27 March 2017 - 12:45

Можно сделать копию файла в своем модуле и наследовать хелпер (т.е. класс) своего модуля от нового файла.
Это все основы PHP
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



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


#37 zeus07

zeus07

Отправлено 27 March 2017 - 12:50

О, это уже идея! Спасибо за наводку! Буду пробовать!


  • 0

#38 mmth

mmth

Отправлено 07 June 2018 - 23:00

оставлю ещё одно решение может кому-то пригодится:

в файле media\zoo\applications\jbuniversal\templates\имя_шаблона\category.php

после строки

  1. if ($this->params->get('config.items_show', 1) && count($this->items)) {

добавить код

  1. $ei = 1;
  2. foreach($this->items as $itm){
  3. $itm->params->even = (($ei % 2) == 0);
  4. $ei++;
  5. }
  6.  

а уже в teaser item проверять на четность

  1. if($item->params->even){
  2. ...

  • 1




Click to return to top of page in style!