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


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

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


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

#31 zeus07

zeus07

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

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

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

 

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

public function getItemLayout()
    {

	global $itemEven;
	if (!isset($itemEven)) {
    		$itemEven = 0;
	}
 
	$itemEven = 1 - $itemEven;
	if ($itemEven) {
	   return $this->_itemLayout;
	} else {
	   $this->_itemLayout = 'bootstrap';
	}
        return $this->_itemLayout;
    }

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


  • 0

#32 SmetDenis

SmetDenis

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

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


Боюсь что нет готового решения.
Тут только расставлять "костыли" в подобном духе (как обсуждали выше) под все возможные условия под конкретный сайт.
  • 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

после строки

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

добавить код

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

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

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

  • 1




Click to return to top of page in style!