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


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

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


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

#21 SmetDenis

SmetDenis

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

Пробуйте оба варианта, а там уже по обстоятельствам.

Начните со второго, он проще в реализации.


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



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


#22 zeus07

zeus07

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

По второму вариант.у. Там можно? подменять шаблон получается? 


Как я понимаю делаем это в файле jblayout.php?


  • 0

#23 SmetDenis

SmetDenis

Отправлено 18 March 2017 - 07:45

В методе renderItem хелпера jblayout имя шаблона хранится в переменной $itemLayout

Посмотрите что в ней, и меняйте значение на нужное


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



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


#24 zeus07

zeus07

Отправлено 19 March 2017 - 00:28

Денис, вам огромное спасибо за помощь! 

 

Второй вариант мне помог! В категории всё отлично! На днях протестирую при выводе через модуль, посмотрим, как там будет работать, хотя надеюсь, что всё будет хорошо!

 

Решение приведу немного в нормальный вид, и с удовольствием выложу рецепт! Возможно пригодится форумчанам!


  • 0

#25 zeus07

zeus07

Отправлено 19 March 2017 - 02:32

Пробую вывести примерно таким же способом в модуле JBZoo Item, но пока не получается.

 

Шаблон айтема хранится у нас в 

  1. $modHelper->getItemLayout()

Как-то можно повлиять на данный метод, чтобы подменять шаблон?


  • 0

#26 zeus07

zeus07

Отправлено 21 March 2017 - 12:36

Денис, подскажете по последнему вопросу?


  • 0

#27 SmetDenis

SmetDenis

Отправлено 21 March 2017 - 14:05

Точно так же можно влиять.

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



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


#28 zeus07

zeus07

Отправлено 21 March 2017 - 14:07

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

$modHelper->getItemLayout() в условие..


Сообщение отредактировал zeus07: 21 March 2017 - 14:08

  • 0

#29 zeus07

zeus07

Отправлено 21 March 2017 - 14:30

Делаю таким образом: 

  1. <?php
  2. /**
  3. * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
  4. * @package jbzoo
  5. * @version 2.x Pro
  6. * @author JBZoo App http://jbzoo.com
  7. * @copyright Copyright (C) JBZoo.com, All rights reserved.
  8. * @license http://jbzoo.com/license-pro.php JBZoo Licence
  9. * @coder Vitaliy Yanovskiy <joejoker@jbzoo.com>
  10. */
  11.  
  12. // no direct access
  13. defined('_JEXEC') or die('Restricted access');
  14. include 'jbdump/class.jbdump.php';
  15.  
  16. $items = $modHelper->getItems();
  17. $count = count($items);
  18. $columns = (int)$params->get('item_cols', 1);
  19. $border = (int)$params->get('display_border', 1) ? 'rborder' : 'no-border';
  20.  
  21. $application = $modHelper->app->zoo->getApplication();
  22. $appTemplate = $application->params->get('template', 'bootstrap');
  23.  
  24. if ($appTemplate !== 'bootstrap') {
  25. $modHelper->app->jbtemplate->regHelpersByTpl('bootstrap');
  26. }
  27.  
  28. $bootstrap = $modHelper->app->jbbootstrap;
  29.  
  30. static $itemEven;
  31. if (!isset($itemEven)) {
  32. $itemEven = 0;
  33. }
  34. $itemEven = 1 - $itemEven;
  35.  
  36. if ($count) {
  37.  
  38. echo '<div id="' . $modHelper->getModuleId() . '" class="jbzoo yoo-zoo">';
  39. echo '<div class="module-items jbzoo-' . $border . ' module-items-col-' . $columns . '">';
  40. echo $modHelper->renderRemoveButton();
  41.  
  42. if ($columns) {
  43.  
  44. $j = $i = 0;
  45.  
  46. $rowItem = array_chunk($items, $columns);
  47. $rowClass = $bootstrap->getRowClass();
  48. $colClass = $bootstrap->columnClass($columns);
  49.  
  50. echo '<div class="items items-col-' . $columns . '">';
  51.  
  52. foreach ($rowItem as $row) {
  53. echo '<div class="' . $rowClass . ' item-row-' . $i . '" data-uk-grid-margin>';
  54.  
  55. foreach ($row as $item) {
  56.  
  57. $app_id = $item->application_id;
  58. $first = ($j == 0) ? ' first' : '';
  59. $last = ($j == $count - 1) ? ' last' : '';
  60. $j++;
  61.  
  62. $isLast = $j % $columns == 0;
  63.  
  64. if ($isLast) {
  65. $last .= ' last';
  66. }
  67.  
  68. $renderer = $modHelper->createRenderer('item');
  69. if ($itemEven) {
  70. $modHelper->getItemLayout() = 'bootstrap';
  71. } else {
  72. $modHelper->getItemLayout() = 'bootstrap-odd';
  73. }
  74.  
  75. echo '<div class="item-column ' . $colClass . $first . $last . '">'
  76. . '<div class="well clearfix">'
  77. . $renderer->render('item.' . $modHelper->getItemLayout(), array(
  78. 'item' => $item,
  79. 'params' => $params
  80. ))
  81. . '</div>'
  82. . '</div>';
  83. }
  84.  
  85. $i++;
  86.  
  87. echo '</div>';
  88. }
  89.  
  90. echo '</div>';
  91.  
  92.  
  93. } else {
  94.  
  95. foreach ($items as $item) {
  96. $renderer = $modHelper->createRenderer('item');
  97. if ($itemEven) {
  98. $modHelper->getItemLayout() = 'bootstrap';
  99. } else {
  100. $modHelper->getItemLayout() = 'bootstrap-odd';
  101. }
  102. echo $renderer->render('item.' . $modHelper->getItemLayout(), array(
  103. 'item' => $item,
  104. 'params' => $params
  105. ));
  106. }
  107. }
  108.  
  109. echo '</div></div>';
  110. }

Конечно понимаю, что видимо что-то неправильно, так как выбивает такую ошибку: 

  1. Fatal error: Can't use method return value in write context in /modules/mod_jbzoo_item/tmpl/bootstrap.php on line 71

Подскажите пожалуйста, как правильно это сделать


  • 0

#30 SmetDenis

SmetDenis

Отправлено 23 March 2017 - 08:19

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

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



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





Click to return to top of page in style!