
Best Answer Soft , 02 June 2013 - 12:25
Конечно, Денис. Просто был занят новой проблемой, о которой в конце.
1) Все делаем согласно этой инструкции , кроме пункта 5 и 7. Эти пункты не нужны. НО код из пункта 5 мы используем далее для формирования таблицы.
Файл positions.xml немного модифицируем
- <?xml version="1.0" encoding="utf-8"?>
- <renderer>
- <positions layout="full">
- <position name="title">Title</position>
- <position name="subtitle">Subtitle</position>
- <position name="likes">Likes</position>
<position name="rating">Rating</position>
<position name="image">Image</position>
<position name="anons">Anons</position>
<position name="meta">Meta</position>
<position name="tab-text">Tab-text</position>
<position name="tab-gallery">Tab-gallery</position>
<position name="tab-properties">Tab-properties</position>
<position name="tab-reviews">Tab-reviews</position>
<position name="tab-comments">Tab-comments</position>
</positions>
- <positions layout="teaser">
- <position name="cell1">Table cell #1</position>
- <position name="cell2">Table cell #2</position>
- <position name="cell3">Table cell #3</position>
- <position name="cell4">Table cell #4</position>
- <position name="cell5">Table cell #5</position>
- </positions>
- </renderer>
(Инструкция подходит и для готовых типов, только придется файлы и папки назвать верно, и поля называть соответственно)
2)Скопируйте <ITEM-TPL>/product/full.php в <ITEM-TPL>/table-item/
3)Далее, файл приводим к такому виду(изменения выделил жирным):
<?php
defined('_JEXEC') or die('Restricted access');$this->app->jbassets->tablesorter();$align = $this->app->jbitem->getMediaAlign($item, $layout);echo $this->renderPosition('title', array('style' => 'jbtitle'));echo $this->renderPosition('subtitle', array('style' => 'jbsubtitle'));echo $this->renderPosition('likes', array('style' => 'jbblock','class' => 'align-left'));echo $this->renderPosition('rating', array('style' => 'jbblock','class' => 'align-right',));?><?php $this->app->jbassets->jQueryUi(); ?><div class="clear clr"></div><div class="rborder item-body"><?php if ($this->checkPosition('image')) : ?><div class="item-image align-<?php echo $align;?>"><?php echo $this->renderPosition('image'); ?></div><?php endif; ?><?php if ($this->checkPosition('anons')) : ?><div class="item-anons"><?php echo $this->renderPosition('anons'); ?></div><?php endif; ?><?php if ($this->checkPosition('meta')) : ?><hr/><div class="item-meta"><?php echo $this->renderPosition('meta', array('style' => 'jbblock','labelTag' => 'strong','tag' => 'p')); ?></div><?php endif; ?><div class="clear clr"></div></div><?php if ( $this->checkPosition('tab-text')|| $this->checkPosition('tab-gallery')|| $this->checkPosition('tab-properties')|| $this->checkPosition('tab-reviews')|| $this->checkPosition('tab-comments')) :$positionParams = array('style' => 'jbblock','tag' => 'div','labelTag' => 'h3','clear' => true);?><div id="jbzoo-tabs" class="rborder"><ul><?php if ($this->checkPosition('tab-text')) : ?><li><a href="<?php echo $this->app->jbenv->getCurrentUrl();?>#tab-text"><?php echo JText::_('JBZOO_ITEM_TAB_DESCRIPTION');?></a></li><?php endif; ?><?php if ($this->checkPosition('tab-properties')) : ?><li><a href="<?php echo $this->app->jbenv->getCurrentUrl();?>#tab-properties"><?php echo JText::_('JBZOO_ITEM_TAB_PROPS');?></a></li><?php endif; ?><?php if ($this->checkPosition('tab-gallery')) : ?><li><a href="<?php echo $this->app->jbenv->getCurrentUrl();?>#tab-gallery"><?php echo JText::_('JBZOO_ITEM_TAB_GALLERY');?></a></li><?php endif; ?><?php if ($this->checkPosition('tab-reviews')) : ?><li><a href="<?php echo $this->app->jbenv->getCurrentUrl();?>#tab-reviews"><?php echo JText::_('JBZOO_ITEM_TAB_REVIEWS');?></a></li><?php endif; ?><?php if ($this->checkPosition('tab-comments')) : ?><li><a href="<?php echo $this->app->jbenv->getCurrentUrl();?>#tab-comments"><?php echo JText::_('JBZOO_ITEM_TAB_COMMENTS');?> (<?php echo $item->getCommentsCount();?>)</a></li><?php endif; ?></ul><table class="jsTableSorter tablesorter zebra"><thead><tr align="center"><th>cell1</th><th>cell2</th><th>cell3</th><th>cell4</th><th>cell5</th>
</tr></thead><tbody ><?php if ($this->checkPosition('tab-text')) : ?><div id="tab-text"><?php echo $this->renderPosition('tab-text', $positionParams); ?></div></tbody></table><?php endif; ?><?php if ($this->checkPosition('tab-gallery')) : ?><div id="tab-gallery"><?php echo $this->renderPosition('tab-gallery', $positionParams); ?></div><?php endif; ?><?php if ($this->checkPosition('tab-properties')) : ?><div id="tab-properties"><ul class="item-properties"><?php echo $this->renderPosition('tab-properties', array('style' => 'list'));?></ul></div><?php endif; ?><?php if ($this->checkPosition('tab-reviews')) : ?><div id="tab-reviews"><?php echo $this->renderPosition('tab-reviews', $positionParams); ?></div><?php endif; ?><?php if ($this->checkPosition('tab-comments')) : ?><div id="tab-comments"><?php echo $this->renderPosition('tab-comments', $positionParams); ?></div><?php endif; ?></div><?php $this->app->jbassets->jQueryUi(); ?><script type="text/javascript">jQuery(function ($) {$('#jbzoo-tabs').tabs();});</script><?php endif; ?>
4)Теперь в шаблоне Full в поле tab-text вставляем Related Items (auto) (или Pro) и получаем таблицу.
Теперь о плохом.
Видимо, из-за jQuery возникает следующая проблема: таблица показывается во всех активных вкладках, при этом не в ее вкладке к ней добавляется информация, размещенная в этих вкладках.
Проблема возникает только при вызове в поля вкладок функций Related ....(разных).
Получается для одной вкладки такой фокус работает, но зачем тогда надо таблицу "прятать" в одну вкладку...?
Очень нужна данная функциональность!
Может кто-нибудь в курсе, как такое сделать? :excl:
Go to the full post