Inverser les éléments d'un flux RSS

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

  • [RÉGLÉ] Inverser les éléments d'un flux RSS

    Bonjour,
    Module mod_feed (fux RSS)
    J'aimerais inverser l'ordre d'affichage d'un flux RSS.
    J'ai tenté ce code à divers endroits du fichier helper.php mais sans résultats
    Code:
    ksort($rssDoc);
     foreach ($rssDoc as $key => $val) {
     echo "[$key] = $val";
     echo"\n"; }
    FICHIER HELPER.PHP
    Code:
    <?php
    /**
     * @package     Joomla.Site
     * @subpackage  mod_feed
     *
     * @copyright   Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
     * @license     GNU General Public License version 2 or later; see LICENSE.txt
     */
    
    defined('_JEXEC') or die;
    
    /**
     * Helper for mod_feed
     *
     * @since  1.5
     */
    class ModFeedHelper
    {
        /**
         * Retrieve feed information
         *
         * @param   \Joomla\Registry\Registry  $params  module parameters
         *
         * @return  JFeedReader|string
         */
        public static function getFeed($params)
        {
            // Module params
            $rssurl = $params->get('rssurl', '');
    
            // Get RSS parsed object
            try
            {
                $feed   = new JFeedFactory;
                $rssDoc = $feed->getFeed($rssurl);
    
    
            }
            catch (Exception $e)
            {
                return JText::_('MOD_FEED_ERR_FEED_NOT_RETRIEVED');
            }
    
            if (empty($rssDoc))
            {
                return JText::_('MOD_FEED_ERR_FEED_NOT_RETRIEVED');
            }
    
            if ($rssDoc)
            {
                return $rssDoc;
            }
    
            }
        }
    https://www.michel-pilato.fr/index.p...ualites/stages
    Dernière édition par WROOM à 29/08/2019, 12h13
    https://www.michel-pilato.fr

  • #2
    Pour les avoir dans quel ordre ? du plus récent au plus ancien ?

    Si c’est ça, va dans Composants / Fil d'actualité

    Cliquez sur l'image pour l'afficher en taille normale

Nom : fil actualite 1.jpg 
Affichages : 82 
Taille : 20,0 Ko 
ID : 2005595

    Puis clique sur Paramètres tout en haut à droite

    Cliquez sur l'image pour l'afficher en taille normale

Nom : fil actualite 2.jpg 
Affichages : 84 
Taille : 13,0 Ko 
ID : 2005596

    Et enfin dans Ordre des fils tu choisis Les plus récents en premier

    Cliquez sur l'image pour l'afficher en taille normale

Nom : fil actualite 3.jpg 
Affichages : 83 
Taille : 54,2 Ko 
ID : 2005598
    Fichiers joints
    woluweb aime ceci.
    Cordialement, Bruno28

    Joomla! 5.2 - php 8.3 - moneglisesurle.net

    >>> Adhérez à l'AFUJ : https://www.joomla.fr/association/adherer

    Commentaire


    • #3
      Bonjour,

      Bruno donne une solution qui semble correspondre car la capture d'écran semble montrer l'utilisation du module dans un article.
      Il suffit d'ajouter un lien de menu vers le fil d'actualité créé pour obtenir le résultat souhaité (à noter que la personnalisation est également possible
      depuis le lien de menu, les paramètres du composant détermine le choix global par défaut).

      Cependant mod_feed est indépendant du composant fil d'actualité, cela ne répond pas exactement à la question sur mod_feed

      A mon avis, il faut inverser les itérations au niveau de la boucle en effectuant un override de la vue (afin de ne pas modifier les fichiers de joomla).
      Il est conseillé de renommer cette surcharge afin de la selectionner dans les paramètres avancés du module.

      Donc de : 1. créer une surcharge de mod-feed,
      2. renommer et editer le default.php (par exemple le fichier ..templates/nomdutemplate/html/mod_feed/nomdufichier.php ),
      3. inverser l'incrémentation ($i--) de FOR en dessous de <!-- Show items --> (probablement la ligne 97),
      4. editer les paramètres du module pour choisir l'affichage défini dans le template dans "paramètres avancées".

      La méthode fonctionne (j'ai testé vite fait) mais il faut bien penser à activer le cache dans les paramètres du module et rendre le cache joomla actif pour éviter une reactualisation à chaque chargement de la page où le module est assigné. De mon expérience, les données externes ralentissent le chargement de page, le flux rss du site n'est pas toujours disponible et peut à lui seul bloquer la page.

      L'alternatif, c'est d'utiliser un module tiers de flux rss comme celui de joomlaworks : https://extensions.joomla.org/extens...s-feed-reader/
      avec une surcharge pour personnaliser et inverser l'ordre avec un array_reverse(). Le plus de cette extension, c'est que le cache est activé pour le module (peu importe si la configuration de joomla) et le temps de réactualisation peut être défini depuis les paramètres du module, le cache contient à la fois le texte mais également les images qui seront stockés et synchronisés directement à la dimension souhaitée via le service de mobify https://ir0.mobify.com/

      Dernière édition par daneel à 28/08/2019, 09h28
      Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

      Commentaire


      • #4
        @bruno28 merci,
        Mon hack c'est pour un module mais je vais voir pour le fil d'actualité.
        Pour mon hack j'ai trouvé sur le forum "developpez.net
        Code:
        if ($rssDoc)
        {
            $rssDoc->reverseItems();
            return $rssDoc;
        }
        https://www.michel-pilato.fr

        Commentaire


        • #5
          @daneel
          J'ai testé "Simple RSS Feed Reader".Je vais y revenir dessus.Sur leur forum ils ne répondent pas
          Pour la surcharge il faut copier le fichier helper.php dans template/html/module
          Pour l'instant j'ai mis le fil d'actualité en lien de menu.
          https://www.michel-pilato.fr

          Commentaire


          • #6
            Envoyé par WROOM Voir le message
            @daneel
            J'ai testé "Simple RSS Feed Reader".Je vais y revenir dessus.Sur leur forum ils ne répondent pas
            Pour la surcharge il faut copier le fichier helper.php dans template/html/module
            Que ce soit simple rss feed reader ou mod_feed, ce n'est pas le helper mais la vue.

            Pour effectuer une surcharge (override) et vérifier que l'on a bien effectué l'opération... :

            1. Menu extensions / templates choisissez templates (et non style)
            puis cliquer sur le lien "Détails et fichier" du template actif

            2. Choisissez l'onglet "créer des substitutions" puis cliquer sur la liste des modules : "mod_feed" ou sur le module simple read feed rss "mod_jw_srfr"

            3. EN FTP, dans le repertoire html de votre template, vous devez avoir obtenu un repertoire nommé "mod_feed" ou "mod_jw_srfr"
            Il contient le fichier default.php, renommer par exemple en "inverse.php". Dans le cas du module srfr, c'est le nom du repertoire (et pas le nom du fichier dans le repertoire)

            4. L'override est réalisé, il suffit de le selectionner dans le module Feed en backend dans "paramètres avancés" juste en dessous du nom du template on doit retrouver le nom du fichier.

            5. Pour inverser l'ordre, il suffit d'éditer le fichier de notre surcharge que l'on a créé...



            Dernière édition par daneel à 28/08/2019, 10h15
            Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

            Commentaire


            • #7
              @daneel
              Bonjour,
              Dans le cas du module srfr, c'est le nom du repertoire (et pas le nom du fichier dans le repertoire)
              Je comprend pas trop: c'est le répertoire qu'il faut renommer ? Je ne l'ai pas fais.
              L'override est réalisé, il suffit de le selectionner dans le module Feed en backend dans "paramètres avancés" juste en dessous du nom du template on doit retrouver le nom du fichier.
              J'ai réalisé l'override dans le template japuityiii pour le module srfr.Dans les paramétres avancés je ne vois pas le fichier.C'est bien dans Style de module. Sous japurityiii il y a T3Xhtml.
              https://www.michel-pilato.fr

              Commentaire


              • #8
                ok en version capture d'écran, ce sera peut être plus compréhensible...

                1. Création de la surcharge



                2. duplication du repertoire default et renomme "inverse"



                3. edition et modification de la vue inverse (le fichier du repertoire inverse à éditer se nomme default.php et doit rester default.php pour être reconnu par le module mod_jw_srfr).
                Cette spécificité est expliquée sur la page des paramètres du module de joomlaworks.





                4. Selection dans les paramètres du module du changement de modèle (layout) par "inverse"



                Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                Commentaire


                • #9
                  Resultat final : Le nombre de mots peut être défini dans les paramètres et le "lire la suite" est une traduction que l'on peut remplacer facilement...
                  L'image est proportionnelle à la largeur définie dans les paramètres. La surcharge comprend son propre fichier css que l'on peut éditer autant que le fichier de mise en forme.

                  Dernière édition par daneel à 29/08/2019, 08h56
                  Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                  Commentaire


                  • #10
                    OK ça fonctionne. Très bien expliqué. Je vous remercie.
                    https://www.michel-pilato.fr

                    Commentaire


                    • #11
                      Si le problème est réglé merci de l'indiquer.
                      Pour cela voir l'encadré ci-dessous.
                      Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide.
                      Confucius

                      Commentaire

                      Annonce

                      Réduire
                      Aucune annonce pour le moment.

                      Partenaire de l'association

                      Réduire

                      Hébergeur Web PlanetHoster
                      Travaille ...
                      X