override [mod_related_items]

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

  • [RÉGLÉ] override [mod_related_items]

    Bonjour,

    j'aimerais rendre plus sexy l'affichage des articles en relations. avec par exemple une photo petit format et un début de texte de quelques caractères qui seraient repris de la description de l'article .
    je pensais overrider le module [mod_related_items].

    Pouvez vous me donner des pistes pour cette réalisation ?

    merci d'avance à tous
    Site d'entraide pour les utilisateur francophones de la CRM Vtiger https://aide-crm-vt.fr/
    Pour des extensions au top : http://joomlack.fr
    Pour la sécurité et l'optimisation : http://www.aesecure.com/ <--- Incontournable !
    Pour des petites choses sympa : http://lomart.fr

  • #2
    Re : override [mod_related_items]

    Salut Casper,

    Tu ajoutes un var_dump($item); dans la boucle de mod_related_items/tmpl/default.php pour voir ce que tu récupères comme infos.
    Après il ne te reste plus qu'à les mettre en page

    PS. Sympa ta signature
    UP, le plugin universel à découvrir sur https//up.lomart.fr
    bgMax
    , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

    Commentaire


    • #3
      Re : override [mod_related_items]

      Bonjour,

      Je viens de regarder un peu: il manque la zone introtext pour que tout soit parfait. Donc, il faut toucher au helper.php, ce qui ne se fait pas avec un simple override: il faut passer par une substitution.

      Donc, au niveau de ton template, il faut
      - sélectionner Templates au lieu de Styles
      - cliquer sur ton template pour afficher "détails et fichiers"
      - cliquer sur l'onglet "créer des substitutions"
      - sélectionner le module "mod_related_items"

      Cela crée dans le répertoire html de ton template un répertoire mod_related_items qui viendra se substituer à l'original.

      Dans helper.php, à la ligne 109, ajouter
      Code:
       ->select('a.introtext')
      Dans le fichier default.php, ajouter l'introtext:
      Code:
      <li>
      	<a href="<?php echo $item->route; ?>">
      		<?php if ($showDate) echo JHtml::_('date', $item->created, JText::_('DATE_FORMAT_LC4')) . " - "; ?>
      		<?php echo $item->title; ?></a>
      		<p class="mod-articles-category-introtext">
      			<?php echo $item->introtext; ?>
      		</p>
      
      </li>
      Avec ça, vous devriez avoir ce qui vous convient.

      Bon, ok, l'image est un peu grosse, pas de panique, ajouter une ligne dans le CSS
      Code:
      .relateditems img {width:50px;};
      J'ai mis 50px, mais, vous pouvez mettre ce que vous souhaitez.

      Attention: à chaque mise à jour de Joomla!, il faut vérifier que cela fonctionne toujours, comme pour les overrides.

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

      Commentaire


      • #4
        Re : override [mod_related_items]

        En fait, après vérification, la zone introtext est bien envoyé à votre default.php.

        Donc, un override standard permet de s'en sortir: création d'un répertoire mod_related_items dans le répertoire html de votre template avec votre default.php devrait faire l'affaire. Il suffit d'ajouter <p><?php echo $item->introtext; ?></p>.

        Après, pour la taille de l'image, vous pouvez modifier votre CSS comme suggéré.

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

        Commentaire


        • #5
          Re : override [mod_related_items]

          comme ceci ?
          Oui comme cela tu as tous les champs utilisables
          Tu peux récupérer uniquement les x premiers caractères de l'introtext par:
          Code:
          substr(strip_tags($item->introtext),x);
          et récupérer la première image par quelque chose comme cela :
          Code:
                  $images  = json_decode($item->images);
                  if (isset($images->image_intro) && !empty($images->image_intro)) {
                  echo '<img src='.$images->image_intro.'>'.$images->image_intro;}
          UP, le plugin universel à découvrir sur https//up.lomart.fr
          bgMax
          , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

          Commentaire


          • #6
            Re : override [mod_related_items]

            PS. Sympa ta signature
            pas de quoi je trouve que tes extensions sont un peu comme celle de Joomlack (Cédric.K), elles sont simple à utiliser, bien pensées, vont à essentielles et fond le boulot sans bricolage et poudre de perlinpinpin .

            du cou j'ai installé ton module sur tous mes sites qui utilisent les blogs de catégories et blogs d'articles.
            Après coup, l'utilisation est enfantine
            Je te remercie d'avoir pris un peu de ton temps
            Site d'entraide pour les utilisateur francophones de la CRM Vtiger https://aide-crm-vt.fr/
            Pour des extensions au top : http://joomlack.fr
            Pour la sécurité et l'optimisation : http://www.aesecure.com/ <--- Incontournable !
            Pour des petites choses sympa : http://lomart.fr

            Commentaire


            • #7
              Re : override [mod_related_items]

              Bonjour,

              je patauge je n'arrive pas a écrire du code qui ne face pas planter la page
              manque de notion en php
              Site d'entraide pour les utilisateur francophones de la CRM Vtiger https://aide-crm-vt.fr/
              Pour des extensions au top : http://joomlack.fr
              Pour la sécurité et l'optimisation : http://www.aesecure.com/ <--- Incontournable !
              Pour des petites choses sympa : http://lomart.fr

              Commentaire


              • #8
                Re : override [mod_related_items]

                Salut Casper,

                Je viens de m'apercevoir que j'ai oublié les guillemet
                Code:
                $images  = json_decode($item->images);
                if (isset($images->image_intro) && !empty($images->image_intro)) {
                echo '<img src=[COLOR="#FF0000"][B]"[/B][/COLOR]'.$images->image_intro.'[COLOR="#FF0000"][B]"[/B][/COLOR]>'.$images->image_intro;}
                Sinon tu peux m'enoyer ton code que je regarde ....
                UP, le plugin universel à découvrir sur https//up.lomart.fr
                bgMax
                , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

                Commentaire


                • #9
                  Re : override [mod_related_items]

                  Salut,

                  j'ai ceci :s je suis un peu géné de montrer ça

                  Code PHP:
                  <?php
                  /**
                  * @package Joomla.Site
                  * @subpackage mod_related_items
                  *
                  * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved.
                  * @license GNU General Public License version 2 or later; see LICENSE.txt
                  */

                  defined('_JEXEC') or die;
                  ?>
                  <ul class="relateditems<?php echo $moduleclass_sfx?>">
                  <?php foreach ($list as $item) :    ?>
                  <li>
                  <a href="<?php echo $item->route?>">
                  <?php if ($showDate) echo JHtml::_('date'$item->createdJText::_('DATE_FORMAT_LC4')) . " - "?>
                  <?php 
                  echo $item->title?>
                  <?php $images 
                  json_decode($item->images);
                  if (isset(
                  $images->image_intro) && !empty($images->image_intro)) {
                  echo 
                  '<img src="'.$images->image_intro.'">'.$images->image_intro;} ?> 
                  <?php $substr(strip_tags($item->introtext),x);?></a>
                  </li>
                  <?php endforeach; ?>
                  </ul>
                  Site d'entraide pour les utilisateur francophones de la CRM Vtiger https://aide-crm-vt.fr/
                  Pour des extensions au top : http://joomlack.fr
                  Pour la sécurité et l'optimisation : http://www.aesecure.com/ <--- Incontournable !
                  Pour des petites choses sympa : http://lomart.fr

                  Commentaire


                  • #10
                    Re : override [mod_related_items]

                    Bonsoir,

                    C'est pas mal, le problème est sur cette ligne :
                    Code PHP:
                    <?php $substr(strip_tags($item->introtext),x);?></a>
                    qui devrait être :
                    Code PHP:
                    <?php echo substr(strip_tags($item->introtext),150);?></a>
                    echo pour afficher le résultat
                    substr est une fonction, pas de préfixes $
                    quand je disais : Tu peux récupérer uniquement les x premiers caractères de l'introtext
                    il fallait remplacer x par le nombre désiré.

                    Je n'ai pas testé, donc pas de garantie que cela marche
                    UP, le plugin universel à découvrir sur https//up.lomart.fr
                    bgMax
                    , AdminOrder, MetaData, Zoom, ArtPlug, Custom, Memo, Filter, ... sur http://lomart.fr/extensions

                    Commentaire


                    • #11
                      Re : override [mod_related_items]

                      Donc, il faut toucher au helper.php
                      pas forcement.
                      Vu que tu est dans une surcharge et non dans le cadre d'un module perso, le plus simple est d aller chercher les infos directement dans la base de données.

                      Comme cela tes modifs passent les mises à jour....ce qui n est pas le cas des modifs du fichier helper.php.

                      perso, j utilise souvent cette fonction joomla quand j ai besoin d'afficher du contenu de ma base de données dans une surcharge.

                      Si je modifies le fichier helper.php, c est que je suis dans un clone d'un module existant, ou que je crees un nouveau module..
                      La methode la plus propre pour obtenir ce qu il souhaites est de créer un module modifié en copiant le dossier mod_related_items sur le bureau.
                      Tu renommes le nom du dossier en mod_related2 par exemple.
                      Ensuite tu changes toutes les occurences de mod_related_items en mod_related2 dans touts les fichiers .
                      tu modifies le fichier helper.php, le fichier default.php en ajoutant ce que tu veux faire.
                      Tu compresse ton dossier et tu reinstalles.
                      Dernière édition par lefabdu51 à 29/08/2016, 08h10

                      Commentaire


                      • #12
                        Re : override [mod_related_items]

                        Bonjour,

                        tout d'abord merci à tous

                        @lefabdu51 je suis prêt à me jeter à l'eau mais je vais avoir besoin de tes palmes pourrais tu me réexpliquer plus précisément, j'ai du mal à assimiler toutes tes explications je suis quelques level en dessous de toi et @lomart
                        Site d'entraide pour les utilisateur francophones de la CRM Vtiger https://aide-crm-vt.fr/
                        Pour des extensions au top : http://joomlack.fr
                        Pour la sécurité et l'optimisation : http://www.aesecure.com/ <--- Incontournable !
                        Pour des petites choses sympa : http://lomart.fr

                        Commentaire


                        • #13
                          Re : override [mod_related_items]

                          c'est en cours je t envoies le code des que j ai le temps de le tester.

                          Commentaire


                          • #14
                            Re : override [mod_related_items]

                            Envoyé par lefabdu51 Voir le message
                            c'est en cours je t envoies le code des que j ai le temps de le tester.
                            Tu es adorable merci de ton aide
                            Site d'entraide pour les utilisateur francophones de la CRM Vtiger https://aide-crm-vt.fr/
                            Pour des extensions au top : http://joomlack.fr
                            Pour la sécurité et l'optimisation : http://www.aesecure.com/ <--- Incontournable !
                            Pour des petites choses sympa : http://lomart.fr

                            Commentaire


                            • #15
                              Re : override [mod_related_items]

                              Le code ci dessous est à integrer directement dans le fichier /html/mod_related_items/default.php du template.
                              Il remplace tout le code existant dans ce fichier.
                              Pense à remplacer le prefixe de la table par celui correspondant à ton installation.
                              Code:
                              <?php
                              /**
                               * @package     Joomla.Site
                               * @subpackage  mod_articles_latest
                               *
                               * @copyright   Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved.
                               * @license     GNU General Public License version 2 or later; see LICENSE.txt
                               */
                              
                              defined('_JEXEC') or die;
                              ?>
                              <ul class="latestnews<?php echo $moduleclass_sfx; ?>">
                              <?php foreach ($list as $item) : 
                              // on recuperes l'id de l'élément devant être affiché
                              $value = $item->id;
                              // on crées la requête
                              $db = JFactory::getDbo();
                              $query = $db->getQuery(true);
                              // la requete sous la forme Joomla
                              // remplacer ys5ta par le prefixe des tables dans l'installation
                              $query->select('introtext,images');
                              $query->from($db->quoteName('ys5ta_content'));
                              $query->where($db->quoteName('id')." = ".$db->quote($value));
                              // on remet la requete à 0 et on charges le resultat de la requete dans un tableau associatif
                              //si setQuery est inexistant, alors seul le dernier résultat est pris en compte et est affiché pour chaque boucle
                              // La boucle est passée sans réexcuter la requete.
                              $db->setQuery($query);
                              $data=$db->loadAssoc();
                              // Les propriétés des images sont au format json. Donc il faut décoder celles ci pour s'en servir dans php.
                              $var = json_decode($data['images']);
                                ?>
                              	<li itemscope itemtype="https://schema.org/Article">
                              		<a href="<?php echo $item->link; ?>" itemprop="url">
                              			<span itemprop="name">
                              				<?php echo $item->title; ?>
                              			</span></a>
                              			<!-- on affiches 'limage et son texte alternatif -->
                              			<img src="<?php echo $var->{'image_intro'};?>"  alt="<?php echo $var->{'image_intro_alt'}; ?>" /> 
                              			<!-- on affiches le texte d'introduction de l'article associé -->
                              			<?php echo $data['introtext']; ?> 
                              		
                              	</li>
                              <?php endforeach; ?>
                              </ul>

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X