Peut-on inclure des fichiers sql dans un plugin

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

  • [RÉGLÉ] Peut-on inclure des fichiers sql dans un plugin

    Bonjour,

    Je travaille sur un plugin mais qui devrait venir compléter des données d'un composant existant. Il faut donc faire quelques actions en base.

    Dans mon manifest j'ai mis ceci mais çà ne fonctionne pas. Les fichiers sont bien copiés mais pas exécutés.

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <extension version="2.5" type="plugin" group="appli" method="upgrade">
       <name>plg_appli_manu</name>
       <creationDate>2012-04-25 20:00</creationDate>
       <author>Emmanuel Lecoester</author>
       <authorEmail>Emmanuel LecoesterEMAIL</authorEmail>
       <authorUrl>Emmanuel LecoesterURL</authorUrl>
       <version>1.0 alpha</version>
       <copyright>All rights reserved</copyright>
       <license>GNU/GPL</license>
       <description>PLG_appli_manu_XML_DESCRIPTION</description>
       <files>
          <filename plugin="manu">manu.php</filename>
          <filename>index.html</filename>      
          <filename>appli_fic1.sql</filename>
          <filename>appli_fic2.sql</filename>
          <filename>appli_fic3.sql</filename>
       </files>
       <languages folder="language">
          <language tag="en-GB">en-GB/en-GB.plg_appli_manu.ini</language>
          <language tag="en-GB">en-GB/en-GB.plg_appli_manu.sys.ini</language>
          <language tag="fr-FR">fr-FR/fr-FR.plg_appli_manu.ini</language>
          <language tag="fr-FR">fr-FR/fr-FR.plg_appli_manu.sys.ini</language>
       </languages>
    	<install> <!-- Runs on install -->
    		<sql>
    			<file driver="mysql" charset="utf8">appli_fic1.sql</file>
    			<file driver="mysql" charset="utf8">appli_fic2.sql</file>
    			<file driver="mysql" charset="utf8">appli_fic3.sql</file>
    		</sql>
    	</install>
    </extension>
    Ma question : c'est possible d'exécuter du code sql via l'install d'un plugin ?

  • #2
    Re : Peut-on inclure des fichiers sql dans un plugin

    Bonsoir

    A ma connaissance, non. Le code SQL n'est pas connu pour des modules et des plugins.

    Il faut faire des requêtes en php; dans le constructeur du plugin pour initialiser ce qui doit l'être dans la base de données.

    Par exemple, pour mon composant, j'ai créé une petite fonction TableExists (dans /class/alleventstable.php en ligne 1238). Cette fonction permet donc de déterminer si une table est présente et si ce n'est pas le cas, je pourrais donc présumer que je dois créer ma table (instruction SQL de type CREATE TABLE).
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

    Commentaire


    • #3
      Re : Peut-on inclure des fichiers sql dans un plugin

      Envoyé par cavo789 Voir le message
      A ma connaissance, non. Le code SQL n'est pas connu pour des modules et des plugins.
      A ma connaissance oui, mais au prix de certaines astuces utilisant le code postinstall (mal documenté il est vrai).
      Pas de demande de support par MP.
      S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

      Commentaire


      • #4
        Re : Peut-on inclure des fichiers sql dans un plugin

        Envoyé par elecoest Voir le message
        Ma question : c'est possible d'exécuter du code sql via l'install d'un plugin ?
        Bonjour, Oui au prix de certaines précautions.

        Enters autres de savoir soit utiliser postinstall script, soit de vérifier dans le plugin les champs de la table.
        Dernière édition par jisse03 à 26/05/2012, 20h50
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : Peut-on inclure des fichiers sql dans un plugin

          Après réponses de Jisse, j'ai vérifié sur joomla.org et il a raison (oui, oui, il a toujours raison) : http://docs.joomla.org/Manifest_files

          Tu as un exemple de manifest pour un plugin qui est repris sur la page ci-dessus référencée : http://svn.joomla.org/project/cms/de...lpha/alpha.xml (qui présente quelques similitudes avec ton code )

          Cela devrait donc fonctionner. Rencontres-tu des problèmes / messages d'erreurs ?

          Tu pourrais programmer ton site local en error_reporting=E_ALL afin que Joomla affiche vraiment bien toutes les erreurs rencontrées.
          Christophe (cavo789)
          Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
          Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

          Commentaire


          • #6
            Re : Peut-on inclure des fichiers sql dans un plugin

            Je vais voir d'ici demain

            Mais je pense que si je ne m'en sort pas je vais m'orienter vers un composant et un plugin.

            Le composant je "maitrise" et le plugin simple aussi.

            Commentaire


            • #7
              Re : Peut-on inclure des fichiers sql dans un plugin

              Dans le cadre de ton projet que je connais un peu je ne pense pas qu'il faille investiguer la piste du composant. Tout devrait pouvoir se faire avec un bon plugin.
              Christophe (cavo789)
              Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
              Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

              Commentaire


              • #8
                Re : Peut-on inclure des fichiers sql dans un plugin

                Envoyé par cavo789 Voir le message
                Dans le cadre de ton projet que je connais un peu je ne pense pas qu'il faille investiguer la piste du composant. Tout devrait pouvoir se faire avec un bon plugin.
                *
                Si c'est pour un plugin All Events... d'ici peu une bonne surprise pour les développeurs...
                Pas de demande de support par MP.
                S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                Commentaire


                • #9
                  Re : Peut-on inclure des fichiers sql dans un plugin

                  euh... qui a dit boulet ?
                  Je suis en plugin mode upgrade donc pas en mode install donc normal qu'il n'installe pas mes tables...

                  Action manu : ne pas oublier de désinstaller son plugin avant de le réinstaller

                  OK je sors
                  Dernière édition par elecoest à 27/05/2012, 08h47

                  Commentaire


                  • #10
                    Re : Peut-on inclure des fichiers sql dans un plugin

                    Envoyé par elecoest Voir le message
                    euh... qui a dit boulet ?
                    A la sauce tomate les boulets ?

                    Pour ceux qui ne connaissent pas : http://www.marmiton.org/recettes/rec...ege_63705.aspx

                    @Jisse :
                    Christophe (cavo789)
                    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
                    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

                    Commentaire


                    • #11
                      Re : Peut-on inclure des fichiers sql dans un plugin

                      Envoyé par elecoest Voir le message
                      euh... qui a dit boulet ?
                      Je suis en plugin mode upgrade donc pas en mode install donc normal qu'il n'installe pas mes tables...

                      Action manu : ne pas oublier de désinstaller son plugin avant de le réinstaller

                      OK je sors
                      Même en mode upgrade, tu peux installer ou mettre à jour les tables.
                      Pas de demande de support par MP.
                      S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                      Commentaire


                      • #12
                        Re : Peut-on inclure des fichiers sql dans un plugin

                        Je suis d'accord mais dans ce cas là il faut qu'ils sont topés à installer en mode upgrade et pas <installation>

                        Commentaire

                        Annonce

                        Réduire
                        Aucune annonce pour le moment.

                        Partenaire de l'association

                        Réduire

                        Hébergeur Web PlanetHoster
                        Travaille ...
                        X