Php 在类别列表布局中显示文章标记

Php 在类别列表布局中显示文章标记,php,listview,joomla,joomla3.0,Php,Listview,Joomla,Joomla3.0,我正在开发一个使用joomla 3.2.3的网站,我在joomla文章中添加了一些标签,这些标签显示在文章内容上方 对于清单,我使用“菜单项类型:文章>类别列表”,我希望它也能显示列表中的文章标签,例如: [标题][作者][标签] 由于joomla在文章管理器选项中不支持在列表布局中显示标记的选项,因此我一直试图通过编辑列表布局文件将其添加到列表中。 在这里,我对以下内容进行了模板覆盖: com_内容>类别 其中包括列表文件: default.php default.xml default_ar

我正在开发一个使用joomla 3.2.3的网站,我在joomla文章中添加了一些标签,这些标签显示在文章内容上方

对于清单,我使用“菜单项类型:文章>类别列表”,我希望它也能显示列表中的文章标签,例如:

[标题][作者][标签]

由于joomla在文章管理器选项中不支持在列表布局中显示标记的选项,因此我一直试图通过编辑列表布局文件将其添加到列表中。 在这里,我对以下内容进行了模板覆盖:

com_内容>类别

其中包括列表文件:

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; ?>
<?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; ?>
这是我需要帮助的代码,因为它不能完全工作,它只显示字段中“JTAG”中的文本“tags”,而不显示代码中的文章标记:

<?php $this->item->tagLayout = new JLayoutFile('joomla.content.tags'); ?>
<?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
这是我从Articles视图默认布局中获取的,用于查看标记是如何呈现的。 但是,这段代码显然不直接在类别列表布局中工作,或者没有任何效果

尝试查看此帖子:


但是我无法让本文中的代码为我工作:

因此,如果您查看weblinks类别布局,您将看到单个链接的标记显示在以下代码中:

   </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; ?>
<?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; ?>

请显示您正在使用的确切代码,并检查您是否有该视图的布局覆盖。已更新我的问题,了解到目前为止我所做的工作,我已在其中添加了代码,我正在使用代码尝试并获得要显示的标记。我已经创建了问题开头提到的列表布局“default_article.php”的覆盖设置$tagsData我想你的意思是:不知道这里的别名是正确的,试过了。例如com_tags.tag'和其他,但只会导致类别列表出现致命错误,并显示以下消息:在第184行的目录/templates/your_template/html/com_content/category/default_articles.php中的非对象上调用成员函数getItemTags仍然会从$tagsData中获得致命错误。在我的问题中,请看一下我的代码当前的样子。您是否尝试过测试“weblinks category layout”中的代码是否在“category list layout”中工作以显示标记?weblinks中的代码为您提供了一个想法,我假设您正在确保变量具有相同的名称。我不是在为你写代码,我是在向你展示如何解决你的问题。您可能还想查看特色版面中的代码。你真的需要退后一步,确保你明白JLayouts是如何为我工作的,尽管我第一次将它粘贴在文章的底部,所以我几乎错过了它。