Показать теги статей в макете списка категорий

StackOverflow https://stackoverflow.com//questions/24012285

Вопрос

Я разрабатываю сайт, используя joomla 3.2.3, где я добавляю некоторые теги к своим статьям joomla, которые в статьях отображаются над их содержимым.

Для листинга я использую «Тип пункта меню:Статьи > Список категорий», и я хотел бы, чтобы он также отображал теги статей в списке, например.так:

[Название] [Автор] [Теги]

Поскольку joomla не поддерживает эту опцию в диспетчере статей для отображения тегов в List-Layout, я пытался добавить ее в список, редактируя файлы List-Layout.Здесь я сделал переопределение шаблона:

com_content > Категория

Включает в себя файлы-списки:

  • default.php
  • default.xml
  • default_article.php
  • default_children.php

Затем я попытался изменить этот файл, который создает макет списка:

.../templates/my_template/html/com_content/category/default_articles.php

Чтобы создать столбец тегов для макета списка, я добавил этот код в раздел около строки 100:

<?php if ($this->params->get('show_tags')) : ?>
   <th id="categorylist_header_tags">
         <?php echo JHtml::_('grid.sort', 'JTAG', 'tags', $listDirn, $listOrder); ?>
   </th>
<?php endif; ?>

Это создало и отобразило второй столбец в моем списке категорий с заголовком:Теги (если в опции «Менеджер статей» установлено значение «показать»)

И чтобы теги отображались в полях столбцов, я решил, что мне нужно добавить код для тегов в раздел около строки 181, где я пытался добавить этот код:

   </td>
<?php endif; ?>
<?php if ($this->params->get('show_tags', 1)) : ?>
   <<td headers="categorylist_header_tags" class="list-tags">
      <?php $this->item->tagLayout = new JLayoutFile('joomla.content.tags'); ?>
      <?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
         <?php echo JText::sprintf('JTAG', $article->tags->itemTags); ?>
   </td>
<?php endif; ?>

Это код, с которым мне нужна помощь, поскольку он не работает полностью, он показывает только текстовые «теги» (из «JTAG») в полях и не отображает тег статьи из кода:

<?php $this->item->tagLayout = new JLayoutFile('joomla.content.tags'); ?>
<?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>

который я взял из макета по умолчанию в представлении «Статьи», чтобы увидеть, как отображаются теги.Но этот код, по-видимому, не работает напрямую в макете списка категорий или не дает никакого эффекта.


Попробовал просмотреть этот пост:Теги статей, отображаемые в макете списка статей

Но мне не удалось заставить код в этом посте работать у меня:

Это было полезно?

Решение

Итак, если вы посмотрите на макет категории веб-ссылок, вы увидите, что теги для отдельных ссылок отображаются с помощью этого кода:

<?php $tagsData = $item->tags->getItemTags('com_weblinks.weblink', $item->id); ?>
<?php if ($this->params->get('show_tags', 1)) : ?>
    <?php $this->item->tagLayout = new JLayoutFile('joomla.content.tags'); ?>
    <?php echo $this->item->tagLayout->render($tagsData); ?>
<?php endif; ?>

Итак, что вам нужно сделать, это правильно настроить $tagsData, изменив имя псевдонима, а также убедиться, что переменная id верна.

Вы помещаете это в код для размещения отдельного элемента в списке, что означает blog_item.php файл, возможно, сразу после заголовка.

    <?php $this->item->tagLayout = new JLayoutFile('joomla.content.tags'); ?>
    <?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top