Я ошибся. Это как раз то. Я не посмотрел, что перед выводом сначала теги получаются... понял это когда исправил добавил аналогичные строки в модель тега, перемудрил, но разобрался. Спасибо!
А как сделать в три колонки этот список
1. Создаём папку
templates/шаблон/html/com_tags/tag, копируем туда файл
default_items.php из
components/com_tags/views/tag/tmpl;
2. В файле нужно заменить вывод. Код начинающийся с
<?php foreach ($items as $i => $item) : ?>
заменяем на следующий:
<?php $colCount = 3; ?>
<?php foreach ($items as $i => $item) : ?>
<?php if ($i % $colCount == 0) : ?>
<div class="row-block cat-list-row">
<?php endif; ?>
<?php if ($item->core_state == 0) : ?>
<div class="list-item system-unpublished">
<?php else: ?>
<div class="list-item" style="width:200px; display: inline-block; vertical-align: top;">
<h3>
<a href="<?php echo JRoute::_(TagsHelperRoute::getItemRoute($item->content_item_id, $item->core_alias, $item->core_catid, $item->core_language, $item->type_alias, $item->router)); ?>">
<?php echo $this->escape($item->core_title); ?>
</a>
</h3>
<?php endif; ?>
<?php echo $item->event->afterDisplayTitle; ?>
<?php /*=== tags ===*/
$tagsHelper = new JHelperTags;
$tags = $tagsHelper->getItemTags('com_content.article', $item->content_item_id);
if (!empty($tags)) {
$tagLayout = new JLayoutFile('joomla.content.tags');
echo $tagLayout->render($tags);
}
/* === end tags === */?>
<?php $images = json_decode($item->core_images);?>
<?php if ($this->params->get('tag_list_show_item_image', 1) == 1 && !empty($images->image_intro)) :?>
<img src="<?php echo htmlspecialchars($images->image_intro);?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>">
<?php endif; ?>
<?php if ($this->params->get('tag_list_show_item_description', 1)) : ?>
<?php echo $item->event->beforeDisplayContent; ?>
<span class="tag-body">
<?php echo JHtml::_('string.truncate', $item->core_body, $this->params->get('tag_list_item_maximum_characters')); ?>
</span>
<?php echo $item->event->afterDisplayContent; ?>
<?php endif; ?>
</div>
<?php if (($i % $colCount == ($colCount -1)) || ($i == count($this->items)-1)) : ?>
</div>
<?php endif; ?>
<?php endforeach; ?>
Код этот особо не тестировал, но приблизительно так.
Стили в CSS выносим. Если ширина для списка не фиксированная, то можно просто выводить без строк блоки с фиксированной шириной и они сами будут размещаться столько сколько влезет. Правда могут быть проблемы с выравниванием по верхнему краю нескольких элементов.