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


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

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


Сообщений в теме: 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, но пока не получается.

 

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

$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

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

<?php
/**
 * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
 * @package     jbzoo
 * @version     2.x Pro
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.php JBZoo Licence
 * @coder       Vitaliy Yanovskiy <joejoker@jbzoo.com>
 */

// no direct access
defined('_JEXEC') or die('Restricted access');
include 'jbdump/class.jbdump.php';

$items   = $modHelper->getItems();
$count   = count($items);
$columns = (int)$params->get('item_cols', 1);
$border  = (int)$params->get('display_border', 1) ? 'rborder' : 'no-border';

$application = $modHelper->app->zoo->getApplication();
$appTemplate = $application->params->get('template', 'bootstrap');

if ($appTemplate !== 'bootstrap') {
    $modHelper->app->jbtemplate->regHelpersByTpl('bootstrap');
}

$bootstrap = $modHelper->app->jbbootstrap;

static $itemEven;
if (!isset($itemEven)) {
    $itemEven = 0;
}
 
$itemEven = 1 - $itemEven;

if ($count) {

    echo '<div id="' . $modHelper->getModuleId() . '" class="jbzoo yoo-zoo">';
    echo '<div class="module-items jbzoo-' . $border . ' module-items-col-' . $columns . '">';
    echo $modHelper->renderRemoveButton();

    if ($columns) {

        $j = $i = 0;

        $rowItem  = array_chunk($items, $columns);
        $rowClass = $bootstrap->getRowClass();
        $colClass = $bootstrap->columnClass($columns);

        echo '<div class="items items-col-' . $columns . '">';

        foreach ($rowItem as $row) {
            echo '<div class="' . $rowClass . ' item-row-' . $i . '" data-uk-grid-margin>';

            foreach ($row as $item) {

                $app_id = $item->application_id;
                $first  = ($j == 0) ? ' first' : '';
                $last   = ($j == $count - 1) ? ' last' : '';
                $j++;

                $isLast = $j % $columns == 0;

                if ($isLast) {
                    $last .= ' last';
                }

                $renderer = $modHelper->createRenderer('item');
		if ($itemEven) {
			$modHelper->getItemLayout() = 'bootstrap';
	    	} else {
			$modHelper->getItemLayout() = 'bootstrap-odd';
	    	}

                echo '<div class="item-column ' . $colClass . $first . $last . '">'
                        . '<div class="well clearfix">'
                            . $renderer->render('item.' . $modHelper->getItemLayout(), array(
                                'item'   => $item,
                                'params' => $params
                            ))
                        . '</div>'
                    . '</div>';
            }

            $i++;

            echo '</div>';
        }

        echo '</div>';


    } else {

        foreach ($items as $item) {
            $renderer = $modHelper->createRenderer('item');
	    if ($itemEven) {
		$modHelper->getItemLayout() = 'bootstrap';
	    } else {
		$modHelper->getItemLayout() = 'bootstrap-odd';
	    }
            echo $renderer->render('item.' . $modHelper->getItemLayout(), array(
                'item'   => $item,
                'params' => $params
            ));
        }
    }

    echo '</div></div>';
}

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

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!