Mostra i tag dell'articolo nel layout della lista della categoria
Domanda
Sto sviluppando un sito utilizzando Joomla 3.2.3 Dove ho aggiunto alcuni tag ai miei articoli Joomla che negli articoli vengono visualizzati sopra è il contenuto.
Per la quotazione I Uso il tipo di menu 'MENU TIPO: Articoli> Elenco delle categorie' e vorrei aver visualizzato anche gli articoli tag nell'elenco, ad es. In questo modo:
[Titolo] [Autore] [Tag]
Poiché Joomla non supporta questa opzione nell'opzione Gestore di articoli per mostrare i tag nel layout dell'elenco, ho tentato di aggiungerlo all'elenco modificando i file di layout di elenco. Qui ho fatto un'override del modello di:
Com_content> Categoria
Che include i file list:
- .
- default.php
- default.xml
- default_article.php
- default_children.php
Allora ho provato a modificare questo file, che crea il layout dell'elenco:
... / Modelli / My_Template / HTML / Com_Content / Categoria / Default_Articles.php
Per creare la colonna Tag per il layout dell'elenco ho aggiunto questo codice nella sezione attorno alla riga 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; ?>
.
Questo ha creato e visualizza una 2a colonna nella mia visualizzazione di elenco della categoria con il titolo dell'intestazione: Tag (se impostato su "Mostra" nell'opzione Manager di articoli)
E per ottenere i tag da visualizzare nei campi della colonna, ho pensato che devo aggiungere un codice per i tag nella sezione attorno alla linea 181, dove ho provato ad aggiungere questo codice:
</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; ?>
.
Questo è il codice con cui ho bisogno di aiuto, poiché non funziona completamente, mostra solo i "tag del testo" (dal "Jtag") nei campi e non visualizza il tag dell'articolo dal codice :
<?php $this->item->tagLayout = new JLayoutFile('joomla.content.tags'); ?>
<?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
.
che ho preso dagli articoli Visualizza il layout predefinito per vedere come vengono resi i tag. Ma questo codice attualmente non funziona direttamente nel layout della lista delle categorie o non fornisce alcun effetto.
.
ha provato a dare un'occhiata a questo post: Articolo Tags mostrato nell'elenco degli articoli in layout
Ma non è stato in grado di ottenere il codice in questo post per funzionare per me:
Soluzione
Quindi se guardi il layout di categoria del web links vedrai che i tag per i singoli collegamenti sono visualizzati con questo codice:
<?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; ?>
.
Quindi ciò che devi fare è configurare il $ TagsData modifica correttamente il nome dell'alias e assicurarsi anche che la variabile ID sia corretta.
Si inserisce questo interno il codice per il layout di un singolo elemento sul significato dell'elenco nel file blog_item.php
possibilmente dopo il titolo.
<?php $this->item->tagLayout = new JLayoutFile('joomla.content.tags'); ?>
<?php echo $this->item->tagLayout->render($this->item->tags->itemTags); ?>
.