Hack / Duplication d'un module ?

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

  • [Problème] Hack / Duplication d'un module ?

    Bonjour,


    je vais devoir modifier le comportement d’un module. J’ai bien identifié le fichier php sur lequel intervenir et pensais faire un override.
    Le problème c’est que ce module est déjà utilisé par le template dans certaines pages et que là je ne dois pas modifier son comportement…

    Comment faire ?
    - dupliquer le module, le renommer et le modifier ? Et là j’aurais besoin d’un bon tuto avec tout le process à faire…
    - ne garder qu’un seul module mais mettre des if à l’intérieur du fichier php pour distinguer quand je l’utilise avec mes modifications. Par exemple en affectant un certain « Module Class Suffix » . Genre :
    if ($params->get (‘moduleclass_sfx’) == « Hack_Paul") {
    Mais bon ce n’est pas très propre…


    Merci pour vos conseils
    Paul

  • #2
    Si par "comportement" vous voulez parler de l'affichage des données par le module, vous pouvez créer une nouvelle "vue" (pour autant que le module soit conforme au design MVC préconisé par Joomla!) et assigner la version du module que vous souhaitez à cette nouvelle vue, laissant les autres sur le template par défaut.
    Tous les services pour les sites Joomla! : sécurité, nettoyage de sites piratés, hébergement, SEO, applications Fabrik, migration, compatibilité mobiles, accessibilité, ...
    Administrateur certifié Joomla! 3
    https://www.betterweb.fr

    Commentaire


    • #3
      Ah oui, peut-être que je peux m'en sortir comme ça...
      Comment faire fonctionner ces "simples" nouvelles vues ?

      Et si c'est un peu plus "compliqué" ( = vues + comportement du module ), comment faire ?

      Commentaire


      • #4
        Par créer une nouvelle vue, entendez-vous créer une nouvelle occurence d'un module, sans toucher au code php ?
        Si oui, le code de ce module serait le même pour chaque occurence et ce que je cherche à faire est plus compliqué que ça.

        Quand je dis qu'il me faudra changer le comportement du module, ce n'est pas seulement de choisir d'autres paramètres parmi ceux proposés dans la page back office de la nouvelle occurence du module (suis-je clair ?).
        Il faudra en plus que je change le code php du module pour qu'il fasse d'autres choses que ce pour quoi il a été développé initialement.

        Comment faire ?

        Commentaire


        • #5
          Bonjour , quel module voulez vous modifier? Vous pouvez dupliquer le fichier défaut.php d'un module joomla, le renommer et assigner cette vue dans les params du module. Des infos ici : https://docs.joomla.org/Understanding_Output_Overrides
          I love overrides
          -------
          UX/UI Designer - Grenoble - greendog.fr

          Commentaire


          • #6
            Si c'est réellement changer le fonctionnement du module, le seul moyen est d'en créer un autre. Vous pouvez partir de celui-là comme "modèle" en le dupliquant, lui donnant un nouveau nom, l'installant sur le site et le modifiant selon vos besoins.
            Tous les services pour les sites Joomla! : sécurité, nettoyage de sites piratés, hébergement, SEO, applications Fabrik, migration, compatibilité mobiles, accessibilité, ...
            Administrateur certifié Joomla! 3
            https://www.betterweb.fr

            Commentaire


            • #7
              Oui je pense que la solution c'est faire ce que tu proposes.
              (le lien de wabaw, sauf erreur, semble ne pas convenir dans mon cas)

              Est-ce que le process c'est :
              - Dupliquer le répertoire du module. Genre : "mod_articles_latest" en "mod_articles_latest_new"
              - Renommer les fichiers php et xml avec le nouveau nom
              - Faire un Find/Replace global de "mod_articles_latest" par "mod_articles_latest_new" dans tout le contenu des fichiers du nouveau répertoire.

              Est-ce tout ?
              - J'imagine que les settings du nouveau module sont inscrits dans la base de données. Comment faire ? Les tables sont créées automatiquement à l'utilisation du module ou à l'installation ?
              - Idem pour l'admin Joomla : est-ce qu'à l'installation d'un module, il y a une écriture dans une table générale répertoriant les modules installés ?

              Merci pour vos lumières !
              ;-)
              Dernière édition par Mister Paul à 15/02/2018, 10h37

              Commentaire


              • #8
                La procédure :
                1. Télécharger en local le dossier du module à dupliquer
                2. Renommer le dossier comme vous le proposer
                3. Renommer les fichiers .php et .xml avec le nouveau nom
                4. Modifier le fichier .xml pour tenir compte du nouveau nom
                5. Modifier le fichier .php pour tenir compte du nouveau nom
                6. S'il y en a, modifier les noms des fichiers langues
                7. Zipper le dossier du module
                8. Installer le module comme n'importe quelle extension J!

                S'il n'y a pas d'erreur à l'installation, c'est que les modifications de nom sont correctes.
                Vous avez maintenant un nouveau module. Vous pouvez passer alors aux modifications du comportement du module sur la version en ligne pour pouvoir tester les effets.
                Mister Paul aime ceci.
                Tous les services pour les sites Joomla! : sécurité, nettoyage de sites piratés, hébergement, SEO, applications Fabrik, migration, compatibilité mobiles, accessibilité, ...
                Administrateur certifié Joomla! 3
                https://www.betterweb.fr

                Commentaire


                • #9
                  Ah oui bien vu les étapes 7 et 8 !
                  Merci !

                  Commentaire

                  Annonce

                  Réduire
                  Aucune annonce pour le moment.

                  Partenaire de l'association

                  Réduire

                  Hébergeur Web PlanetHoster
                  Travaille ...
                  X