probleme $data dans onContentPrepareForm

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

  • [RÉGLÉ] probleme $data dans onContentPrepareForm

    salut
    j'utilise un plugin sytem avec onContentPrepareForm($form, $data).
    J'ai une condition comme celle là :

    Code PHP:
    if ($form->getName() == 'com_modules.module' && $data->module == 'mod_mymodule'
    avec cette condition les champs supplémentaires ne sont pas sauvegardés dans la base, alors que si j'utilise cette condition

    Code PHP:
    if ($form->getName() == 'com_modules.module'
    alors ça fonctionne

    pour info j'ai déjà testé la condition $data->module == 'mod_mymodule' et elle retourne la valeur TRUE

    dès que j'utilise la variable $data les champs ne sont plus enregistrés
    Help !
    Ced
    Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
    http://www.template-creator.com Outil de création de templates
    Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

  • #2
    Re : probleme $data dans onContentPrepareForm

    Salut

    Une bêtise : as-tu déjà testé en séparant bien les conditions avec des parenthèses ?

    Et un var_dump de $data avant ton test ?
    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 : probleme $data dans onContentPrepareForm

      salut christophe, merci de m'aider parce que là je me sens seul
      Et un var_dump de $data avant ton test ?
      j'ai le contenu de la variable et $data->module égal bien ma valeur, d'ailleurs le test est vérifié.
      En fait le test conditionne le chargement des champs, et les champs se chargent ! (condition vraie), mais ils ne s'enregistrent pas sauf si la condition est vraie mais sans le $data->module

      c'est assez bizarre ...
      Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
      http://www.template-creator.com Outil de création de templates
      Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

      Commentaire


      • #4
        Re : probleme $data dans onContentPrepareForm

        j'ai trouvé le probleme, c'est que dans la phase d'enregistrement lorsque joomla lance la fonction "save" du model de com_modules, alors la variable $data est vide !

        ce qui fait que ma condition est fausse et ne charge pas les champs supplémentaires dans JForm lors de l'enregistrement, j'ai donc modifié ma condition comme cela :
        Code PHP:
        if ($form->getName() != 'com_modules.module' 
                        
        && $form->getName() != 'com_menus.item'
                        
        || ($form->getName() == 'com_modules.module' && $data && $data->module != 'mod_articles_news'))
                    return; 
        en testant si $data n'est pas vide
        voili voila, des heures d'investigation, j'espère que ça pourra en aider
        Ced
        Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
        http://www.template-creator.com Outil de création de templates
        Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

        Commentaire


        • #5
          Re : probleme $data dans onContentPrepareForm

          Hello,

          Rest donc à passer le sujet en Réglé
          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


          • #6
            Re : probleme $data dans onContentPrepareForm

            heureusement que t'es là JC !!
            Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
            http://www.template-creator.com Outil de création de templates
            Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

            Commentaire


            • #7
              Re : probleme $data dans onContentPrepareForm

              Envoyé par ced1870 Voir le message
              heureusement que t'es là JC !!
              Je l'avais vu aussi mais comme tu es plus costaud que moi; ben, j'ai pas osé te faire la remarque...

              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 : probleme $data dans onContentPrepareForm

                Envoyé par cavo789 Voir le message
                Je l'avais vu aussi mais comme tu es plus costaud que moi; ben, j'ai pas osé te faire la remarque...

                MDR, tu as raison il vaut mieux être prudent
                Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
                http://www.template-creator.com Outil de création de templates
                Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

                Commentaire


                • #9
                  Re : probleme $data dans onContentPrepareForm

                  Bonjour je suis entrain de développer un petit plugin qui utilise le même évènement "oncontentprepareform", jusqu'ici j'avais fait des templates, des modules, des composants mais pas encore de plugin et je rencontre un petit soucis. J'ajoute des champs au formulaire du composant contact (côté front), je fais donc un :

                  if($form->getName() == "com_contact.contact" )

                  Le problème est que le formulaire côté admin et côté front ont le même nom... ("com_contact.contact") donc quand je veux faire une modif dans l'admin il me dit qu'il manque des champs obligatoire... Y a t'il un moyen de les différencier ?
                  Open IT - Développement web

                  Commentaire


                  • #10
                    Re : probleme $data dans onContentPrepareForm

                    Bon en fait j'ai trouvé une solution mais qui n'est pas très "propre", je test l’existence d'un champ qui n'est présent que dans le formulaire coté front :

                    $form->getField("contact_message")

                    Et c'est réglé, si vous avez une meilleure idée je suis preneur.

                    Bonne journée.
                    Open IT - Développement web

                    Commentaire


                    • #11
                      Re : probleme $data dans onContentPrepareForm

                      salut
                      moi j'utilise un truc du genre :
                      $app = JFactory::getApplication();

                      // si pas en frontend, on sort
                      if ($app->isAdmin()) {
                      return false;
                      }
                      Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
                      http://www.template-creator.com Outil de création de templates
                      Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

                      Commentaire


                      • #12
                        Re : probleme $data dans onContentPrepareForm

                        Bonjour

                        Envoyé par ced1870 Voir le message
                        $app = JFactory::getApplication();

                        // si pas en frontend, on sort
                        if ($app->isAdmin()) {
                        return false;
                        }


                        [Mode pointilleux]
                        Et pourquoi pas simplement
                        Code PHP:
                        if (!JFactory::getApplication()->isSite())) return false
                        Imaginons que, demain, il y ait trois interfaces : admin, site et trucBidule. Avec ton test, si c'est isTrucBidule() on passe alors que ton commentaire dit "si pas en frontend".


                        [/Mode pointilleux]
                        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


                        • #13
                          Re : probleme $data dans onContentPrepareForm

                          oui mais là mon commentaire est juste, et puis tant pis je les mets pour moi les commentaires
                          sinon le raccourci ok, mais si j'utilise la variable $app ailleurs dans mon code je prèfre alors ma solution qu'appeler le JFactory à chaque fois
                          Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
                          http://www.template-creator.com Outil de création de templates
                          Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

                          Commentaire


                          • #14
                            Re : probleme $data dans onContentPrepareForm

                            Lol

                            Juste une remarque : sauf erreur de ma part, avec ton code càd en appelant immédiatement isAdmin (ou isSite) tu vas lever une erreur type E_STRICT car ces deux méthodes ne sont pas déclarées comme statique or ton appel est lui statique.

                            En passant par JFactory::getApplication(), ton appel est valide puisque voici la déclaration de getApplication() :

                            Code PHP:
                            public static function getApplication($id null, array $config = array(), $prefix 'J'
                            Pour s'en convaincre, mets ceci avant ton appel :

                            Code PHP:
                            ini_set('display_errors',1);
                            error_reporting (E_ALL 
                            C'était la minute de maître Capello :-D
                            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


                            • #15
                              Re : probleme $data dans onContentPrepareForm

                              je n'ai aucune erreur strict chez moi, et j'ai tous les params php et joomla en strict
                              Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
                              http://www.template-creator.com Outil de création de templates
                              Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X