Ajouter des images, intro text... au module natif tags similaires

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Ajouter des images, intro text... au module natif tags similaires

    Bonjour

    J'utilise des tags pour mon blog. Je souhaite afficher les articles en relation avec ces tags.
    J'utilise donc le module "tags similaires" : ok fonctionne très bien mais je n'ai que les titres des articles.
    J'aimerai avoir également : l'introtext, lien lire la suite et l'image d'intro.
    J'ai beau essayé tout un tas de solutions, je n'y arrive pas.

    Voici mes essais :
    Code PHP:
    <?php

    defined
    ('_JEXEC') or die;

    JLoader::register('TagsHelperRoute'JPATH_BASE '/components/com_tags/helpers/route.php');

    ?>

    <?php if ($list) : ?>
    <ul class="tagssimilar">
    <?php foreach ($list as $i => $item) : ?>
        <?php if (empty($item->core_title)) continue; ?>
        <li>
            <?php if (($item->type_alias == 'com_users.category') || ($item->type_alias == 'com_banners.category')) : ?>
                <?= htmlspecialchars($item->core_titleENT_COMPAT'UTF-8'?>
            <?php else: $item->route = new JHelperRoute?>
                <a href="<?= JRoute::_(TagsHelperRoute::getItemRoute($item->content_item_id$item->core_alias$item->core_catid$item->core_language$item->type_alias$item->router)) ?>">
                    <?= htmlspecialchars($item->core_titleENT_COMPAT'UTF-8'?>
                </a>
            <?php endif ?>

    <? //Begin Test1.1 : https://joomla.stackexchange.com/questions/814/modify-joomla-tags-result-page?rq=1 ?>
    <?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->text0$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;
    }
    ?>
    <? //End Test1.1 ?>

    <? //Begin Test1.2 : https://joomla.stackexchange.com/questions/814/modify-joomla-tags-result-page?rq=1 ?>
    <?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>';
    ?>
    <? //End Test1.2 ?>

    <? //Begin Test2 : https://joomla.stackexchange.com/questions/17422/adding-images-to-latest-articles-module ?>

            <?php // This gets the image data associated with the article and processes it so PHP can use it properly. ?>
            <?php $images json_decode($item->images); ?>

            <?php // This checks the Intro Image exists and isn't empty. ?>
            <?php if (isset($images->image_intro) && !empty($images->image_intro)) : ?>

                <?php // This displays it. ?>
                <div class="thumbnail item-image">
                    <img src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>" itemprop="image"/>
                </div>

            <?php endif; ?>

    <? //End Test2 ?>        

    <? //Begin Test3 : https://www.joomlashack.com/blog/joomla/most-read-intro-images/ ?>
    <?php $images json_decode($item->images); ?>

        <div class="span4">

          <?php if( $images->image_intro ) : ?>
              <img src="/<?php echo $images->image_intro?>" alt="<?php echo htmlspecialchars($item->title); ?>" />
          <?php endif; ?>

            <a href="/<?php echo $item->link?>">
                <?php echo $item->title?></a>
        </div>
    <? //End Test3 ?>        

        </li>
    <?php endforeach ?>
    </ul>
    <?php else : ?>
    <span><?= JText::_('MOD_TAGS_SIMILAR_NO_MATCHING_TAGS'?></span>
    <?php endif ?>
    Quelqu'un peu-'il m'aider ?
    Merci

  • #2
    Bonjour,

    Le contenu de votre table $list est généré par le fichier modules/mod_tags_similar/helper.php en utilisant une requête SQL dans laquelle les champs que vous appelez ne sont pas définis.

    Donc, sauf si vous l'avez modifiée, elle contient en standard :
    Code:
            $query = $db->getQuery(true)
                ->select(
                    array(
                        $db->quoteName('m.core_content_id'),
                        $db->quoteName('m.content_item_id'),
                        $db->quoteName('m.type_alias'),
                        'COUNT( ' . $db->quoteName('tag_id') . ') AS ' . $db->quoteName('count'),
                        $db->quoteName('ct.router'),
                        $db->quoteName('cc.core_title'),
                        $db->quoteName('cc.core_alias'),
                        $db->quoteName('cc.core_catid'),
                        $db->quoteName('cc.core_language'),
                        $db->quoteName('cc.core_params'),
                    )
                );
    C'est-à-dire pas de zone images, ni d'introduction de l'article, juste son titre et son id.

    Avec l'id de l'article, vous devez pouvoir récupérer les informations manquantes.

    Pascal
    If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

    Commentaire


    • #3
      Merci pour ta réponse

      Du coup si je dois modifier le fichier helper.php, ce style de fichier peut être fait en override ?

      Commentaire


      • #4
        Sauf erreur de ma part, le fichier helper n'est pas "overridable".

        Il faut que les modifications soient dans le fichier d'override default.php. Dans la mesure où $list contient l'id de l'article (m.content_item_id), il est possible de récupérer ce qui manque de l'article soit en passant par le model Article, soit par une requête SQL simple sur #__content (comme cela a été fait en début du default.php pour la catégorie)

        Pascal
        If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

        Commentaire


        • #5
          Bonjour et merci pour ton aide Pascal.

          N'étant pas développeur, c'était un peu compliqué pour moi. J'ai cherché différentes solutions. J'ai trouvé de l'aide ici et je le poste pour ceux qui recherchent la solution :
          For the native Joomla module "Similar Tags", we have only the article title. How to have also the introtext and the intro image? Here is the native code with my code tests : defined('_JEXEC') or ...


          Il serait bien que tous les modules natifs puissent avoir, selon les cas, depuis l'administration du module différentes configurations possibles sans avoir besoin de créer des overrides :
          • afficher texte : intro/complet
          • afficher image : intro/complet
          • etc
          Création de sites internet : http://www.crealys-web.fr

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X