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

  • 4

    Bonjour et merci pour ce plugin.
    (version de spip 2.1.8)

    Je voulais savoir si certains ont déjà rencontré un problème avec les urls ajoutées dans un message. En fait, sur un simple formulaire de contact, si quelqu’un entre une url assez longue, il y a une construction automatique d’un lien. Cependant, il est tronqué à 35 caractères. Ce n’est pas forcément un souci en soit pour l’intitulé, mais par compte le href est également tronqué et donc le lien est invalide..

    Côté backoffice, dans le récap des messages, il n’y a pas le problème car il n’y a pas de construction automatique du lien à partir de l’url écrite.

    Si quelqu’un pouvais m’éclairer sur le sujet, je suis preneur :)
    Manuel

    • Personne n’a rencontré ce problème ?

    • Bon, pour ceux que ça peut aider, j’ai finalement trouvé une solution. Cela vient en fait de la fonction traiter_lien_explicite qui coupe par défaut les urls à 35 caractères si elle en dépasse 40...

      Dans ecrire/inc/lien.php il y a par défaut :
      « $long_url = defined(’_MAX_LONG_URL’) ? _MAX_LONG_URL : 40 ;
      $coupe_url = defined(’_MAX_COUPE_URL’) ? _MAX_COUPE_URL : 35 ; »

      Pour y remédier, il suffit de redéfinir ces valeurs dans mes_options.php avec ce qui vous conviens.

      Par exemple, pour avoir un peu de marge :
      define(’_MAX_LONG_URL’, 400) ;
      define(’_MAX_COUPE_URL’, 395) ;

      Bonne journée :)

    • Manuel
      je ne trouve pas
      « « $long_url = defined(’_MAX_LONG_URL’) ? _MAX_LONG_URL : 40 ;
      $coupe_url = defined(’_MAX_COUPE_URL’) ? _MAX_COUPE_URL : 35 ; » » dans le fichier lien.php
      mais dans lien_court.php
      est-ce dans ce dernier qu’il faut le changer ?
      merci

    • Manuel
      je ne trouve pas
      « « $long_url = defined(’_MAX_LONG_URL’) ? _MAX_LONG_URL : 40 ;
      $coupe_url = defined(’_MAX_COUPE_URL’) ? _MAX_COUPE_URL : 35 ; » » dans le fichier lien.php
      mais dans lien_court.php
      est-ce dans ce dernier qu’il faut le changer ?
      merci

    Répondre à ce message

  • 1

    Bonjour,
    J’ai quelques soucis avec l’aide contextuelle : elle s’affiche mais est décalée vers le bas. Ici par exemple :
    http://spip.capeb74.com/espace-public/pour-les-entreprises/sondage/article/conjoncture
    Quelqu’un aurait il rencontré le même souci ?

    • En fait il s’agissait d’un problème entre jTip (utilisé pour l’aide contextuelle) et le CSS (overflow).

    Répondre à ce message

  • tarentaise

    Bonjour,

    j’ai créé plusieurs tables qui utilise toutes des champs mots clés. Je cherche à récupérer dans une boucle le numéro du mot clé associé à une réponse pour le passer dans un lien. J’arrive à afficher la valeur ou le titre du mot clé sélectionné mais pas son numéro
    D’avance merci

    Répondre à ce message

  • 6
    Laregie

    Très pratique comme plug-ins.
    J’ai installé Spip 2.1 et Forms&Tables 0.305 [37961]
    J’ai un problème avec les champs texte dans lesquels je saisi un nombre commençant par un 0 (par exemple, pour un téléphone).
    Le 0 initial est alors supprimé dans le back-office et dans le mail de confirmation.
    exemple :
    0123456789 devient 123456789.
    Comment y remédier ?

    • Le problème vient de l’utilisation des structures standard de contrôle des requêtes SQL transmises : pour éviter les tentatives de hack, une fonction [« _q() » ou « sql_quote() »] protège les données envoyées :
      -  si la chaîne est numérique, elle la transforme en nombre,
      -  si la chaîne est formée de caractères alpha-numériques, elle l’encadre de guillemets simples et « échappe » les apostrophes qu’elle pourrait contenir (l’ombre d’un homme deviendra : ’l\’ombre d\’un homme’ ou ’l’’ombre d’’un homme’, selon la méthode d’échappement prévue).

      Dans ton cas, « 0123456789 » apparaît comme un nombre... et sa valeur numérique est bien « 123456789 », d’où l’enregistrement dans la base sous cette forme.

      Pour éviter ce problème, la seule façon est de préciser d’utiliser des espaces ou des points dans le numéro de téléphone :
      « 01.23.45.67.89 » ou « 01 23 45 67 89 » ou « 01 23 456 789 » seront bien enregistrés comme des chaînes de caractères alpha-numériques, tels qu’ils ont été envoyés.

    • Bonjour,
      Merci pour ce plugin et cette réponse qui m’est bien utile. Mais dans le cas d’un code postal qui commence par un 0 (ex : 03400, 06200 ou 06000) ça se complique. Le 0 disparaît comme pour le téléphone et si l’on fait « 03 400 » "ou « 03 000 » comme le numéro de téléphone on a un message qui nous dit : « champs perso invalide ». On est donc condamné à ne pas avoir de 0 dans le champ code postal ?
      Merci infiniment pour ce module en tout cas
      Cordialement

    • Il est clair que le problème posé par :
      -  les codes postaux,
      -  les numéros de téléphone
      et sans doute d’autres valeurs numériques commençant par un « 0 » doivent être prises en compte d’une façon ou d’une autre...

      Je pense que c’est plus dans le core [la fonction « _q() »] que dans les fonctions spécifiques de ce plugin qu’il faudrait, peut-être, envisager des modifications...

    • laregie

      Bonjour,
      Avez-vous envisagé une solution efficace ?
      Côté utilisateur, il va de soit qu’il est impossible de leur demander de saisir leur téléphone avec des espaces ou des points, où encore moins le code postal séparé par un espace au milieu !!!.
      Merci pour votre compréhension.

    • Bonjour,

      J’aimerais savoir s’il y a du nouveau du coté de ce problème de chiffres qui commence pas 0 et qui pose un soucis pour les numéros de téléphone et les codes postaux.

      Y a t il un moyen de régler ce problème et d’afficher le 0 devant les chiffres ? Merci.

    • Je me permets de faire un up pour ce sujet, en effet je me suis penché sur la question et n’ai pas trouvé de solution. J’ai changé le type du champs valeur dans la base de donné en champs numérique mais rien n’y fait, le 0 disparait....

      Comment puis-je configurer cette fonction sql_quote() qui protège les données des formulaires de l’espace public ?

      Ou comment faire pour configurer le champs téléphone pour y insérer par exemple un espace ou un point automatiquement ce qui transformerais la valeur de ce champs en chaînes de caractères alpha-numériques ? Je vois pas comment faire cela, est ce possible ?

      En tout cas merci pour ce plugin et merci d’avance aux aides éventuelles qui seraient vraiment le bienvenue.

    Répondre à ce message

  • Si j’installe un spip + ce plugin en local ou en ligne, j’ai toujours la fameuse erreur 302.
    Si j’installe un spip + une ancienne version de ce plugin (révision 39353 récupéré sur un site fait y’a 3 ou 4 ans) tout marche bien.

    Ça serait pas mieux de mettre comme version officielle, une version qui marche ?

    Répondre à ce message

  • tarentaise

    Bonjour,

    je teste actuellement un site en local sur ma machine et à l’affichage d’une page contenant des données récupérées par le plugin j’ai ce message d’erreur :

    « Warning : Missing argument 3 for calculer_boucle_nonrec(), called in E :\Test\Site\www\plugins\forms_et_tables_2_0_v306\public\forms_boucles.php on line 234 and defined in E :\Test\Site\www\ecrire\public\compiler.php on line 257 »

    Quelqu’un a t il une réponse.

    D’avance merci

    Répondre à ce message

  • Bonjour,
    Au téléchargement d’un tableau de résultats d’un questionnaire je récupère ces messages :
    Warning : Cannot modify header information - headers already sent by (output started at /var/www/virtual/catholique-saint-brieuc.cef.fr/brieucbr/plugins/auto/forms_et_tables_2_0/lang/forms_fr.php:1) in /var/www/virtual/catholique-saint-brieuc.cef.fr/brieucbr/plugins/auto/forms_et_tables_2_0/action/forms_telecharger.php on line 73

    Warning : Cannot modify header information - headers already sent by (output started at /var/www/virtual/catholique-saint-brieuc.cef.fr/brieucbr/plugins/auto/forms_et_tables_2_0/lang/forms_fr.php:1) in /var/www/virtual/catholique-saint-brieuc.cef.fr/brieucbr/plugins/auto/forms_et_tables_2_0/action/forms_telecharger.php on line 74

    Warning : Cannot modify header information - headers already sent by (output started at /var/www/virtual/catholique-saint-brieuc.cef.fr/brieucbr/plugins/auto/forms_et_tables_2_0/lang/forms_fr.php:1) in /var/www/virtual/catholique-saint-brieuc.cef.fr/brieucbr/plugins/auto/forms_et_tables_2_0/action/forms_telecharger.php on line 76

    De quoi cela peut-il venir ? Désolé, je ne vois pas. merci de vos lumières...

    Philippe Giron

    Répondre à ce message

  • Bonjour,

    Une petite séance de test et en résultat un tableau de synthèse du comportement de forms et tables en fonction des variables de paramétrage SONDAGE / MODIFIABLE / MULTIPLE.

    L’affichage des résultats stipulé dans le tableau se fait uniquement si le paramètre données publique vaut Oui.

    SONDAGEMODIFIABLEMULTIPLERésultat avant saisieRésultat Après saisieNouveau passage sur le formulaire
    O O O Affiche sondage + résultat Message confirmation enregistrement + déjà répondu + résultat Déjà répondu + résultat
    O O N Affiche sondage + résultat Message confirmation enregistrement + déjà répondu + résultat Déjà répondu + résultat
    O N O Affiche sondage + résultat Message confirmation enregistrement Déjà répondu + résultat
    O N N Affiche sondage + résultat Message confirmation enregistrement VIDE
    N O O Affiche formulaire + résultat NON CONNECTE :Message confirmation enregistrement + formulaire avec résponse saisie + résultatCONNECTE :Message confirmation enregistrement + formulaire avec réponse saisie + résultat + SI DEUXIEME VALIDATION, CONFIRMATION ENRG UNIQUEMENT Nouveau formulaire
    N O N Affiche formulaire + résultat Message confirmation enregistrement + formulaire avec réponse saisie + résultat formulaire avec réponse saisie + résultat
    N N O Affiche formulaire + résultat Message confirmation enregistrement Affiche formulaire + résultat
    N N N Affiche formulaire + résultat Message confirmation enregistrement VIDE

    Cordialement.

    Répondre à ce message

  • Bonsoir,

    J’avais un problème sur les sondages, à savoir que lorsque quelqu’un de non connecté votait, il pouvait revoter autant de fois qu’il le voulait (quelques soit la configuration du formulaire).

    Après analyse, il est apparu que le problème est du au fait que le cookie était écrit de manière incorrecte dans la table spip_forms_donnees .... il était encadré par des guillemets simple (alors que seule la valeur du cookie aurait du être stockée).

    J’ai donc modifié l’insert et l’update du cookie dans inc/forms.php en supprimant l’appel à la fonction _q qui traitait la variable $cookie.

    Bizarre que personne n’ai rencontré ce problème avant moi ..... j’ai eu beau être reparti d’une version standard de spip, sans aucun plugin activé, le problème était persistant.

    Pascal.

    Répondre à ce message

  • Bonjour,
    est ce que quelqu’un sait si il est possible d’utiliser les formulaires de forms & tables en ajax.
    j’ai un site un peu complexe avec des effets javascript et lorsqu’on valide un formulaire le fait de recharger la page fait qu’on ne vois plus le formualrie.

    Si au lieue de recharger toute la page c’était juste le formulaire qui se rechargeait cela serait super.

    j’ai tester dans mon article d’encadrer le formulaire par

    voir si cela pouvait fonctionner pour pour le plugin contact avancé, hélas sans succès.

    Quelqun aurait il une idée ?

    Merci d’avance.

    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