Jump to content


Photo
- - - - -

Стандартный элемент "Related items" колонками


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

#1 Сердар

Сердар
  • JBZoo User (rus)
  • User rate: 0.4
  • posts: 67
  • topics: 13

Posted 10 March 2013 - 18:51

Вопрос касается вывода стандартного элемента Related items (не авто) в несколько колонок. Темы, где эта тема поднималась уже закрыты, а решить задачу не удается полностью: http://forum.joomla-...85.html#msg9385 .
В шаблон related.php (\media\zoo\applications\jbuniversal\templates\catalog\renderer\item\product\) добавлен div с id="related1" (свойство related1 прописано в jbzoo.css (#related1 {float: left; width: 30%;})):
<?php
/**
 * JBZoo is universal CCK based Joomla! CMS and YooTheme Zoo component
 * @category   JBZoo
 * @author     smet.denis <admin@joomla-book.ru>
 * @copyright  Copyright (c) 2009-2012, Joomla-book.ru
 * @license    http://joomla-book.ru/info/disclaimer
 * @link       http://joomla-book.ru/projects/jbzoo JBZoo project page
 */
defined('_JEXEC') or die('Restricted access');


$align = $this->app->jbitem->getMediaAlign($item, $layout);
?>
<div id="related1">
<?php if ($this->checkPosition('image')) : ?>
    <div class="item-image align-<?php echo $align;?>">
        <?php echo $this->renderPosition('image');?>
    </div>
<?php endif; ?>
<div class="clear clr"></div>

<?php if ($this->checkPosition('title')) : ?>
    <h4 class="item-title"><?php echo $this->renderPosition('title'); ?></h4>
<?php endif; ?>
<div class="clear clr"></div>

<?php echo $this->renderPosition('rating', array('style' => 'block')); ?>

<ul><?php echo $this->renderPosition('properties', array('style' => 'list')); ?></ul>

<p><?php echo $this->renderPosition('links', array('style' => 'pipe')); ?></p>

<div class="clear clr"></div>
</div>
Такая манипуляция приводит к тому, что колонки появляются, но съезжает вид нижележащего блока с related items auto. Это можно увидеть на этой странице: http://www.test.mos-...huj-k-t-10.html
Блок стандартного Related Items (не авто) располагается под строчкой С ТОВАРОМ ПОКУПАЮТ.
Понимаю, что дело в расстановке <div class="clear clr"></div>, но своими силами ничего сделать не удалось.
Помогите, пожалуйста, разобраться с этим вопросом. Уверен, тема может быть актуальна многим пользователям
  • 0

#2 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 11 March 2013 - 07:54

id="related1" - замените на класс. id должен быть один в документе.
Для деления по колонкам можно использовать готовые классы width33, width25, width50, width20

В итоге для деления по колонкам нужно
В шаблоне full обрамить вывод позиции с Related Items (не авто) классом "related-items".
Вместо id="related1" использовать class="rborder column width25"

<?php
echo '<div class="related-items">';
    echo $this->renderPosition('<POSITION NAME>');
    echo '<div class="clear clr"></div>';
echo '</div>';

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



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


#3 Сердар

Сердар
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.4
  • posts: 67
  • topics: 13

Posted 11 March 2013 - 17:09

Спасибо за ответ!
1. В related.php заменяю id на вышеуказанный class="rborder column width25"
<?php
/**
 * JBZoo is universal CCK based Joomla! CMS and YooTheme Zoo component
 * @category   JBZoo
 * @author     smet.denis <admin@joomla-book.ru>
 * @copyright  Copyright (c) 2009-2012, Joomla-book.ru
 * @license    http://joomla-book.ru/info/disclaimer
 * @link       http://joomla-book.ru/projects/jbzoo JBZoo project page
 */
defined('_JEXEC') or die('Restricted access');
$align = $this->app->jbitem->getMediaAlign($item, $layout);
?>
<div class="rborder column width25">
<?php if ($this->checkPosition('image')) : ?>
    <div class="item-image align-<?php echo $align;?>">
        <?php echo $this->renderPosition('image');?>
    </div>
<?php endif; ?>
<div class="clear clr"></div>
<?php if ($this->checkPosition('title')) : ?>
    <h4 class="item-title"><?php echo $this->renderPosition('title'); ?></h4>
<?php endif; ?>
<div class="clear clr"></div>
<?php echo $this->renderPosition('rating', array('style' => 'block')); ?>
<ul><?php echo $this->renderPosition('properties', array('style' => 'list')); ?></ul>
<p><?php echo $this->renderPosition('links', array('style' => 'pipe')); ?></p>
<div class="clear clr"></div>
</div>
2. Использую тип Продукт (как на демо-сайта). В позиции Related шаблона Full располагаются Related items (не авто), ниже JBZOO Related Items:
Изображение
Нужно ли в этом случае обрамлять вывод позиции классом "related-items"?
Меняю шаблон Full по следующему адресу (media/zoo/applications/jbuniversal/templates/catalog/renderer/item/product): в конце вижу такую строчку
<?php echo $this->renderPosition('related', array('style' => 'jbblock', 'labelTag' => 'h2', 'clear' => true)); ?>
Меняю на
<?php 
echo '<div class="related-items">';
	echo $this->renderPosition('related', array('style' => 'jbblock', 'labelTag' => 'h2', 'clear' => true));
	echo '<div class="clear clr"></div>';
echo '</div>'; ?>
Результат, к сожалению, не радует: http://www.test.mos-...uj-k-t-10.html. Наверняка напортачил в related.php или необходимо для related items (не авто) выделить свою отдельную позицию?
  • 0

#4 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 12 March 2013 - 06:59

Я бы вам посоветовал начать изучать CSS, т.к вижу явного не понимания, как работают стили в браузере.
Как никак это основа-основ сайтостроя.

Нужно ли в этом случае обрамлять вывод позиции классом "related-items"?

Конечно нужно.

Вам нужно сделать отдельные позиции для разных типов related items
И обрамить только "не авто".


Скорее всего для "не авто" нужно сделать отдельный шаблон - копию related
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



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





Click to return to top of page in style!