Pregunta

Estoy desarrollando un sitio usando Joomla 3.2.3 donde he estado agregando algunas etiquetas a mis artículos de Joomla que en los artículos se muestran encima de su contenido.

Para listar utilizo el 'Tipo de elemento de menú:Artículos > Lista de categorías' y me gustaría que también muestre las etiquetas de los artículos en la lista, p.como esto:

[Título] [Autor] [Etiquetas]

Dado que Joomla no admite esta opción en la opción del administrador de artículos para mostrar etiquetas en el diseño de lista, he intentado agregarlo a la lista editando los archivos de diseño de lista.Aquí hice una anulación de plantilla de:

com_content > Categoría

Que incluye los archivos de lista:

  • predeterminado.php
  • predeterminado.xml
  • artículo_predeterminado.php
  • default_children.php

Luego intenté modificar este archivo, que crea el diseño de lista:

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

Para crear la columna de etiquetas para el diseño de lista, agregué este código en la sección alrededor de la línea 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; ?>

Esto creó y muestra una segunda columna en mi vista de lista de categorías con el título del encabezado:Etiquetas (si están configuradas para 'mostrar' en la opción Administrador de artículos)

Y para que las etiquetas se muestren en los campos de las columnas, pensé que necesitaba agregar un código para las etiquetas en la sección alrededor de la línea 181, donde intenté agregar este código:

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

Este es el código con el que necesito ayuda, ya que no funciona completamente, solo muestra el texto 'etiquetas' (del 'JTAG') en los campos y no muestra la etiqueta del artículo del código:

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

que tomé del diseño predeterminado de la vista Artículos para ver cómo se representan las etiquetas.Pero aparentemente este código no funciona directamente en el diseño de la lista de categorías o no da ningún efecto.


Intenté echar un vistazo a esta publicación:Etiquetas de artículos que se muestran en el diseño de lista de artículos

Pero no he podido hacer que el código de esta publicación funcione para mí:

¿Fue útil?

Solución

Entonces, si observa el diseño de la categoría de enlaces web, verá que las etiquetas para enlaces individuales se muestran con este código:

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

Entonces, lo que debe hacer es configurar $tagsData correctamente cambiando el nombre del alias y también asegurándose de que la variable id sea correcta.

Pones esto dentro del código para el diseño de un elemento individual en el significado de la lista en el blog_item.php archivo posiblemente justo después del título.

    <?php $this->item->tagLayout = new JLayoutFile('joomla.content.tags'); ?>
    <?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top