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


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

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


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

#1 zeus07

zeus07

Отправлено 16 March 2017 - 01:21

Здравствуйте!

 

Интересует такой вопрос. В связи с немного нестандартным дизайном, отличается вёрстка тизера для чётных и нечётных материалов на странице. 

 

Необходимо в teaser.php сделать условие, что если данный материал чётный по списку, то для него один шаблон, если нечётный, то другой. 

 

Как это можно реализовать через API? Подскажите пожалуйста.


  • 0

#2 mmth

mmth

Отправлено 16 March 2017 - 06:05

Приветствую, вам нужно глубже смотреть, в items_columns шаблон, или выше. Смотреть на циклы.

foreach ($row as $item) { 
...
echo '<div class="' . (($j % 2)? 'odd':'even') . '">' . $item . '</div>';//конструкцию похожу нужно записать, 
...
}

Сообщение отредактировал mmth: 07 June 2018 - 19:52

  • 1

#3 zeus07

zeus07

Отправлено 16 March 2017 - 13:39

 

Приветствую, вам нужно глубже смотреть, в items_columns шаблон, или выше. Смотреть на циклы.

foreach ($row as $item) { 
...
echo '<div class="' . (($i % 2)? 'odd':'even') . '">' . $item . '</div>';//конструкцию похожу нужно записать, 
...
}

 

Спасибо за идею! Эта конструкция просто позволит добавить свой класс для чётных и нечётных материалов. Но мне надо как-то привязаться к условию именно в тизере и в зависимости от него подставлять уже нужный шаблон...


  • 0

#4 mmth

mmth

Отправлено 16 March 2017 - 13:51

Еще как вариант, можно поиграться с файлом item.php в корне шаблона jbzoo 

media\zoo\applications\jbuniversal\templates\*название_шаблона*\item.php

там рендер происходит, можно попробовать шаблон подменять строка 36, попробуй в этот файл параметр четности нечетности передать и будет тебе счастье

echo $this->app->jblayout->renderItem($this->item, $layout);//$layout ='teaser_odd'

  • 0

#5 zeus07

zeus07

Отправлено 16 March 2017 - 13:56

Ну как бы я не планировал делать отдельно файл шаблона тизера для чётного материала и отдельно для нечётного. Вся разметка будет в одном файле teaser.php. 

 

Интересует именно условие, по которому привязаться можно, и в зависимости от которого выводить уже ту или иную разметку


  • 0

#6 zeus07

zeus07

Отправлено 16 March 2017 - 17:17

Подскажите пожалуйста, а где формируется див с подобными классами:

<div class="jbzoo-item jbzoo-item-organizaciya jbzoo-item-teaser jbzoo-item-3">

</div>

Подозреваю, что от него стоит отталкиваться


  • 0

#7 SmetDenis

SmetDenis

Отправлено 17 March 2017 - 08:52

Это происходит  в хелпере

jbuniversal\framework\helpers\jblayout.php

 

renderItem() который вызывает renderItem() из jbuniversal\framework\classes\jbtemplate.php

 

Проблема в том что это находятся на совершенно ином уровне абстракции и из шаблона на это место повлиять будет проблематично.


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



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


#8 zeus07

zeus07

Отправлено 17 March 2017 - 11:39

Это происходит  в хелпере

jbuniversal\framework\helpers\jblayout.php

 

renderItem() который вызывает renderItem() из jbuniversal\framework\classes\jbtemplate.php

 

Проблема в том что это находятся на совершенно ином уровне абстракции и из шаблона на это место повлиять будет проблематично.

 

Понял, Спасибо! А как тогда лучше сделать? Может есть какой-то вариант?


  • 0

#9 mmth

mmth

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

на сколько отличаются выводы четных и нечетных? есть изображения?


  • 0

#10 zeus07

zeus07

Отправлено 17 March 2017 - 12:51

на сколько отличаются выводы четных и нечетных? есть изображения?

 

Отличается расположение блока с изображением, кратким описанием и рейтингом. То есть например, в чётном материале слева направо изображение, затем рейтинг и потом краткое описание (в одну строку). В нечётном описании справа налево уже изображение, рейтинг и краткое описание.

 

Картинку прикладывать не хотелось бы, так как проект только разрабатывается, и имеет уникальный дизайн, уж простите. 


  • 0




Click to return to top of page in style!