web-dev-qa-db-fra.com

Modifier la page de balises Joomla Tags

Je souhaite afficher le texte d'introduction de l'article et l'image de l'article avec un lien vers l'article complet dans la page des résultats pour les tags Joomla.

Y at-il un moyen de faire cela, ou comment puis-je modifier le code pour obtenir les résultats attendus?

J'ai essayé d'ajouter des composants\com_tags\views\tag\tmpl\default_items.php <?php echo $this->item->introtext; ?> mais ça ne marche pas là comme dans d’autres cas. Je ne connais pas assez le php, alors j'aimerais savoir s'il y a d'autres suggestions.

Merci

4
gag

Essayez ceci (testé et travaillé dans Joomla 3.3.0):

Mettez ce code:

<?php
//introtext
echo $item->text;
//image
$images  = json_decode($item->core_images);
echo '<img src="'.$images->image_intro.'">';
//get category name by id
$db = JFactory::getDbo();
$id = $item->core_catid;
$db->setQuery("SELECT cat.title FROM #__categories cat WHERE cat.id='$id'");
$category = $db->loadResult();
echo '<p>'.$category.'</p>';
?>

dans ce fichier:

templates/yourtemplate/html/com_tags/tag/default_items.php

cela devrait être copié de:

composants\com_tags\views\tag\tmpl\default_items.php

entre ces deux lignes

<?php foreach ($items as $i => $item) : ?> //Line 63 <?php endforeach; ?>

Vous pouvez utiliser n'importe laquelle de ces variables (<?php echo $item->useonefromthelist; ?>) Pour modifier la sortie de la balise:

type_alias
content_item_id 
core_content_id
match_count 
tag_date
core_title
core_alias
core_body
core_state
core_access 
core_metadata
core_created_user_id 
core_created_by_alias 
core_created_time 
core_images 
core_modified_time 
core_language 
core_catid 
core_publish_up 
core_publish_down 
content_type_title 
router 
author 
author_email 
link 
displayDate
event
text
core_params

Comment je reçois cette liste?

<pre>
<?php print_r($item); ?>
</pre>
7
Joomla Agency

Cette solution a très bien fonctionné pour moi. Le texte d'introduction étant encore trop long, je l'ai réduit à 300 caractères. Voir ci-dessous. J'ai ajouté le code principal dans la première réponse ci-dessus juste après la balise h3, puis je viens de modifier la portion de texte d'introduction. Je n'ai pas utilisé le nom de la catégorie. J'ai ajouté le lien vers l'article principal dans le lien lire plus et aussi pour la ...

Voici le code total que j'ai utilisé dans Joomla 3.6, y compris le tag h3 ...

<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
//image
$images  = json_decode($item->core_images);
echo '<p><img class="intro-image" src="'.$images->image_intro.'"></p>';                  
//introtext
$limit =300;
if (strlen($item->text) > $limit) {
echo (substr($item->text, 0, $limit)) ?> <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)); ?>">...</a>
<?php
}
else {
echo $item->text;
}
?>
<p>
<a class="read-more" href="<?php echo JRoute::_(TagsHelperRoute::getItemRoute($item->content_item_id, $item->core_alias, $item->core_catid, $item->core_language, $item->type_alias, $item->router)); ?>">Read more</a>
</p> 
0
Donald Ax

Premièrement, la modification directe de la substitution de modèle in situ n’est pas recommandée.

Google html remplace pour plus d'informations mais en bref, pour le cas ci-dessus:

  • copiez le dossier tmpl à partir de components\com_tags\views\tag dans templates/yourtemplate/html/com_tags /
  • renommer le tag

Vous pouvez le modifier là où il ne sera pas écrasé après une mise à jour.

Pour ce que vous voulez faire ci-dessus, je pense que vous trouverez cela plus compliqué que vous ne le pensez. Quelle sortie voudriez-vous où une balise est liée à plus d'un article? Ce que je voudrais faire ici est de modifier un module qui fait déjà presque tout ce que vous voulez. Quelque chose comme le module "Tags similaires". Il serait plus facile d’en faire une version modifiée et de l’appeler dans la page de résultats de la balise.

0
BodgeIT