Forms & tables - carnet de notes

Embryon de doc par compilation de messages divers sur les listes et irc

Plugin pour des formulaires complètement adaptables, avec gestion des données.

Avertissement :

Il ne s’agit pas là d’une documentation officielle et aboutie de « Forms & tables » mais d’une compilation de messages divers de Cedric (l’auteur de ce plugin) sur différentes listes et sur irc. Ce qui implique qu’il peut y avoir des erreurs et imprécisions, voire que certains commentaires sont datés car le code a pu évoluer. L’idée a été qu’il fallait mieux publier ces notes en l’état plutôt que d’attendre la documentation complète qui sera un gros morceau à réaliser vu les potentialités de Forms & tables.

N’hésitez pas à vous servir de ce plugin dès maintenant, il est fonctionnel, et à contribuer à sa documentation, ne serait-ce que via le forum associé

NicolasR

Introduction

Créer aujourd’hui à partir de SPIP une application gérant un objet X gérant par exemple des auteurs, des mots clés et 2 champs texte, ca prend pas 2 jours ... mais à terme, ca pourrait prendre 1 heure !

C’est déjà aujourd’hui, c’est Forms&tables, c’est 5 min, c’est tout ajaxé.

Tu y définis la table, les champs, le formulaire d’édition/saisie d’un seul coup. Tout cela est utilisable depuis la partie privée, ou depuis la partie publique directement. Il y a une gestion de statuts pour modérer les données proposées depuis la partie publique. Tu associe les données de ta table personnelle avec les articles comme tu le fais avec les auteurs ou les mots clés par exemple.

On peut associer des documents et images aux données, comme pour les articles.

Les données peuvent etre importées/exportées en csv avec le plugin (c’est csv_import) qui marche de concert. Les structures des objets peuvent être importées/exportées en xml avec le plugin Snippet qui marche de concert. Il y a un début d’API pour utiliser tout cela depuis d’autres plugins, et un bon exemple d’utilisation de l’API est le plugin spip-sms-listes qui cree plusieurs tables différentes avec jointures chaines de langues spécifiques etc ...

Téléchargement

Récupérer les zips suivants sur l’espace de téléchargement, ou le(s)miroir(s), de spip-zone :
-  forms_et_tables
-  snippets
-  csv_import

Installation

Comme tous les autres plugins, cf. http://www.spip.net/fr_article3396.html

La partie Forms

à rédiger ... peut etre en reprenant des extraits de plugin Forms : création de formulaires

Rajouter notamment pour SPIP 1.9.1 (n’est pas nécessaire avec SPIP 1.9.2 ou jquery est inclus dans le core) : « L’activation du plugin j-query permet d’améliorer sensiblement le déplacement des champs. Le déplacement par les flèches disparaît au profit d’un déplacement par "cliquer-glisser" qui permet de réorganiser complètement le formulaire ou d’insérer plus facilement un champ oublié »

Forms & table successeur de Forms

Mais la doc de Forms est encore utilisable en grande partie, voir cet échange repris sur l’irc le 10 décembre 2006

cedric : forms&tables il est clic and play
cedric : completement pret a l’emploi
cedric : j’ai fait un effort suite au retour d’experience sur l’agenda justement ...
cedric : donc j’ai meme integré les modeles qui vont bien
nicolasr : pour sa présentation : c’est le successeur de Forms qui pass en archives ?
nicolasr : (forms&tables)
cedric : oui il remplace forms
cedingrotte : a partir de la 1.9.1
nicolasr : est-ce qu’une partie de la doc de Forms est réutilisable (pour la partie forms), ou ça n’a rien à voir ?
Linstit : si, c’est ok, la doc sur contrib, elle est bonne AMHA
Linstit : faut juste documenter sondages et tables en plus, non, Cédric ?
cedric : oui tout ce qui concerne la creation de formulaires reste en grande partie vraie
cedric : quelques amenagements a faire suite a l’evolution de l’interface

Voir donc : plugin Forms : création de formulaires

La partie Tables

Avec la partie tables, le formulaire est utilisé aussi (dans la partie privée ou publique) pour ajouter/modifier des données de tables, donc potentiellement plusieurs id_donnee pour un seul id_auteur. Je pense donc qu’il faudrait qu’id_donnee soit passée dans l’url pour permettre la modif pour un auteur connecté. C’est ce que fait déjà le formulaire lorsque l’on est dans l’espace privé (mais je n’avais pas encore réfléchi à comment l’intégrer dans la partie publique)

La partie tables de Forms&tables fonctionne sur la même mécanique. Elle est juste séparée de la partie Forms car correspond a un usage différent. Pour définir une table, on définit ses champs à travers le formulaire de saisie.

Chaque champ peut être :
-  spécifiant : il sera considéré comme pertinent pour trier/filtrer/rechercher les donnees dans la table
-  public : les données de ce champ sont affichées dans les modèles, dans le cas contraire elle ne sont visibles que dans l’espace privé
-  obligatoire : le champ doit être rempli lors de la saisie

Attention, ce ne sont pas des tables physiques, mais des tables logiques implémentées dans un nombre de tables physiques fixe. La question subsidiaire concerne plutot les perf, mais avec qq milliers de refs ca ne s’écroule pas. Et par contre la recherche est potentiellement efficace car tous les champs étants implémentés le champ valeur d’une même table, une recherche dans touts les données se résume à un SELECT ... WHERE valeur LIKE ’%mixeur%’ par exemple.

Aide contextuelle

Par ailleurs, une aide contextuelle peut être définie pour chaque champ. Le wrapping html permet de définir des encapsulation des champs dans la vue donnée (typiquement pour faire du microformat), sur le format :
-  implicite : la donnee est insérée au milieu de l’encapsulation qui peut comporter plusieurs tags <div class='truc'></div>
-  explicite : la donnee est inseree a la place du $1<a href='$1' class='truc'>$1</a>

Import/export aux formats csv et hCard

Le plugin contient un exemple de structure hCard (Snippets/forms/hCard.xml) qui utilise ce format. Mais la fonctionnalité est encore incomplète, il manque la possibilité de gérer une hiérarchie de div englobants. (Les fieldsets sont utilisés pour gérer un premier niveau de groupe, mais il est nécessaire de pouvoir faire des sous groupes, j’y refléchis).

Le hCard.xml contenu dans le plugin est importable à l’aide du plugin Snippets (1.9.2 uniquement) qui permet de gérer des imports/exports des structures des tables&formulaires en xml. Un formulaire peut etre exporté et réimporté dans un formulaire existant, auquel cas les champs y seront ajoutés.

Les types de champ sont personnalisables, il y a un exemple dans etc/forms_types_champs.xml. Cela permet de definir des formats qui n’ont pas de vocation à être en dur car ne ils correspondent pas a un besoin général. Pour le moment la vérification de format est limitée a un preg_match sur une regexp, mais je pense mettre un pipeline pour permettre de créer des types de champs plus complexe.

Le plugin csv_import fonctionne avec les tables de Forms&tables, et il permet de faire de l’import/export csv des données (en ajoût et mise à jour si l’id_donnee est fournie).

La différence entre une table et un formulaire

Une histoire de point de vue
reprise du post « forms et tables - formulaire multipage » du 16 juin 2007 sur la liste spip at rezo

C’est plus une question de point de vue.

Le formulaire a vocation à être utilisé pour collecter des données saisies par les internautes et les stocke pour permettre de les retrouver. Les tables ont plutôt vocation à créer des objets éditoriaux personnalisés gérés depuis l’espace privé et que l’on affiche dans le site soit via des
boucles, soit via des tags dans les articles de la forme ou .

Mais les fonctionnalités de l’un peuvent être utilisées sur l’autre. Si tu crée une table X tu peux donc mettre en ligne le formulaire de saisie correspondant avec un tag pour permettre à l’internaute de proposer des infos par exemple.

La même explication traitée un peu différemment
reprise du post « API Forms&tables » du 15 février 2007 sur spip-zone at rezo

C’est juste un concept différent que j’ai distingué dans le plugin :
-  un formulaire c’est dédié a la saisie de données dans l’espace publique (collecte d’informations), et on stocke les réponses pour pouvoir les suivre/gérer/traiter, comme des forums ...
-  une table, c’est une structure de données destinées à être utilisées dans les squelettes. Le socle commun permet de disposer du formulaire de saisie associé, utilisable aussi bien dans l’espace privé que dans l’espace publique si besoin. La définition de la structure de la table se fait par la définition de son masque de saisie, ie son formulaire de saisie.

Donc dans le premier cas, ce qui est central c’est la collecte d’informations dans l’espace publique, et le stockage est juste destiné à du post-traitement. Dans le second, ce qui est central, c’est les données et leur manipulation pour les afficher dans les pages de l’espace publique. La saisie est juste un moyen de créer/modifier des données, mais pas unique (l’import/export csv en est un autre)

Les tables sont ... des tables
reprise de ce fil de discussion http://listes.rezo.net/archives/spi...
27 janvier 2007 - <cedric.morin@yterium.com>

Les tables sont ... des tables, pour gérer des données que l’on définit comme on veut dans l’admin. C’est la même interface qui sert à définir les champs d’un formulaire et les champs d’une table. apparté Cedric : Par contre il ya des libellés pas explicites, meme en francais, et ca me plait pas non plus. Mais j’ai pas encore eu le temps de passer faire du nettoyage et de la mise en forme.

La structure des tables se définie dans l’espace privé, via l’interface de création. Chaque champs y est défini, avec un certain nombre de propriétés utilisées pour les boucles, les modèles, ... Cette structure peut se remplir par exemple via l’import d’un fichier csv par exemple), ou même directement dans l’espace privé, ou il est possible de faire de la saisie/edition des données, comme pour n’importe quel objet natif de SPIP.

Il y a une double boucle : une sur les données comme pour des articles par exemple, puis une sur les champs qui constituent ces données, la ou pour une table physique on utilise une balise par champ ... Voir le modele table du plugin par exemple... Aussi pour gèrer l’affichage, lorsque l’on rajoute un champ dans la structure il également modifier l’affichage pour qu’il s’affiche.

Exemples rapide mais concret d’utilisation
reprise de ce fil de discussion http://listes.rezo.net/archives/spi...
27 janvier 2007 - <cedric.morin@yterium.com>

Typiquement un annuaire d’associations, avec un mot clé pour le thème qui permet de sélectionner uniquement une partie, selon le thème de la page en cours :
-  http://www.ville-noyon.fr/-Annuaire...
-  http://www.ville-noyon.fr/Annuaire-...

L’interêt évident est que la table n’est pas figée en dur, le webmestre peut ensuite ajouter/modifier/supprimer des champs dans la table sans avoir a toucher quoi que ce soit au squelette pour être pris en compte, ce qui n’est pas le cas avec une table physique définie lors de la conception du site. Et pour ma part, je n’ai jamais vu de cas ou la définition initiale était la bonne du premier coup, il y a toujours un truc qui ne va pas au moment de la finalisation, nécessitant une reprise du squelette. Sans parler de l’évolution du besoin avec le temps...

Un autre exemple, une table pour faire un trombinoscope, puisqu’on peut joindre des docs et des photos aux données comme avec les articles : http://www.saintsebastien.fr/-L-equ...

Ou une autre présentation d’un annuaire des assos : http://www.saintsebastien.fr/-Assoc...

Et ca ne sont que des exemples. Tu peux définir tout type de table, et même les types de données gérées par les tables sont d’ores et déjà extensibles (les types numéro de tel et code postal, par exemple, ne sont pas en dur car pas universels, mais définis dans un xml personalisable). L’API va être complétée pour permettre d’ajouter des types de champs plus complexes.

Mise en oeuvre

Les boucles

Les tables définies dans Forms&tables sont en fait toutes stockées dans les mêmes tables physiques. Dans les squelettes, on utilise les boucles
FORMS_DONNEES et FORMS_CHAMPS sur le mode :

<BOUCLE_reponses(FORMS_DONNEES){id_donnee}>
<BOUCLE_champs(FORMS_CHAMPS){id_form}{par rang}>
#TITRE : <span class='#_reponses:EDIT{#CHAMP}'>#LESVALEURS{','}</span>
</BOUCLE_champs>
</BOUCLE_reponses>

Notez la balise EDIT qui permet d’utiliser les crayons sur les donnees de vos tables !

La balise #LESVALEURS permet d’eviter une boucle supplémentaire sur FORMS_DONNEES_CHAMPS. Dans cette derniere boucle, #VALEUR retourne non le champ sql brut mais la valeur en clair dans le cas ou il s’agit d’un champ mot clé, select ou multiple. #VALEUR* retourne elle le champ sql brut.

Sur la boucle FORMS_DONNEES
-  le critere tout permet de récuperer les données non validées
-  le critere statut=.. de récuperer les données non publiées (par défaut seules les données avec le statut publié sont retournées par la boucle)
-  le critère id_mot=.. de récupérer toutes les données associées à un mot clé. Cela suppose que la table comporte au moins un champ de type mot clé.

Sur la boucle FORMS_CHAMPS
-  par défaut seuls sont retournés les champs publics
-  le critère tout permet de récupérer tous les champs

Allègement de l’écriture

Date : 17 avril 2007 11:06:50 GMT+02:00
À : spip-zone@rezo.net
Cc : spip-zone-commit@rezo.net
Objet : Rép : [Spip-zone-commit] r11357 - /_plugins_/_stable_/forms/forms_et_tables_1_9_1/public/forms_boucles.php

le commit est parti trop vite, avant que je corrige le commentaire :
-  (DONNEES) -> les données d’une table
-  (TABLE_CHAMPS) -> les champs d’une table
-  (DONNEE_CHAMPS) -> les valeur des champs pour une donnée (donc attention DONNEE au singulier, CHAMPS au pluriel)

Voila ces nommages vont alleger l’écriture. Par ailleurs, le formulaire de recherche sur les tables applique un AND entre les conditions des champs (il faut que le champ 1 ait telle valeur
ET le champ 2 telle valeur). Mais, attention tout de même, sur les champs de type multiple, cela
reste un OU entre les valeurs du meme champ (champ 1 ait telle ou telle valeur ET champ 2 aie telle valeur)

Pour étendre le formulaire de recherche à tous les types de champs(select,multiple, mot par defaut) il suffit de personnaliser formulaires/forms_recherche dans son dossier squelette)

Snippets, Csv_import,ecard

Snippets est autonome, forms&tables aussi, csv_import aussi mais snippets est utilisé par forms&tables pour ajouter des fonctions. Pareil pour csv_import qui ajoute des fonctions a forms&tables. Par contre ecard nécessite froms&tables, et c’est en ce sens un plugin de forms&tables et forms&tables a été pensé pour fournir une api a des plugins, donc il en aura d’autres ...

Un peu de documentation sur Snippets

En savoir plus

Voilà un petit apercu des fonctionnalités, cela mériterait évidemment une grosse doc que je n’ai pas du tout le temps de faire en ce moment , notamment sur l’utilisation avancée du plugin comme support pour d’autres plugins :
-  créations de tables sur structure xml
-  création d’un type de table supplémentaire pour gérer des tables qui ne soient pas mélangées avec celles du module tables par défaut
-  utilisation de l’API d’interface liste/edition/modification ... des tables ....)

Mais le lecteur/codeur curieux pourra utilement se reporter aux plugins spip-sms-listes et spip_outliner pour en savoir plus !

Discussion

180 discussions

  • 3
    piercol

    Bonjour

    J’ai installé Forms&Tables sur mon site, et j’essaye de l’utiliser de la manière suivante :
    je voudrais afficher dans un article seulement le tableau des résultats de la saisie des données, comme celui qui s’affiche dans la partie privée lorsqu’on visualise l’ensemble des données saisies, un beau tableau, avec les titres des champs en haut, le rang de l’enregistrement, etc.

    La mise à jour des données est faite par le rédacteur de l’article. Les visiteurs, dans cet exemple d’utilisation, ne doivent pas pouvoir modifier les données.

    Quel code faut-il entrer dans le texte de l’article pour parvenir à ce résultat ?

    Merci pour vos conseils

    • piercol

      Re-bonjour

      Je me réponds à moi-même, pour signaler qu’en fouillant dans les messages de ce forum j’ai fini par trouver la formule magique qui permet d’afficher une table dans un article dans l’espace public.

      C’est le code table# entre < et > , le # correspondant au numéro du formulaire avec lequel on a créé la table.

      SSSuper, ça marche très très bien - voir cette page où la méthode est appliquée. Et ce nom Mouchedune ou Mouchelune n’aura plus de secrets pour vous !

      Restent pour moi deux questions, mais il est probable qu’en continuant à fouiller, j’ai des chances de trouver des éléments de réponse :

      -  1- comment faire disparaître du tableau le petites loupes à gauche de chaque enregistrement ?

      -  2- plus intéressant encore : il y a une fonction d’export de fichiers au format CSV, c’est très bien. Y a-t-il une fonction d’import de fichier CSV, ou comment arriver au même résultat, afin de récupérer des données d’un tableur (Excel, Open Office ou autre) pour les déverser dans Forms&Tables, ce qui serait proprement fabuleux !

      Cordialement

    • Slt,
      Marre des loupes tritures le fichier /spip/plugins/forms_et_tables_1_9_1/fonds/donnees_tous.html et regarde une ligne où loupe.png est codé. Je dis ça mais c’est sans garantie.
      Pour l’import des tables il y a un plugins ou phpmyadmin
      voili voilou

    • piercol

      Merci pour ta réponse, mais elle ne répond que partiellement à ce que je recherche

      -  pour les loupes : ce que je cherche à obtenir, dans ce cas précis, c’est que la colonne où elles s’affichent n’apparaisse pas sur le site public, mais continue à s’afficher sur le site privé.

      -  pour les imports, je vais regarder dans les plugins, comme tu le conseilles.

      La solution par phpmyadmin ne peut convenir dans le cas de mes sites, car plusieurs personnes y interviennent, avec des statuts de rédacteur ou d’administrateur partiels, et pour des raisons évidentes de sécurité, je suis le seul à avoir un accès aux bases chez l’hébergeur.

      cordialement

    Répondre à ce message

  • 1

    bonjour, j’aimerais recupéré les infos qu’a enregistré l’auteur mais comment faire ?

    < BOUCLE_reponses(FORMS_DONNEES)id_auteur >

    < BOUCLE_champs(FORMS_CHAMPS)id_form=3par rang >

    #TITRE : < span class=’#_reponses:EDIT #CHAMP ’ >#LESVALEURS ’,’ < /span>

    < /BOUCLE_champs >

    < /BOUCLE_reponses >

    mais comment spécifier l’id_auteur ? j’ai essayé en php mais pas moyen ! car j’aimerais le spécifier en fonction de l’auteur qui est logué.

    •  <BOUCLE_reponses(FORMS_DONNEES){id_auteur=#SESSION{id_auteur}}>
       
        <BOUCLE_champs(FORMS_CHAMPS){id_form}{par rang}>
       #TITRE : <span class='#_reponses:EDIT{#CHAMP}'>#LESVALEURS{','}<BR></span>
        </BOUCLE_champs>
        <BR>
       </BOUCLE_reponses>

      affiche les réponses de l’auteur logué pour l’ensemble des formulaires auquel il a répondu.
      Voili voilou
      Pour info en php pour connaitre l’id de l’auteur logué tu fais
      echo $auteur_session['id_auteur'];

    Répondre à ce message

  • 1

    Bonjour,

    J’ai installé ce Plugin en version SPIP1.9.2a sous le répertoire /plugins/forms_et_tables_1_9_1

    J’ai le message suivant qui s’affiche quand je clique sur « gestion des plugins »

    / !\ Fichier absent : public/forms_boucles.php
    / !\ Fichier absent : public/forms_balises.php

    Formulaires&Tables (SPIP 1.9.1+)

    Pourtant ces fichiers existent bien dans le répertoire public de ce plugin.

    Je ne comprend pas, quelqu’un a t’il eu ce problème et l’a t’il résolu ?

    • J’ai exactement le même problème. En fait, c’est sur le serveur seulement que j’ai ça (apache 1.3.37, php 4.4.6 sous linux). En local (Ubuntu, apache 2), tout fonctionne bien (à merveille même). J’utilise SPIP 1.9.2a.

      Tout remède est le bienvenu.

      Simon

    Répondre à ce message

  • 5
    sebmicoud

    Bonjour,

    je rencontre toujours un problème avec le plugin forms & tables. Après plusieurs jours et semaines de recherche, je ne parviens toujours pas à faire fonctionner ce plugin dont j’ai grandement besoin. Mes recherches m’orientent plutôt vers un problème de compatibilité de version mysql, mon site fonctionne avec mysql 3.23.58. Dès que je valide une donnée dans un formulaire de champ, le message votre donnée est enregistrée apparait mais dans le tableau des données, les champs sont vides. Seuls les rang se comptabilisent normalement. Savez-vous quel fichier corriger pour que les valeurs s’écrivent enfin dans le base de donnée ?

    Merci d’avance aux âmes charitables ! ;-)

    • Les versions récentes de f&t n’ont pas été testées avec mysql 3.23, donc il est bien possible qu’une syntaxe d’une requete pose probleme et empeche l’enregistrement des champs.

      Il faut que tu regarde le contenu du fichier tmp/mysql.log qui enregistre les requetes en erreur, pour identifier celle qui est fautive.

      Cedric

    • sebmicoud

      Bonjour et merci pour le conseil,

      j’ai regardé le fichier concerné tmp/mysql.log et j’identifie 2 erreurs qui se répètent :
      -  1146 Table ’mairiewa.spip_forms_donnees_champs’ doesn’t exist
      -  SELECT dl.id_donnee
      FROM mairiewa.spip_forms_donnees_donnees AS dl
      JOIN mairiewa.spip_forms_donnees AS d ON d.id_donnee=dl.id_donnee
      WHERE dl.id_donnee_liee=-8
      Aug 01 15:30:34 XXXXXXXXXX (pid 16032) 1064 You have an error in your SQL syntax near ’ON d.id_donnee=dl.id_donnee
      WHERE dl.id_donnee_liee=-8’ at line 3

      Je ne suis pas du tout expert en sql, as-tu une idée des modifications à apporter ?

      Encore merci pour le coup de main. ;-)

    • sebmicoud

      Après avoir corrigé dans les fichiers les JOIN par LEFT JOIN, je n’ai plus à priori qu’un seul problème au niveau de la création de la table spip_forms_donnees_champs.
      J’ai le message suivant :
      "CREATE TABLE IF NOT EXISTS mairiewa.spip_forms_donnees_champs (
      id_donnee bigint(21) NOT NULL,
      champ varchar(255) NOT NULL,
      valeur TEXT NOT NULL,
      maj TIMESTAMP,
      UNIQUE champ (champ (128), id_donnee, valeur(128)),
      KEY id_donnee (id_donnee))

      Aug 01 16:15:41 81.252.29.177 (pid 20045) 1089 Incorrect sub part key. The used key part isn’t a string, the used length is longer than the key part or the table handler doesn’t support unique sub keys"

      Comment rendre l’écriture de cette table compatible avec ma version mysql 3.23.58

      Encore merci 1000 fois pour vos coups de main. ;-)

    • Essaye de mettre en commentaire la ligne 131 de base/forms.php :

              "UNIQUE champ"         => "champ (128), id_donnee, valeur(128)",

      je l’ai ajoutée recemment pour des problemes de performance et d’unicité lors des restaurations des backups, mais cela devrait être ok pour toi sans cela.

    • sebmicoud

      Merci, le souci venait bien de là. J’ai créé la table « à la main » dans phpmyadmin et tout fonctionne. Merci beaucoup pour ton aide. Je vais enfin pouvoir me servir de cet excellent plugin.

      Merci à tous pour le boulot accompli. ;-)

    Répondre à ce message

  • Bonjour
    Je n’arrive pas a faire fonctionner les crayons dans une table. J’ai essaye un peu tout ce que j’ai trouve dans ce forum, mais rien n’y fait. Donc en partant d’un spip tout neuf avec les 2 pluggins tout neufs aussi, je cree un article, une table avec 2 champs que je rempli. J’associe la donnee 1 a mon article 1 et j’affiche via le squelette article de la dist dans le lequel je rajoute la boucle suivante juste apres l’affichage du texte de l’article :

    <BOUCLE_reponses(FORMS_DONNEES){id_form=1}>
    <BOUCLE_champs(FORMS_CHAMPS){id_form}{par rang}>
    #TITRE : <span class='#_reponses:EDIT{#CHAMP}'>#LESVALEURS{','}</span>
    </BOUCLE_champs>
    </BOUCLE_reponses>

    Tout s’affiche correctement, les crayons fonctionnent dans le texte. Mais dans une donnee apres avoir valide, la roue tourne et puis plus rien...

    J’ai releve 2 erreurs, une dans la console webdeveloppeur et l’autre dans le spip.log du repertoire tmp (rien dans le fichier mysql)

    Console webdev

    <br />
    
    <b>Warning</b>:  Illegal offset type in <b>d:\sites\ruelibre\www2\plugins\forms_et_tables_1_9_1\forms_crayons
    
    .php</b> on line <b>18</b><br />
    
    {"$erreur":"forms_donnee 1 : Modifié par ailleurs"}

    spip.log

    Dans cette ligne la, ca se passe bien :

    Aug 01 19:41:11 127.0.0.1 (pid 3072) calcul (0.00s) [plugins/crayons/vues/article_texte] id_article=’1’, champ=’texte’, class=’crayon article-texte-1 texte crayon-autorise crayon-hover’, lang=’fr’, texte=’df ghdfgh dfghdfghsfdghsdfhsdfh sfgh sfghs hsfgh sfghsfg hsfghsdf ghdfgh dfghdfghsfdghsdfhsdfh sfgh sfghs hsfgh sfghsfg hsfghsdf ghdfgh dfghdfghsfdghsdfhsdfh sfgh sfghs hsfgh sfghsfg hsfghsdf ghdfgh dfghdfghsfdghsdfhsdfh sfgh sfghs hsfgh sfghsfg hsfghsdf ghdfgh dfghdfghsfdghsdfhsdfh sfgh sfghs hsfgh sfghsfg hsfghsdf ghdfgh dfghdfghsfdghsdfhsdfh sfgh sfghs hsfgh sfghsfg hsfghsdfghdfghdfghdfghxxx’, fond=’vues/article_texte’, date=’2007-08-01 19:41:11’, date_redac=’2007-08-01 19:41:11’ (405 octets)

    Et la ca se passe mal ?

    Aug 01 19:41:13 127.0.0.1 (pid 3072) calcul (0.01s) [plugins/forms_et_tables_1_9_1/formulaires/forms_structure] champ=’ligne_2’, erreur=’a:0 :{}’, id_form=’1’, id_donnee=’1’, valeurs=’a:1 :s:7 :"ligne_2" ;s:7 :"donnee2" ;’, crayon_active=’crayon-active’, id_forms_donnee=’1’, lang=’fr’, key=’wid46b0c5bcc71995_44775051’, largeur=’170’, hauteur=’80’, name_ligne_2=’content_wid46b0c5bcc71995_44775051_ligne_2’, style=’color:rgb(51, 51, 51) ; font-size:16px ; font-family :"Trebuchet MS",Helvetica,sans-serif ; font-weight:400 ; line-height:normal ; background-color:rgb(255, 255, 255) ;’, fond=’formulaires/forms_structure’, date=’2007-08-01 19:41:12’, date_redac=’2007-08-01 19:41:12’ (1032 octets)

    C’est pareil en local avec EasyPhp8 (donc mySql4) et chez OVH en MySql4 aussi

    Répondre à ce message

  • Bonjour,

    je suis un débutant en spip donc j’espère que je pose bien la question au bon endroit et je m’excuse par avance si ce n’est pas le cas. Nous développons un site web pour un labo et comptons faire une utilisation intensive du plugin Forms & Tables. Il nous manque cependant un certain nombre de fonctionnalités :

    * La possibilité que les mots clés associés à la réponse à un formulaire soient automatiquement associés à l’article qui résultera de l’exportation de cette réponse (à première vue, ça ne m’a pas l’air trop difficile, il me semble que rajouter une ligne ou deux bien placée dans action_forms_exporte_reponse_article devrait faire l’affaire). Ai-je loupé quelque chose ? Y’a-t-il déja un support pour faire ça ?

    * Actuellement quand une réponse est exportée en tant qu’article. Lorsqu’on utilise le crayon pour éditer l’article... et bien on édite l’article et pas la réponse, ce qui est normal. Je comprends bien qu’éditer la réponse n’est pas trivial mais bon, en admettant (par exemple en regardant s’il existe une réponse associée à cet article) qu’on puisse renvoyer vers la réponse (dans forms_reponses), y’a-t-il une fonction permettant d’éditer une réponse puis de la réexporter en tant qu’article ? Je n’ai pas trouvé de telle fonction mais si elle n’existe pas, est-ce difficile à rajouter à votre avis ?

    Mmh, bon, c’est tout pour aujourd’hui. J’espère que mes questions étaient suffisamment claires. Merci d’avance pour votre aide.

    Répondre à ce message

  • Dans Form & Table, le champ « date » n’a pas au bout de la ligne le calendrier. Il n’apparaît pas. Il faut deviner qu’il est là, au bout et le chercher avec la souris. Ensuite, en cliquant, il apparaît en plus grand.

    Anomalie constatée avec Firefox et IE7
    Anomalie constatée sous beespip et sous squelette dist
    SPIP 1.9.2a [8878]

    Merci et Bravo

    Répondre à ce message

  • 1

    Bonjour
    J’ai un probleme d’utilisation des tables... J’ai cree une table et je la rempli. Puis dans plusieurs articles j’associe certains des champs de la table. Je voudrais afficher ces champs dans la partie publique dans ces articles. Mais quelle balise et quelques boucles a mettre dans le squelette ? J’ai teste pleins de trucs, rien de fonctionne... Quelqu’un a t’il un exemple d’utilisation ?

    Ca ca m’affiche bien le champs 1 :

    <BOUCLE_reponses(FORMS_DONNEES){id_donnee=1}>
    #ID_DONNEE
    <BOUCLE_champs(FORMS_CHAMPS){id_form}{par rang}>
    #TITRE : #LESVALEURS{','}
    </BOUCLE_champs>
    </BOUCLE_reponses>

    Mais quelle variable je peux mettre a la place de mon 1 dans id_donnee=1 ?

    • C’est bon j’ai trouve. En fait chaque table a un id_article si elle a ete associee a un article... Ca donne donc :

      <BOUCLE_reponses(FORMS_DONNEES){tout}{id_article=#ID_ARTICLE}>
      
      	<BOUCLE_champs(FORMS_CHAMPS){id_form}{par rang}>
      		[<div class="donnee">#TITRE : <span class='#_reponses:EDIT{#CHAMP}'>(#VALEUR)</span></div>]
      	</BOUCLE_champs>
      
      </BOUCLE_reponses>

    Répondre à ce message

  • 10

    Bonjour

    Dans l’interface d’administration, après avoir créé mon premier champ, le champ créé ne s’affichep as et aucune possibilité de création de nouveau champs non plus (apercu disponible par contre sur le coté).
    J’ai importé un formulaire... pareil : acun champ n’apparait dans l’onglet « champs », seul les aperçus sont disponibles.

    SPIP 1.9.2b [9381] hébergement dédié
    Forms et tables 191 du 21/07/07

    J’ai finalement mis une version du 12/07/07 et celà fonctionne bien... ou presque (mais avant de rapporter d’autres difficultés sur une ancienne version, il vaudrait peut-être mieux que j’arrive à installer la dernière)

    • et avec ta version du 12/07 ca fonctionne <tableX|recherche> dans un article ?

    • et avec ta version du 12/07 <tableX|recherche> fonctionne t’il dans un article ?

    • euh... c’est quoi ? je fais comment pour tester ?

    • c’est un modele de recherche prédéfini dans le plugin <tableX|recherche> où X est le numéro de ta table.

      tu colles ca dans le corps d’un article , dans la partie texte.

      ca créé un formulaire de recherche sur la table en question, par défaut les champs select par exemple sont actif pour faire une recherche sur le contenu de la table.

      chez moi ca marchait auparavant mais depuis les mises à jour du plugin ca plante.

    • Après quelques réglages sur le champ (spécifiant, public,... et peut être quelques propriétés inutiles), il m’affiche un petit tableau listant les réponses classées par id.

    • c’est bien ca fonctionne chez toi,

      tres bien peux tu me donner un lien où télécharger la version de forms et tables que tu utilises ?
      car je ne vois plus que la dernière sur le site merci

    • Je l’ai en réserve sur mon ordi. Je peux te l’envoyer.

      Où je peux trouver ce genre de petites fonctions super intéressantes ?

      sur tableX|recherche
      Y a t-il des possibilités de tri et de filtre du tableau ?
      Est-il possible de n’afficher que certaines infos dans le tableau et la totale dans le recapitulatif du dessous quand on clique sur une donnée ?
      ... ?

    • oui , c’est possible, je ne sais pas si c’est conseillé mais je me suis inspiré du mode d’emploi « annuaire pour forms et tables »

      dans le modele « table_recherche.html » (que tu copie dans un répertoire modeles de ton dossier squelettes) tu peux modifier la ligne :

      <BOUCLE_body(FORMS_CHAMPS){id_form}{titre IN (nomduchamp)}{type !IN (separateur,textestatique)}{par rang}{specifiant=oui}>

      tu rajoutes ainsi le nom du champ que tu veux faire afficher.
      le problème c’est que ton modele « table_recherche » est donc lié à une table en particulier. Tu peux donc laisser le modele de base table_recherche et créer un deuxieme fichier que tu nommeras « table_recherche2.html » que tu appelleras de la même façon dans ton article.

      Oui, tu peux m’envoyer ton fichier plugin zippé par email

    • Où je trouve ton adresse pour le zip ?

    • mon nom n’est pas critiquable donc je te la met comme ça :
      pietrusgracchus@hotmail.fr

    Répondre à ce message

  • Tout est mis à jour, 24/07

    aucun plugin ne vient interférer avec forms et table et snippet et désormais en plus du bug sur table recherche j’obtiens un bug lorsque je veux créer mes tables et surtout éditer celles ci

    Fatal error: Call to undefined function: bouton_block_depliable() in /home/siteinternet/www/repertoire/plugins/forms_et_tables_1_9_1/inc/forms_edit.php on line 405

    vous n’avez pas repéré ce problème ?

    merci

    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