Créer un module

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

  • Créer un module

    Bonjour,
    Je débute le développement Joomla.

    J'essaie de développer un module (Que j'appelle mod_crmchrono), j'ai créé:
    • Un dossier mod_crmchrono


    J'y ai déposé les fichiers suivants:
    • mod_crmchrono.php.
    • mod_crmchrono.xml.
    • helper.php.
    • index.html



    Dans le dossier mod_crmchrono, j'ai créé un dossier tmpl dans laquel j'ai déposé:
    • index.html
    • defaut.php


    J'ai transféré le dossier avec tout ce qu'il contient avec Filezilla dans le dossier modules de mon site.

    Je n'arrive pas à afficher mon module dans la liste des modules.

    Quelqu'un développe-t-il ds modules pour m'aiguiller ?

    Cordialement.
    Eric

  • #2
    Re : Créer un module

    Bonjour,

    Pour qu'il soit reconnu, votre module doit être installé (donc, les informations doivent être dans la base de données).

    Donc, soit vous créez un zip et vous installez à partir du zip, soit vous mettez votre module dans un répertoire autre que modules (tmp, par exemple) et l'installation copiera tout dans les bons répertoires.

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

    Commentaire


    • #3
      Re : Créer un module

      Salut,
      +1 avec pmleconte
      Mais il faut aussi que ton fichier mod_monmodule.xml soit correctement écrit.
      Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

      Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

      Commentaire


      • #4
        Re : Créer un module

        Bonjour,
        Merci pour votre aide.

        J'ai suivi cela:


        Voici mon fichier XML:

        <?xml version="1.0" encoding="utf-8"?>
        <extension type="module" version="3.1.0" client="site" method="upgrade">
        <name>Chrono!</name>
        <author>Eric Fagault</author>
        <version>1.0.0</version>
        <description>Chronomètre.</description>
        <files>
        <filename>mod_crmchrono.xml</filename>
        <filename module="mod_crmchrono">mod_crmchrono.php</filename>
        <filename>index.html</filename>
        <filename>helper.php</filename>
        <filename>tmpl/default.php</filename>
        <filename>tmpl/index.html</filename>
        </files>
        <config>
        </config>
        </extension
        >

        A quoi sert <config> </config> puisque c'est vide ?

        J'ai zippé mon module, mais je ne peux pas l'installer, j'ai un message d'erreur:

        Alerte
        JInstaller: :Install: le fichier n'existe pas /home/editinfo/www/crm/tmp/install_579f1df60b20e/mod_crmchrono/tmpl/default.php
        Module %s : Could not copy files from the source


        Quel est ce fichier ?

        Cordialement.

        Eric
        Dernière édition par Agrepe à 01/08/2016, 11h23

        Commentaire


        • #5
          Re : Créer un module

          Le fichier .xml a l'air le plus simple à écrire, mais en fait c'est celui qui demande le plus de précision.

          Si cela peut t'aider, regarde le fichier .xml d'un module à moi et qui marche :
          joomla module add multiple CSS and JS files. Contribute to ghazal/mod_multijscss development by creating an account on GitHub.


          J'ai utilisé <folder>tmpl</folder> pour tout ce qui est dans /tmpl/
          Pas besoin de mettre <filename>mod_crmchrono.xml</filename>
          <files>
          <filename module="mod_tonmodule">mod_tonmodule.php</filename>
          <filename>index.html</filename>
          <filename>mod_tonmodule.xml</filename>
          <folder>tmpl</folder>
          </files>

          Un conseil : développe ton module en local, c'est quand même plus pratique.
          Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

          Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

          Commentaire


          • #6
            Re : Créer un module

            Merci beaucoup, j'étais justement en train de comparer avec des fichiers de modules existants.
            Je crois comprendre ce que je devrais mettre entre les balises <config> et </config>

            Je regarde ce que tu as fait
            Dernière édition par Agrepe à 01/08/2016, 11h39

            Commentaire


            • #7
              Re : Créer un module

              Merci encore,
              J'ai observé ton XML, j'ai tenté d'adapté le mien, j'ai commenté, peux-tu me dire si j'ai bien compris ?
              Cordialement.
              Eric

              <?xml version="1.0" encoding="utf-8"?>
              <extension
              type="module"
              version="3.1"
              method="upgrade"
              client="site">

              <name>Chrono!</name>
              <author>Eric Fagault</author>
              <creationDate>August 2016</creationDate>
              <copyright>Copyright (C) 2005 - 2016 Open Source Matters. All rights reserved.</copyright>
              <license>GNU General Public License version 2 or later; see LICENSE.txt</license>
              <authorEmail>mon@email.fr</authorEmail>
              <authorUrl> </authorUrl>
              <version>1.0.0</version>
              <description>Chronomètre</description>

              <!-- Ici ce sont les chemins pour charger les CSS, images, js ? -->
              <media folder="media" destination="mod_crmchrono">
              <filename>index.html</filename>
              <folder>css</folder>
              <folder>images</folder>
              <folder>js</folder>
              </media>

              <files>
              <filename>mod_crmchrono.xml</filename>
              <filename>index.html</filename>
              <filename>helper.php</filename>
              <filename>tmpl/default.php</filename>
              <filename>tmpl/index.html</filename>
              <folder>tmpl</folder>
              </files>

              <!-- Ici ce sont les chemins pour charger les ini de langues ? quand ils seront créés ? -->
              <languages folder="language">
              <language tag="en-GB">en-GB/en-GB.mod_crmchrono.ini</language>
              <language tag="en-GB">en-GB/en-GB.mod_crmchrono.sys.ini</language>
              <language tag="fr-FR">fr-FR/fr-FR.mod_crmchrono.ini</language>
              <language tag="fr-FR">fr-FR/fr-FR.mod_crmchrono.sys.ini</language>
              </languages>

              <!-- Qu'est-ce ? -->
              <help key="JHELP_EXTENSIONS_MODULE_MANAGER_CUSTOM_HTML" />

              <config>
              </config>
              </extension>
              Dernière édition par Agrepe à 01/08/2016, 11h56

              Commentaire


              • #8
                Re : Créer un module

                Je commente dans l'ordre de ton affichage.

                * fait attention aux commentaires (<!-- xxx--> ) dans le fichier xml, parfois ça ne passe pas. Va savoir ...
                * si tu écris le path d'un fichier dans .xml, il faut absolument que ce fichier existe dans ton package.

                * <description>Chronomètre</description>
                LOL. 2e galère, les fichiers .ini
                Conseil : apprends dès maintenant à les écrire.
                Ils doivent être écrits sur un fichier au format utf8-nobom. Il faut que ton éditeur de code définisse correctement ce format. Notepad le définit par UTF8, ca devrait convenir.
                Tu les écris comme tu veux,
                Ex :
                <description>TRUCMUCHE_DESC</description>
                à condition que ce soit repris correctement dans les fichiers .ini

                <!-- Ici ce sont les chemins pour charger les CSS, images, js ? -->
                <media folder="media" destination="mod_crmchrono">
                <filename>index.html</filename>
                <folder>css</folder>
                <folder>images</folder>
                <folder>js</folder>
                </media>
                Exact.
                Là, j'ai respecté l'API joomla.

                Ce code va envoyer tes fichiers js et css + les images dans un dossier /mod_crmchrono/ localisé dans /media/ créé (à la volée ?) lors de l'installation du module et donc de l'implémentation du fichier .xml
                Il faut bien sur que ces fichiers existent dans un dossier nommé /media/ de ton package.

                Tu les appelles de la façon suivante dans ton php
                JHtml::_('script', 'mod_crmchrono/fichier.js', false, true);
                JHtml::_('stylesheet', 'mod_crmchrono/fichier.css', false, true);

                NB : Dans mon module, les fichiers js et css ne sont pas appelés de cette manière parce que je voulais pouvoir appeler n'importe quel fichiers js ou css

                <filename>tmpl/default.php</filename>
                <filename>tmpl/index.html</filename>
                Inutile puisque tu mets :
                <folder>tmpl</folder>
                <!-- Ici ce sont les chemins pour charger les ini de langues ? quand ils seront créés ? -->
                Again, il faut que ces fichiers existent pour que l'installation se passe bien.

                <!-- Qu'est-ce ? -->
                <help key="JHELP_EXTENSIONS_MODULE_MANAGER_CUSTOM_HTML" />
                Une explication pas mal :
                Modules: What is the "Help Key"? - Joomla! -> http://forum.joomla.org/viewtopic.php?t=639599

                Une référence utile :
                Help36:Help screens - Joomla! Documentation -> https://docs.joomla.org/Help36:Help_screens

                Hope it helps.
                Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

                Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

                Commentaire


                • #9
                  Re : Créer un module

                  Juste une petit truc pour vérifier que votre XML est correct (la moindre erreur vous envoie un beau "JInstaller: :Install: impossible de trouver un fichier d'initialisation XML Joomla!").

                  Pour vérifier la syntaxe d'un fichier xml, de la part de lefabdu51:

                  Upload XML and XSL files and validate their syntax


                  ou

                  W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.


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

                  Commentaire


                  • #10
                    Re : Créer un module

                    Merci, j'ai "checker" mon XML, il n'y a à priori pas d'erreur.

                    j'ai apporté quelques modifications à ce que j'avais initialement fait (conformément à ce que préconise ghazal)

                    J'ai zippé tout mon dossier puis ai tenté de l'installer.

                    J'ai maintenant ce message d'erreur:
                    Alerte
                    Module Installer : aucun fichier de module spécifié

                    C'est mon fichier mod_crmchrono.php ?

                    Quel est ce fichier de module ?

                    Cordialement.

                    Eric
                    Dernière édition par Agrepe à 01/08/2016, 14h42

                    Commentaire


                    • #11
                      Re : Créer un module

                      Je n'avais pas vu que tu avais oublié mod_crmchrono.php
                      <files>
                      <filename module="mod_crmchrono">mod_crmchrono.php</filename>
                      etc...
                      Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

                      Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

                      Commentaire


                      • #12
                        Re : Créer un module

                        Bonjour,

                        Merci beaucoup.
                        Effectivement j'ai oublié de remettre mod_crmchrono.php.

                        J'ai ajouté la ligne, je retrouve un nouveau message d'erreur:

                        Alerte
                        JInstaller: :Install: le fichier n'existe pas /home/editinfo/www/crm/tmp/install_57a04cfc15b82/mod_crmchrono/tmpl/default.php

                        Module %s : Could not copy files from the source


                        Quel est ce dossier install_57a04cfc15b82 ?
                        Je ne le vois pas dans mon arborescence.

                        La ligne Module %s, me dit que la copie de default.php est impossible.
                        Ce fichier existe dans mod_crmchrono/tmpl et est: (J'ai aussi essayé sans or die( 'Restricted access' ) )

                        <?php // no direct access
                        defined( '_JEXEC' ) or die( 'Restricted access' ); ?>
                        <?php echo $hello; ?>


                        Et la variable $chrono est dans mod_chronoform.php :


                        <?php

                        /**
                        * @version CVS: 1.0.1
                        * @package com_crmchrono
                        * @subpackage mod_crmchrono
                        * @author Eric Fagault <eric.fagault@laposte.net>
                        * @copyright Copyright (C) 2015. Tous droits réservés.
                        * @license GNU General Public License version 2 ou version ultérieure ; Voir LICENSE.txt
                        */
                        // no direct access
                        defined('_JEXEC') or die();
                        // Include the syndicate functions only once
                        require_once( dirname(__FILE__).'/helper.php' );

                        $chrono = modCrmchronoHelper::getChrono( $params );
                        require( JModuleHelper::getLayoutPath( 'mod_crmchrono' ) );
                        ?>
                        Dernière édition par Agrepe à 02/08/2016, 08h54

                        Commentaire


                        • #13
                          Re : Créer un module

                          Tu pourrais m'envoyer ton module par MP ?
                          Ou sur ce fil.
                          Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

                          Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

                          Commentaire


                          • #14
                            Re : Créer un module

                            Je te l'envoie tout de suite.
                            Merci beaucoup.

                            Commentaire


                            • #15
                              Re : Créer un module

                              je voulais t'envoyer mon ZIP, mais je dois être idiot, je ne vois pas comment joindre une pièce, ni ici ni en MP ?

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X