Jump to content


Photo
- - - - -

Разные фоновые изображения в шаблоне full(материала) в зависимости от категории?


Best Answer Cheren-dow , 01 July 2014 - 07:18

buzinin, доброго времени суток. Возможно вам подойдет следующий вариант.

Откройте файл

сайт\media\zoo\applications\jbuniversal\framework\helpers\jblayout.php

Найдите метод renderItem

public function renderItem(Item $item, $defaultLayout = 'teaser', ItemRenderer $renderer = null){
...
}

Внутри этого метода найдите 

if ($wrapperTag != 'none') {
    $class = array(
        'jbzoo-item',
        'jbzoo-item-' . $item->type,
        'jbzoo-item-' . $defaultLayout,
        'jbzoo-item-' . $item->id
    );

    $htmlItem = '<' . $wrapperTag . ' class="' . implode(' ', $class) . '">' . $htmlItem . '</' . $wrapperTag . '>';
}

И добавьте вывод id категории

if ($wrapperTag != 'none') {
    $class = array(
        'jbzoo-item',
        'jbzoo-item-' . $item->type,
        'jbzoo-item-' . $defaultLayout,
        'jbzoo-item-' . $item->id,
        'category-' . $item->getPrimaryCategoryId() // Вывод id категории в классе контейнера
    );

    $htmlItem = '<' . $wrapperTag . ' class="' . implode(' ', $class) . '">' . $htmlItem . '</' . $wrapperTag . '>';
}

В итоге в контейнере будет дополнительный класс в зависимости от категории

0r4_200x0.png

Тем самым с помощью css можно сделать соответствующие стили в зависимости от категории

Go to the full post


  • This topic is locked This topic is locked
4 replies to this topic

#1 buzinin

buzinin
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 104
  • topics: 31

Posted 30 June 2014 - 23:02

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

Возникла необходимость сделать один блок (div) в шаблоне материала full, чтобы в зависимости от родительской категории менялось и изображение на странице материала.

 

Т.е. например есть категориия ноутбуки асус и у материалов данной категории нужно чтобы в фоне одного из блоков использовалось изображение ноутбука асус, а если категория ноутбуки Lenovo, то у материала изображение ноутбука lenovo. Все материалы относятся к одному типу.

 

Можно это как-то реализовать? Буду очень признателен за совет.

 

primer.jpg


  • 0

#2 Sliapy

Sliapy
  • JBZoo User (rus)
  • User rate: 50.6
  • posts: 6393
  • topics: 15

Posted 01 July 2014 - 00:34

Дайте ссылку на страницу.


  • 0
[color=#aa0000]Не забывайте нажимать кнопку "Вопрос Решён" под сообщением, которое решило Вашу проблему.[/color]

#3 buzinin

buzinin
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 104
  • topics: 31

Posted 01 July 2014 - 05:57

Вот например: http://orbita.waytim...velmate-tm8371g

Но блоки еще не добавлял в шаблон.


  • 0

#4 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 01 July 2014 - 07:18   Best Answer

buzinin, доброго времени суток. Возможно вам подойдет следующий вариант.

Откройте файл

сайт\media\zoo\applications\jbuniversal\framework\helpers\jblayout.php

Найдите метод renderItem

public function renderItem(Item $item, $defaultLayout = 'teaser', ItemRenderer $renderer = null){
...
}

Внутри этого метода найдите 

if ($wrapperTag != 'none') {
    $class = array(
        'jbzoo-item',
        'jbzoo-item-' . $item->type,
        'jbzoo-item-' . $defaultLayout,
        'jbzoo-item-' . $item->id
    );

    $htmlItem = '<' . $wrapperTag . ' class="' . implode(' ', $class) . '">' . $htmlItem . '</' . $wrapperTag . '>';
}

И добавьте вывод id категории

if ($wrapperTag != 'none') {
    $class = array(
        'jbzoo-item',
        'jbzoo-item-' . $item->type,
        'jbzoo-item-' . $defaultLayout,
        'jbzoo-item-' . $item->id,
        'category-' . $item->getPrimaryCategoryId() // Вывод id категории в классе контейнера
    );

    $htmlItem = '<' . $wrapperTag . ' class="' . implode(' ', $class) . '">' . $htmlItem . '</' . $wrapperTag . '>';
}

В итоге в контейнере будет дополнительный класс в зависимости от категории

0r4_200x0.png

Тем самым с помощью css можно сделать соответствующие стили в зависимости от категории


  • 0
Posted Image
 

#5 buzinin

buzinin
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.1
  • posts: 104
  • topics: 31

Posted 01 July 2014 - 08:24

К сожалению на этом сайте используется только ZOO, если бы использовал JBZoo, то ваш вариант отлично бы подошел

 

Поэтому привязал категорию к пункту меню и вывел условие таким способом

<?php
//Определяем переменную с id пункта меню 
$itemid = JRequest::getVar('Itemid');
//Только для пункта меню с id=185
if($itemid == '185'): ?>
<КОД>
<?php endif; ?>

  • 0




Click to return to top of page in style!