désactiver un module depuis un formulaire rsform pro

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

  • [RÉGLÉ] désactiver un module depuis un formulaire rsform pro

    Bonjour à tous,

    j'ai cette requête dans php my admin
    Code PHP:
    UPDATE `loxx_modulesSET `published` = '0' WHERE `loxx_modules`.`id` = 114
    qui désactive un module, j'essaie de faire cette action depuis un formulaire rsform pro
    pouvez-vous m'aider?
    j'ai une case à cocher 0|désactivé et 1|activé
    pour le moment j'ai ceci dans la partie script de rsform pro:
    Code PHP:
    $db Joomla\CMS\Factory :: getDbo ( ) ;
    $module Joomla\CMS\Helper\ModuleHelper::getModule();
     
    $db->setQuery("UPDATE `#__modules ` SET `published` = ".$db->escape($_POST['form']['choix'])." WHERE `#__modules`.`id` = 114");
     
    $db->query();​ 
    Merci d'avance de votre aide

  • #2
    Bonjour,

    Plusieurs choses:
    1) => remplace ta dernière ligne de code par :
    Code PHP:
    $db->setQuery($query);

    $result $db->execute();​ 
    2) le problème d'une case à cocher c'est que si non cochée elle ne t'envoi aucune valeur, met plutot un bouton radio oui/non avec 1/0 en valeurs

    Commentaire


    • #3
      Bonjour merci pour votre réponse, j'ai changé pour des butons radio, et ajouter vos lingnes, mais j'ai cette erreur: syntax error, unexpected end of file
      Code PHP:
      $db Joomla\CMS\Factory :: getDbo ( ) ;
      $module Joomla\CMS\Helper\ModuleHelper::getModule();
       
      $db->setQuery("UPDATE `#__modules ` SET `published` = ".$db->escape($_POST['form']['choix'])." WHERE `#__modules`.`id` = 114");
       
      $db->setQuery($query);
      $result $db->execute();​  ​ 
      voyez-vous autre chose?

      Commentaire


      • #4
        Envoyé par doublemetre Voir le message
        voyez-vous autre chose?
        en examinant la fin de la ligne $result = $db->execute();​ ​
        on a des éléments invisibles (espaces insécable, tab) après le point-virgule.



        C'est peut être le copier/coller dans le forum mais par défaut, supprime les caractères invisibles ou réécrit la ligne.
        Dernière édition par daneel à 12/07/2024, 01h14
        Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

        Commentaire


        • #5
          Merci j'ai en effet enlever les espaces, mais j'ai toujours le même message.

          Commentaire


          • #6

            Bonjour, j'ai testé ton idée...

            Voici le code que j'ai utilisé dans la zone :
            Script called after form has been processed​
            afin d'executer la requête après avoir cliqué sur le bouton d'envoi du formulaire

            Code PHP:
            use Joomla\CMS\Factory;
            $db Factory::getDbo();
            $published $_POST['form']['choix'][0];
            $query $db->getQuery(true)
            ->
            update($db->quoteName('#__modules'))
            ->
            set($db->quoteName('published') . ' = ' $db->quote($published))
            ->
            where($db->quoteName('id') . ' = ' $db->quote(114));
            $db->setQuery($query);
            $db->execute();​ 

            J'ai bien défini un champ "choix" proposant des boutons radio non et oui ( oui étant selectionné par défaut donc la valeur "1" ) :

            Code:
            0|non
            1[c]|oui​
            Après avoir soumis le formulaire, le module à l'id 114 se désactive ou se réactive sans erreurs.
            Dernière édition par daneel à 13/07/2024, 08h26
            Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

            Commentaire


            • #7
              Bonjour merci de prendre du temps pour moi, j'ai testé et tout fonctionnne Merci, je cherche cela depuis un bon moment.
              du coup j'ai encore une demande, est-ce que c'est possible de reprendre l'état du module dans les boutons radio, si il est déjà activé ou pas, j'ai aucun idée si cela est possible.

              Commentaire


              • #8
                Envoyé par doublemetre Voir le message
                Bonjour merci de prendre du temps pour moi, j'ai testé et tout fonctionnne Merci, je cherche cela depuis un bon moment.
                du coup j'ai encore une demande, est-ce que c'est possible de reprendre l'état du module dans les boutons radio, si il est déjà activé ou pas, j'ai aucun idée si cela est possible.
                ok, ce qui est important c'est de supprimer le "c" dans la liste des boutons radio "choix"

                Code:
                0|non
                1|oui​​
                donc le champ "choix" ne comporte pas de selection par défaut, ce qui va simplifier le travail pour la suite.

                On effectue une nouvelle requête pour connaître l'état de publication du module et indiquer cette valeur par défaut.

                Insère le code suivant dans "Script called on form display" afin d'indiquer justement cet état.

                Code PHP:
                use Joomla\CMS\Factory;
                $moduleId 114;
                $db Factory::getDbo();
                $query $db->getQuery(true)
                ->
                select($db->quoteName('published'))
                ->
                from($db->quoteName('#__modules'))
                ->
                where($db->quoteName('id') . ' = ' $db->quote($moduleId));

                $db->setQuery($query);
                $published $db->loadResult();

                $formLayout str_replace('name="form[choix]" value="'.$published.'"''name="form[choix]" value="'.$published.'" checked="checked"'$formLayout);​ 
                Explication de code : J'utilise la fonction str-replace pour ajouter checked="checked" au bouton radio "choix", celui-ci doit avoir la même valeur($published) que l'état (0 ou 1).
                Comme indiqué dans rsform, on modifie le code html du formulaire déjà défini dans $formlayout

                Testé avec succès !




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

                Commentaire


                • #9
                  Un grand merci cela fonctionne à merveille. MERCI je n'aurais jamais réussi son ton aide.

                  Commentaire

                  Annonce

                  Réduire
                  Aucune annonce pour le moment.

                  Partenaire de l'association

                  Réduire

                  Hébergeur Web PlanetHoster
                  Travaille ...
                  X