Test des données et automatisation de l'affichage des résultats

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

  • [Problème] Test des données et automatisation de l'affichage des résultats

    Bonjour,

    J'ai un formulaire de réservation contenant entre autre un champs date. J'aimerai ajouter une fonction permettant de vérifier que la date sélectionnée est bien supérieure au jour actuel +1 jour. (Une réservation doit être effectuée au moins 24h avant le jour du repas)

    Pour cela j'aimerai ajouter ma fonction dans le code source de CKform. Comme l'intégration n'est pas prise en compte au niveau interface admin, j'aimerai savoir si CKform génère un fichier, ou où il génère le code de chaque formulaire, afin de pouvoir le modifier.

    Pourquoi ne pas utiliser QuickForm, bien plus pratique pour ce genre de chose? Parce que le site sur lequel je bosse sera ensuite administré par une personnes n'ayant aucune connaissance de près ou de loin avec le développement web. Du coup, si cette personne souhaite ajouter un champs dans le formulaire, avec QuickForm il faudrait qu'il intègre lui-même le champs en plus dans l'affichage des résultats. C'est pourquoi j'ai choisis CKform. De plus je n'arrive pas moi même à gérer correctement l'affichage des résultats sous QuickForm

  • #2
    Bah si tu as utilisé la mise en page par défaut, normalement les champs se mettent tous à la suite...
    Quickform - Formulaires pour Joomla
    Notice QuickForm
    Aidez QuickForm, votez ici : http://joomlashack.uservoice.com/pag...4403-quickform

    Commentaire


    • #3
      Tu veux parler de QuickForm Dragonjc?

      J'ai peut être loupé quelque chose d'énorme alors... Parce que jusque là quand je vais dans l'affichage des résultats, que je créé donc l'affichage, par défaut l'option choisit est "Je veux créer une page de résultats moi même (n'utilise pas les options QuickForm)". Du coup je décoche et je choisis les options qui me conviennent comme "Afficher le titre dans le tableau", ect
      Seulement ça m'affiche un peu tout dans le tableau sans créer de colonne. Enfin bref, dans tous les cas, si l'utilisateur veut ajouter un champs au formulaire, il devra ensuite modifier le traitement des résultats.


      EDIT: Mea culpa, j'avais mal cherché... pour l'affichage tout est

      M'enfin ça n'empêche pas que l'utilisateur devra tout de même modifier le fichier de résultat pour afficher un nouveau champs, ou alors jme trompe encore? Ou alors il faut que j'automatise tout ça moi-même?
      Et puis dernière question, comment on fait pour avoir l'affichage des résultats dans le panneau d'admin?

      edit2: Je viens de voir que l'affichage en back end n'est pas encore possible ><' Ca va me poser problème. Je n'ai pas prévu de module d'authentification, car inutile sur ce site...

      ps: Finalement je dérive du sujet initial de ce post =s si je réussi avec Quickform, faudra que je vois pour en modifier le titre
      Dernière édition par kawai à 14/10/2010, 09h33

      Commentaire


      • #4
        Edit 1 : Pour afficher un nouveau champ il suffit de lui expliquer les tags : {nomduchamp:value} à mettre dans la mise en page. C'est assez facile en soit Après effectivement tu peux créer un plugin qui va faire la mise en page en fonction de la liste des champs, c'est largement reéalisable et assez facile. Ce qui va résoudre ton problème assez facilement dans ce cas Le principe en serait :
        Récupérer la liste des champs, créer une mise en page avec les résultats, ou les tags qui normalement seront remplacés. Remplacer le tag général que tu place dans la mise en page du style {miseenpage:body} par exemple
        Edit 2 : Bah pour info si ton petit gars à accès au back end, il a accès aussi au front donc aucun soucis.
        Quickform - Formulaires pour Joomla
        Notice QuickForm
        Aidez QuickForm, votez ici : http://joomlashack.uservoice.com/pag...4403-quickform

        Commentaire


        • #5
          D'accord, merci beaucoup. Je vais m'occuper de ça dès que j'ai fini ce que je fais.

          Finalement je vais utiliser le module de login de MacSIM. Je suis en train de le modifier de manière à ne permettre que la connexion (ça c'est fait) et d'ajouter un ou deux menus (permettant d'accéder aux résultats des formulaires) dans le 3ème panel actuellement vide.

          Ainsi seul un administrateur pourra accéder aux résultats. Du moins je l'espère
          Et ensuite j'intègre l'automatisation pour l'affichage des résultats !

          Ça paraît simple dis comme ça... je vais bien galérer ahah

          Commentaire


          • #6
            Bon bon bon,

            Etant un peu bloquée sur la modification de mooLogme, je me suis mise à faire un formulaire de test, pour commencer les tests de date et ensuite l'automatisation.

            Mais en fait je suis bloquée bien plus tôt que je ne l'aurais cru O.O
            En effet, j'ai créé un champs calendrier. Seulement, lors de l'affichage du formulaire, le petit icône ne fait rien, j'ai beau cliquer dessus, rien...

            J'ai commencé à chercher sur les fofo, je suis tombée sur ça:

            Theophile:
            - Calendrier =>> NOK idem que case à cocher l'icone du calendrier est sur une ligne en-dessous et en cliquant dessus le calendrier ne s'affiche pas .

            Dragonjc:
            Calendrier c'est encore du HTMl, taille du div très certainement, la je peux rien faire l(api joomla le met en ligne avec des divs), augmente la taille de ton div contenant les éléments.
            J'ai vérifié avec Firebug, mais mon icone est bien dans le div, la taille de ce dernier et bien plus grande qu'il ne suffirait.


            Par la même occasion j'ai remarqué que l'image est intégré avec la balise img, normal, mais je ne trouve aucune balise de lien.


            Est-ce normal? =o

            Je vais continuer en attendant, et créer ma fonction de vérification.

            Commentaire


            • #7
              La c'est le champ calendar classique de joomla. Donc s'il ne fonctionne pas là ... c'est que ça vient de joomla. Donc vérifie que mootols est bien activé et que tu n'as aucune erreur js. Car une des raisons pour que cela ne fonctionne pas c'est que js est en erreur.
              Quickform - Formulaires pour Joomla
              Notice QuickForm
              Aidez QuickForm, votez ici : http://joomlashack.uservoice.com/pag...4403-quickform

              Commentaire


              • #8
                Oula j'étais à des lieux de penser que ça pouvait venir d'une erreur javaScript.

                Enfin tu as tapé dans le mil ! Ca venait d'une erreur javascript, comme j'avais commencé à modifier le composant de MacSIM, enfin bref, j'ai mis en commentaire le temps que ce soit opérationnel. Tout est niquel, merci beaucoup ! =D

                Commentaire


                • #9
                  Bon voilà où j'en suis:

                  J'ai créé cette fonction php:

                  Code PHP:
                  $champ_date $this->post['QF[ch_date]'];
                  $date_actuelle date("d/m/Y");


                  if(isset(
                  $champ_date)) 
                  {
                      if (
                  $champ_date <= ($date_actuelle 1))
                      {
                          echo 
                  'vous devez réserver 24h avant !';
                          
                      }


                  Je l'ai mise dans Script de test des données avant enregistrement, et lorsque j'affiche mon formulaire et que je valide en laissant le champs date vide j'obtiens l'erreur suivante :
                  Notice: Undefined index: QF[ch_date] in C:\wamp\www\Joomla2\components\com_quickform\model s\quickmain.php(695) : eval()'d code on line 1
                  Il me semble que j'avais déjà eu ce problème y a pas si longtemps, mais j'ai pas retrouvé la solution. J'ai trouvé des topics où les gens disaient que ça venait souvent d'un espace en trop au niveau de la balise <?php. Sauf que ici j'en ai pas mis, mais avec ou sans j'ai la même erreur.

                  A mon avis ça viens de l'appel de QF[ch_date] qu'il ne reconnait pas...
                  J'ai essayé avec:
                  - $this->post['QF[ch_date]']
                  - $_POST['QF[ch_date]']

                  Commentaire


                  • #10
                    Bonjour,

                    N'ayant toujours pas trouvé de solution à mon problème. Je me demande si il ne vaudrait pas mieux que je le fasse avec mootools plutôt qu'en php. Est-ce une bonne idée selon vous?

                    Commentaire


                    • #11
                      Bonjour,

                      C'est toujours moi. Je patauge toujours autant...

                      J'essaie de trouver comment appeler ce champs, parce qu'il me semble que l'appel de mon champs doit mal se faire. A la base j'ai donné le nom ch_date à mon champs, seulement en observant un peu le code avec firebug, j'ai vu que le nom donné par Quickform au final était: QF[ch_date].
                      Est-ce qu'il fallait que j'utilise bien QF[ch_date] et non ch_date? J'ai eu beau essayer les deux, j'ai toujours la même erreur...

                      Je vais continuer à fouiller le net, mais enfin si quelqu'un a une réponse je l'en remercie d'avance.


                      EDIT: Bon je tourne en rond. J'ai le code suivant dans Script de test des données avant enregistrement:

                      Code PHP:
                      $date_actuelle date("d/m/Y");
                      echo 
                      'niveau 1';

                      if(isset(
                      $_POST['QF[ch_date]'])) 
                      {
                      echo 
                      'niveau 2';
                          if (
                      $_POST['QF[ch_date]'] <= ($date_actuelle 1))
                          {
                              
                      array_push($this->error,'QF[ch_date]');

                              echo 
                      'vous devez réserver 24h avant !';

                          }

                      Mon erreur d'index indéfini ne s'affiche plus, en revanche j'ai beau mettre une date inférieure, supérieure ou égale à la date du jour + 1, j'ai en permanence l'affichage du message d'erreur de quickform, comme quoi le champs est mal remplit.

                      En vérifiant, l'exécution du code php s'arrête au isset. Les echos que j'ai placé après le isset pour le test ne s'affichentt pas.

                      Lorsque je mets mon isset en commentaire, bien sur l'echo niveau 2 s'affiche. Par contre l'erreur d'index indéfini revient...

                      Edit 2: Je viens de me rendre compte, en faisant ma page de résultats, qu'en fait le champs calendrier ne prend pas les valeurs inscrites dans la textbox. Lors de l'affichage des données, tous les essais que j'ai fait contiennent dans le champs date la valeur: 0000-00-00
                      Est-ce que mon erreur peut venir de là? Etant donné que moi je le compare à un format jj/mm/aaaa ?


                      Edit3: J'ai réglé le problème de l'affichage des dates grâce à ce topic. M'enfin l'exécution s'arrête après le isset toujours. Je ne comprend pas ><
                      Dernière édition par kawai à 18/10/2010, 14h19

                      Commentaire


                      • #12
                        Bonjour!

                        Me revoilà, je n'ai toujours pas trouvé de solution aux problèmes des vérifications, du coup je me suis mise à la création du plugin d'automatisation.

                        Pour l'instant j'ai quelque chose comme ça:

                        Code PHP:
                        //Connexion à la BDD, récupération des champs du formulaire
                        $db mysql_connect('localhost','login','password');
                        mysql_select_db('joomlatest2'$db);
                        $req mysql_query("SELECT `Label` FROM `jos_quickform_fields` WHERE `id` = '1'");
                        $nbr_champs mysql_num_rows($req);


                        // Création d'un fichier show 

                        //Mise en place des champs
                        $i 0;
                        for (
                        $i=0$i $nbr_champs$i++)
                        {
                            
                        // utilisation de fetch
                            
                        $label //Label récupéré via le requête $req
                            //Ajouter au fichier show:
                            
                        '{'$label':value} <br />';

                        J'ai récupéré les fichiers .xml et .php depuis le wiki de Quickform, pour le xml pas de problème. Pour le php, j'ai un peu de mal à me familiariser. J'ai des bases en php, mais bon je connais pas du tout la structure de Quickform, ni d'un composant ou module Joomla!, donc forcément je galère

                        Je ne sais pas encore où je dois placer exactement le code que j'ai commencé à faire, mais j'aimerai surtout savoir si je pars dans la bonne direction. Autant que je commence pas à faire quelque chose qui n'a rien à voir

                        Commentaire


                        • #13
                          O.O Au fait, j'ai eu une peut être illumination ce matin mais... Pour le plugin d'automatisation, j'ai récupéré le fichier .php (pour exécution du code dans une page de traitement) , mais il ne fallait pas plutôt que je récupère (pour exécution du code dans un formulaire) ?

                          Car, l'automatisation doit s'appliquer à chaque fois qu'on modifie le formulaire, du coup le plugin s'exécute lors de l'enregistrement du formulaire... enfin je crois ><'

                          Edit: Op je mets où j'en suis. J'ai continué mon code à défaut d'être sûre de moi, j'ai récupéré le bon fichier .php, du moins selon moi.

                          J'ai le code suivant, mais je ne sais toujours pas où je dois le mettre, ni comment faire pour qu'il s'exécute lorsqu'on créer ou modifie un formulaire.

                          Code PHP:
                          $id_form $form->getValue('id');

                          //Connexion à la BDD, récupération des champs du formulaire
                          $db mysql_connect('localhost','login','password');
                          mysql_select_db('joomlatest2'$db);
                          $test mysql_query("SELECT * FROM `jos_quickform_show` WHERE `Forms` = " $id_form );

                          if ( empty(
                          $test))
                          {
                              
                          // Création d'un fichier show 
                              
                          $req_insert mysql_query("INSERT INTO `jos_quickform_show` (`id`,`Name`,`Description`,`Access`,`Categories`,
                              `Config`,`Forms`,`Column`,`Colname`,`Colwidth`,`Rowlimit`,`Details`,`Expcolumn`,`Expcolname`,`See`,`Request`,
                              `published`,`Plugins`,`left`,`right`,`top`,`bottom`,`headers`,`footers`,`imagescale`,`units`,`format`,`orientation`,
                              `codeheader`,`codecontent`,`codefooter`) VALUES ('', 'Resultat auto_" 
                          $id_form "', '','1', '34',
                               'title,description,details,edit,delete,export', '" 
                          $id_form "', 'id', 'id', '50px', '', '', '', 'x', '1', '',
                               '1', '', '5', '5', '5', '5', '5', '5', '4', 'mm', 'A4', 'P', '', '', '')"
                          );
                          }
                           

                          $name mysql_query("SELECT `Name` FROM `jos_quickform_fields` WHERE `id` = " $id_form );
                          $label mysql_query("SELECT `Label` FROM `jos_quickform_fields` WHERE `id` = " $id_form );
                          $nbr_champs mysql_num_rows($name);


                          // utilisation de fetch
                          while ($tous_label $label->fetch())
                          {
                              
                          $chaque_label[] = $tous_label;
                          }
                          while (
                          $tous_name $name->fetch())
                          {
                              
                          $chaque_name[] = $tous_name;
                          }


                          //Mise en place des champs
                          $i 0;
                          for (
                          $i=0$i $nbr_champs$i++)
                          {
                              
                          //Ajouter au fichier show:
                              
                          $req_update_concat_label mysql_query("UPDATE `jos_quickform_show` SET `Colname` = CONCAT(Colname ,'
                              " 
                          $label "') WHERE `Forms` = '" $id_form "`"); //update du label
                              
                          $req_update_concat_nom mysql_query("UPDATE `jos_quickform_show` SET `Column` = CONCAT(Column ,'
                              " 
                          $name "') WHERE `Forms` = '" $id_form "`"); //update du nom
                              
                          $req_update_colonne mysql_query("UPDATE `jos_quickform_show` SET `Colwidth` = CONCAT(Colwidth, '
                              100px') WHERE `Forms` = '" 
                          $id_form "`"); //update de la largeur de la colonne
                              
                          $req_update_concat_detail mysql_query("UPDATE `jos_quickform_show` SET `Details `= CONCAT(Details ,'
                              <strong>" 
                          $label ":<strong>{" $name ":value} <br />') WHERE lacondition"); //update du fichier de résultat
                              

                          Si quelqu'un a une piste ou une idée dans sa poche, et qu'il veut bien m'en faire part, je l'en remercie d'avance. D'ailleurs si vous avez des suggestions, conseils, critiques, ou quoique ce soit sur mon code, ou ce que je veux faire hésitez pas! J'attends que ça ! =)
                          Dernière édition par kawai à 21/10/2010, 15h18

                          Commentaire


                          • #14
                            Bonjour,

                            Si un modo, admin, lit ce message, serait-il possible de déplacer mon sujet dans Développeurs => Développements => Extension Quickform ?

                            Etant donné que le sujet lui même avait changé, j'avais oublié de demander si c'était possible...

                            Je supprimerais ce message lorsque ce sera fait.

                            Merci d'avance !

                            Commentaire


                            • #15
                              Bonjour !

                              Un petit up si possible, j'ai toujours rien trouver pour avancer... ><'

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins
                              Travaille ...
                              X