Forms&Tables 2.0

Gestion et administration de formulaires éditables. Ce plugin permet également la publication de sondages et enquètes, la collecte des réponses dans la base de données et le téléchargement au format csv.

Ce plugin est une adaptation de la version pour SPIP 1.9. Les fonctionnalités sont inchangées, pour plus d’information, merci de consulter la rubrique ad hoc.

Adaptation à SPIP 2.0

ATTENTION :
Pour conserver les formulaires créés sous SPIP 1.9.x, ne désinstallez pas le plugin en cliquant sur le bouton de désinstallation présent dans la page de gestion des plugins, pour information, ce bouton porte l’étiquette suivante : « Supprime les données et désactive le plugin ».

Pour conserver les données :

  • dans le dossier plugin, supprimez le dossier « forms_et_tables_1_9_1 »
  • dans le dossier plugin, ajoutez le dossier du plugin modifié : « forms_et_tables_2 »
  • Activez ce plugin dans la page de gestion des plugins

Plugin en version test

Ce plugin est actuellement mis à disposition en version « test ». Merci de nous faire part de vos remarques suite à votre utilisation, nous apporterons les corrections/adaptations dans les meilleurs délais et dans la mesure du possible.

Quelques remarques concernant cette adaptation

1-champ de type monétaire :
l’unité saisie en administration est exploitée uniquement dans le tableau des réponses. Il serait intéressant de voir si on ne peut pas laisser un choix à la saisie (soit au moment de la construction du formulaire soit au moment de la saisie par l’utilisateur). Il serait ensuite intéressant d’exploiter cette donnée ailleurs (export, suivi des réponses).

To do : faire ces modifications pour utiliser la donnée monétaire.

2- nous avons activé le tableau des résultats (étrangement, il ne l’était pas en SPIP 1.9+ ) :
Par contre, dans ce tableau les tris sur ‘id’ et ‘date’ marchent. Ca ne marche pas sur les autres champs.

To do : généraliser le tri sur les autres champs

3- problème confirmation d’une réponse à un sondage (à voir)
la fonction de confirmation d’une réponse dans un sondage est pour l’instant by passée, la réponse est automatiquement validée sans passage par confirmation = attente. Cette fonction doit probablement servir à traiter des multiples réponses via des robots (à confirmer).

To do : faire marcher cette fonction de confirmation de la réponse sur SPIP2, et enlever le by pass décrit ci-dessus.

4- Environnement de développement
Les développements et test ont été réalisés avec easyphp 3.0 et SPIP 2.0.10, équipé d’une bonne poignée de plugins qui n’ont provoqué aucun conflit. Nous allons le tester sur des versions PHP/MySQL plus récentes. N’hésitez pas à nous faire part de vos remarques en cas de problème.

5- Programmation : premières impressions
Certains comportements d’origine du plugins sont un peu déroutants, nous avons pu apporter quelques correction lors de cette adaptation, il reste encore un peu de travail, notamment concernant les remarques susmentionnées.

Nous apporterons si possible d’autres améliorations, mais n’hésitez pas à mettre « la main à la pâte » !

Avertissements

  • Bien que compatible SPIP 2.0, cette version du plugin n’utilise pas entièrement l’API SQL et n’est donc pas compatible PostgreSQL ou SQLite

Ce projet a été mené par le SEM. Pour en savoir plus

Discussion

310 discussions

  • 2
    Pierrot

    Bonjour,

    Je viens de détecter un problème avec les champs de type « téléphone » de forms&tables avec PHP 5.5 ... à partir de 5.5, impossible de valider ces champs ... si on les a rendu obligatoires, on est coincé ...
    Je suis repassé à PHP 5.4 et c’est bon, j’ai fait la contre-manip 2 fois, c’est bien 5.5 qui pose problème.

    Je me demande si c’est par ex un pbm de regexp dans le plugin sur la validation du champ ou si c’est un truc plus profond dans spip (je demande car je pense avoir supprimé la validation dans forms_types_champs.xml et ça coince toujours en 5.5). Dans ce second cas, il faut que je repasse fissa sur plusieurs sites que je viens de passer en 5.5 suite aux mails d’OVH.

    Je vais aussi poser la question sur la liste au cas ou ce soit un souci Spip.

    Pierre

    • cédric

      J’ai le même soucis.
      Chez ovh, le champ téléphone ne fonctionne pas sous php5.5.22 alors qu’en local cela fonctionne en php5.5.8
      Pour que ça fonctionne chez ovh, j’ai été obligé de passer en php5.4.38
      Merci Pierrot, ça faisait une bonne demi heure que je cherchais ;)

    • Bonjour

      Moi j’ai ce bug avec PHP 5.4.45

      Je me demande vraiment si cela vient de PHP et non pas du code du plugin ?

      Je suis en Formulaires et Tables 0.5.6

    Répondre à ce message

  • 2

    Idem, intéressé par ce plugin pour spip 3 ...

    Répondre à ce message

  • ogoudjian

    Bonjour
    J’utilise ce plugin comme formulaire de contact.
    Lorsque la personne oublie de remplir l’un des champs obligatoire et clique sur envoyer, un message d’erreur apparait (normal) mais surtout cela efface tout le formulaire et notamment son message au lieu d’indiquer uniquement le champs manquant.
    Est-ce-qu’il y a une solution pour remédier à cela ?
    Merci pour votre aide

    Répondre à ce message

  • 1

    Bonjour,
    Un soucis avec « FORMS_DONNEES_CHAMPS » qui n’est pas reconnu.
    Je suis un « tatonneur » sur Spip depuis ... Oula-la !
    j’utilise le plugin pour des formulaires, mais pas encore pour des tables.

    Donc j’ai tâtonné et avancé ... c’est en ligne, public, là.

    Pour faire riche alors que je n’y comprends rien, voilà le code de la page ci-dessus
    _ (excusez ma faiblesse qui m’oblige à écrire plein de commentaires) :

     #CACHE{0}
    On commence avec quelques enregistrements avec "forms_et_tables" pour spip pour voir si ça marche.
      <br><br>
      <BOUCLE_reponses2(FORMS_DONNEES) {id_form==5} {confirmation==valide} {par id_donnee}>
           
            <BOUCLE_champs2(FORMS_CHAMPS){id_form==5}>
            #TITRE : <span class='#_reponses:EDIT{#CHAMP}'>#LESVALEURS{','}</span><br>
            </BOUCLE_champs2>
            <br>
            <p></p>
      </BOUCLE_reponses2>
        
        #LESVALEURS <br>
         Ca marche <br>
        Maintenant il faut mettre ça dans un tableau... alors on va y aller à doux pas !
       
        <hr />
    
     <!--  on cherche dans les données s'il y a des réponses  -->
        
        On cherche dans FORMS_DONNEES s'il y a des réponses. <br>
        
    <BOUCLE_reponses4(FORMS_DONNEES){id_form=5}{confirmation==valide} >
    	
    	Dans la table forms-données il y a #TOTAL_BOUCLE réponses validées pour le formulaire N°5<br>
        --- Fait ---
       
    	<p></p>
        <hr />
     <!--  on va chercher dans Forms _champs le titre de chaque champ  -->
        on va chercher dans Forms _champs le titre de chaque champ pour faire l'entête du tableau: <p></p>
    		
            <BOUCLE_nomchamps(FORMS_CHAMPS){id_form==5} {tout}  >
          	 •  #TITRE <br>
    		</BOUCLE_nomchamps>
            <br>
    	 --- Fait ---
    	 <hr />
    	 maintenant il faut aller chercher le détail des réponses dans forms_donnees_champs avec les id_donnée de forms_donnees, il va donc falloir passer ce paramètre à la boucle. <br>
        
     
      <!--  C'est là que ça coince !  -->      
    	<BOUCLE_resultatsforms(FORMS_DONNEES_CHAMPS){id_donnee}>
        <#VALEUR> <br>
        </BOUCLE_resultatsforms>
    <p></p> L'appel à la table "FORMS_DONNEES_CHAMPS" renvoie une erreur: "FORMS_DONNEES_CHAMPS inconnue" ... 	
     
    </BOUCLE_reponses4>

    Si quelqu’un a une réponse, il est le bienvenu (notre site n’est pas en test, même si nous testons)

    • Bon, c’est fait !
      -  un tableau rassemblant les vidéos du club.
      -  les vidéos (Youtube, Dailymotion, Facebook ou lien direct) s’affichent dans un iframe géré par le plugin thickbox.
      -  dans le menu à gauche il y a une vidéo au hasard.

      Si vous avez des questions ...

      le lien pour voir en ligne

    Répondre à ce message

  • Bonjour à tous
    Je suis en train d’ajouter un bouton pour télécharger des images avec une sélection multiple. Je l’ai mis la propriété « multiple » dans le « INPUT », mais obtient seulement une seule image.

    Répondre à ce message

  • Bonjour,
    J’ai installé ce plugin il y a quelques temps et j’ai un petit soucis avec l’upload de fichiers. Je m’explique. Lorsque je reçois une alerte pour me signifier qu’une personne extérieure a rempli un de mes formulaires et qu’elle a laissée une pièce jointe, le lien généré n’est pas complet. Le lien du fichier uploadé est de la forme « IMG/protege/form1/blabla.jpg »

    Où est-ce que je peux modifier le chemin vers les fichiers uploadés dans le dossier du plugin ?

    Merci d’avance

    Répondre à ce message

  • Bonjour j’ai désinstallé par mégarde le plugin comment y rémédier ?

    Répondre à ce message

  • 6
    Christian Julia

    Bonjour,

    Je viens de mettre en place ce plugin pour un site de client et avec Safari sur Mac (ou iPad ou iPhone), je vois apparaître ce message d’erreur :
    Warning : Illegal string offset ’id_auteur’ in /homez.809/LENOMDUSITE/www/plugins/forms_et_tables_2_0/balise/forms.php on line 154

    Mais il n’apparaît pas avec Firefox ou Chrome.

    Je suis en version 2.1.25 de SPIP et avec un hébergement mutualisé perso 100 Go OVH (qui a beaucoup de problèmes de lenteur en ce moment...). La version du PHP est 5.4.24.

    Pouvez-vous m’aider ? D’avance, merci.

    Christian.

    • Même problème :( comment s’en sortir ?

    • Christian Julia

      Bonjour,

      Entre-temps, j’ai trouvé la solution à mon problème. Tout venait du fichier .ovhconfig situé à la racine du site qui est soit environnement « production » soit environnement « development ». Quand on le met en « development », les messages d’erreur apparaissent dans la partie publique. Mais en « production », ils disparaissent. En revanche, cela ne résout pas le problème lui-même, qui semble ne pas avoir de conséquence.

    • J’ai eu la réponse !

      Dans le fichier forms.php remplacer à la ligne 153 ce code

      	return array('formulaires/forms', 0, 
      		array(
      			'erreur_message'=>isset($erreur['@'])?$erreur['@']:'',
      			'erreur'=>serialize($erreur),
      			'reponse'=>filtrer_entites($reponse),
      			'message_complementaire' => $message_complementaire ? $message_complementaire : '',
      			'pose_cookie' => $pose_cookie,
      			'id_article' => $id_article,
      			'id_form' => $id_form,
      			'id_donnee' => $id_donnee?$id_donnee:(0-$GLOBALS['auteur_session']['id_auteur']), # GROS Hack pour les jointures a la creation
      			'self' => parametre_url($url,'id_donnee',$id_donnee<0?0:$id_donnee),
      			'valeurs' => serialize($valeurs),
      			'url_validation' => str_replace("&amp;","&",$url_validation),
      			'affiche_sondage' => $affiche_sondage,
      			'formok' => filtrer_entites($formok),
      			'formvisible' => $formvisible,
      			'formactif' => $formactif,
      			'class' => 'formulaires/'.($class?$class:'forms_structure'),
      		));

      Par celui-ci

      $id_auteur = isset($auteur_session['id_auteur']) ?
      intval($auteur_session['id_auteur']) : 0;
      
          return array('formulaires/forms', 0,
              array(
                  'erreur_message'=>isset($erreur['@'])?$erreur['@']:'',
                  'erreur'=>serialize($erreur),
                  'reponse'=>filtrer_entites($reponse),
                  'message_complementaire' => $message_complementaire ?
      $message_complementaire : '',
                  'pose_cookie' => $pose_cookie,
                  'id_article' => $id_article,
                  'id_form' => $id_form,
                  'id_donnee' => $id_donnee?$id_donnee:(0-$id_auteur), // GROS
      Hack pour les jointures a la creation
                  'self' =>
      parametre_url($url,'id_donnee',$id_donnee<0?0:$id_donnee),
                  'valeurs' => serialize($valeurs),
                  'url_validation' => str_replace("&amp;","&",$url_validation),
                  'affiche_sondage' => $affiche_sondage,
                  'formok' => filtrer_entites($formok),
                  'formvisible' => $formvisible,
                  'formactif' => $formactif,
                  'class' => 'formulaires/'.($class?$class:'forms_structure'),
              ));
    • Christian Julia

      Merci !

      Je vais tester la modification. J’ai remis le fichier .ovhconfig en « environment : development » mais pour l’instant le message d’erreur ne réapparaît pas. Une question de cache... Je poursuis...

    • Christian Julia

      Super ! Ça fonctionne.

      J’ai vidé le tmp de SPIP, le message d’erreur est réapparu dans la partie publique puis j’ai transcrit votre code. J’ai eu un petit souci avec l’expression ’GROS Hack pour les jointures a la creation’, mais je l’ai corrigée et le message d’erreur a disparu des formulaires.

      Merci et bravo. Des choses pareilles, ça ne s’invente pas (enfin pour moi !)...

    • Le problème persiste... à une autre ligne désormais sur un nouveau spip :

      Warning : Illegal string offset ’id_auteur’ in /home/xxx/public_html/plugins/auto/forms/v0.5.6/balise/forms.php on line 116

      .....
      qqn peux nous aider ?

    Répondre à ce message

  • Bonjour,

    j’ai un problème pour recevoir les formulaires.

    J’ai paramétré les mails de réception du formulaire : adressemail ; adressemail ; etc..

    J’ai rajouté deux mails, au mail initial. Est ce possible ? Cela buggue t-il la reception pour le premier mail ?

    Merci.

    Répondre à ce message

  • Bonjour,

    Lorsque l’on propose de télécharger une pièce jointe dans un formulaire actuellement la pièce jointe ne se retrouve pas dans le mail. Il s’agit d’un lien cliquable et on arrive sur la page de connexion ou il faut entrer login et mot de passe. Il faut donc avoir un compte administrateur pour pouvoir se connecter et visualiser l’image téléchargée.

    J’aurai besoin que la pièce jointe « tombe directement » sur la boîte mail de mon choix. Est-ce possible ? Si oui comment faire ? j’avais coché l’option (dans les propriétés du formulaire) Joindre un document à l’email mais cela ne fonctionne pas.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom