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
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>
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>
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:
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.