SPIP - Contrib

SPIP - Contrib

[ar] [en] [es] [fr] [it]

239 visiteurs en ce moment

fontsizeup fontsizedown
[65 commentaires]

Annuaire avec Forms & Tables

lundi 25 juin 2007, par JDW

  • Digg
  • Del.icio.us
  • Facebook
  • Google
  • Technorati
0 vote

Exemple concret de création d’un annuaire style « page jaune », qui peut servir aussi de pas à pas pour le plugin Forms & Tables

Cette mini doc est tirée de ma propre expérience de débutant avec SPIP, et n’est peut-être pas la meilleure façon de faire, mais au moins cela fonctionne.

Nota SPIP-Contrib : une contribution qui affiche clairement sa nature de témoignage de mise en oeuvre pouvant être améliorée de Forms & Tables, mais justement intéressante pour cela

Un annuaire en trois pages

L’annuaire est composé de trois pages
- La première est la liste des catégories (métier, ou autre), la page entreprise.html
- La seconde liste les fiches qui appartiennent à la catégorie choisie, la page fichecat.html
- La dernière est la fiche détaillée du sujet, la page ficheent.html

JPEG - 307 ko
Aperçu de l’annuaire
Montage de prises d’écran

Utilisation de Forms & Tables

Tout d’abord, il vous faut créer deux tables, dans la partie privée. Appelons-les « Entreprises » et « Catégorie » :
- « Entreprise » correspond à votre table principale. Elle contient des champs comme « Nom », « Adresse », « Téléphone », etc.
- « Catégorie » n’a qu’un seul champ, le champ « NomCat »

L’idée est d’utiliser le champ de table liée pour simuler une contrainte hiérarchique et générer ainsi un arbre hiérarchique. En réalité, tout est factice, mais le résultat correspond à ce que l’on cherche.

La page entreprise.html

J’ai choisi d’afficher les catégories par 2, mais vous pouvez simplifier le code en supprimant tout ce qui est html+la boucle _suite.

Cette page est simple, on liste toutes les catégories de notre table « catégorie » et on y colle un lien qui prend en paramètre le nom de la catégorie. (Et non l’id). Petit point interessant, pour trier les données, on utilise "tri_donnee NomChampSpecifiant". Ainsi il faut que le champ soit déclaré "spécifiant" et que l’on releve son nom de champ spécifiant en regardant dans la base de donnée, ou dans les URL servant à trier les données depuis la page d’administration. Ils sont de la forme "ligne_X"

Son code de squelette est le suivant

La page fichecat.html

Cette page n’est absolument pas optimisée, mais elle est tout de même la page qui posait problème à beaucoup de personnes. La liaison de table étant factice, comment réalisé les boucles ? Je ne sais pas comment Cédric fait, mais voici ma façon de faire.

D’abord, je vais chercher dans la table « FORMS_DONNES_CHAMPS » l’id qui correspond au nom de ma catégorie.

Ensuite je crée un tableau ’tab’ et j’y imbrique trois boucles (voir le code plus bas) :
- la première sélectionne l’id_form de votre table « Entreprise »
- la seconde sélectionne uniquement les id_donnee qui ont une correspondance à votre id de catégorie dans la table « FORMS_DONNEES_DONNEES. »
- enfin la dernière choisit de n’afficher que le nom de l’entreprise et la range dans le tableau.

Si j’ai utilisé un tableau c’est parce que cet enchainement de boucles a un soucis que je n’ai su résoudre, des doublons. Alors grâce au tableau je passe une petite fonction array_unique pour les balayer.

Enfin, je mets en lien ma ficheent.html avec en paramètre mon id_donnee (et accessoirement le nom de la catégorie si je veux l’afficher dans la fiche de mon entreprise)

La page ficheent.html

J’ai laissé exprès la mise en page pour montrer l’utilisation des différents type de champs, notamment les images.

Mon astuce pour afficher une image est d’utiliser un champ ligne de texte, d’utiliser l’uploader de SPIP (pour cela pensez a cocher « permettre l’ajout de fichiers » a la création de la table), puis en glisser/deposer, l’URL de mon image se retrouve dans ma ligne de texte.

Je traite a la suite mon champ dans une balise par un #SET puis un #GET qui prend en sus un filtre de création de vignette. (L’encapsulation de f&t doit pouvoir être utilisée mais je ne sais pas comment)

Bon sinon cette page est aussi simple que la première, on affiche nos différents champs (soit avec #LESVALEURS si on ne désire pas de mise en page, soit un par un grâce au critère {titre})

Conclusion

Si vous voulez voir le résultat final : http://www.coutras-calic.fr/spip.php?page=entreprise. ou regardez le document joint.

Merci à tout les gens qui m’ont aidé sur la liste spip-zone, sur SPIP-Contrib et surtout le canal irc #spip@freenodes !

Si vous avez des questions ou des réponses aux choses que je n’ai su faire proprement n’hésitez pas ...

Autres exemples d’annuaire avec Forms & Tables

Ajout SPIP-Contrib

Voir cet intéressant article sur Spip Ô Toulouse : Premières solutions pour l’annuaire de personnes avec un exemple très parlant et qui décrit l’importation de données via le le plugin « import csv ».

Retour en haut de la page

65 Messages de forum

Voir toute la discussion

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7

  • Répondre à ce message

    17 novembre 15:44 , par Julien

    Bonjour,

    J’ai suivi étape par étape le tutorial ci-dessus et tout fonctionne nickel. Seulement j’aimerai faire une petite variante mais je m’en sort pas du tout. Dans l’éxemple nous avons le cheminement suivant : Les entreprises (par catégorie) -> Les noms d’entreprises (liste) -> Les informations de l’entreprise.

    Moi j’aimerai pourvoir avant toutes ces étapes séléctionner le Pays. Cheminement : Les Pays -> Les entreprises (par catégorie) -> Les noms d’entreprises (liste) -> Les informations de l’entreprise.

    J’ai bien essayé d’ajouter un troisième table de référence mais cela mélange les informations. Je n’arrive vraiment à rien. Quelqu’un peut-il m’aider ?

    Merci pour votre attention,

    Julien

  • Répondre à ce message

    27 octobre 20:22

    l’ancien code proposé sur ce forum pour integrer la recherche sur les tables de "forms et table" au moteur de recherche de spip ne fonctionne plus,

    quelqu’un a t’il une proposition ?

    un code à ajouter dans recherche.html pour permettre la recherche sur des tables

  • Répondre à ce message

    23 octobre 09:13 , par manu

    Un coup d’oeil à la page suivante apportera des éléments de réponse à ta question

    Carnet de notes

  • Répondre à ce message

    24 septembre 11:10 , par Pascal M

    Bonjour,

    merci pour ce plugin. Je galère néanmoins encore pas mal et n’arrive pas à faire ce que je voudrais, à savoir monter un annuaire comme celui ci :

    http://afup.org/pages/annuaire/

    Quelqu’un aurait-il une idée sur la façon de procéder pour arriver à une résultat similaire ?

    Je pense que ça n’est pas trop compliqué, je pensais créer une seule table avec les champs nom, prénom, tel etc...

    mais je n’arrive pas à trouver comment la faire afficher dans la partie publique dans un article ou un squelette...

    Quelqu’un peut m’aider ?

    Merci par avance

  • Répondre à ce message

    8 septembre 01:57 , par cy_altern

    Comme indiqué explicitement dans la doc de ce plugin (http://www.spip-contrib.net/plugin-...), il n’est pas compatible avec toute version postérieure à la 1.9.2...

  • Répondre à ce message

    8 septembre 01:50 , par cy_altern

    le "plus simple"(!) pour entrer dans les subtilités des balises de F&T consiste à jeter un œil au code des fichiers modèles fournis dans le répertoire /plugins/forms_et_tables_1_9_1/modeles

  • Répondre à ce message

    7 septembre 23:22 , par Jean-Baptiste

    Bonjour et merci pour votre contribution,

    J’aurais une question : comment avez-vous trouvé que la boucle FORMS_DONNEES avait comme balise #VALEUR ?

    En effet, lorsque l’on étudie la structure des tables SQL générées par le plugin, on constate que la table SPIP_FORMS_DONNEES n’a pas de champ VALEUR. Par contre, VALEUR est un champ de la table SPIP_FORMS_DONNEES_CHAMPS ...

    Merci

  • Répondre à ce message

    21 août 19:31 , par Tatimanou

    Bonjour, je suis novice en la matière. Je "gère" le site internet de mon club de badminton. Nous avons généré un formulaire d’inscription au club. Est ce qu’il est possible de récupérer des informations des réponses envoyées pour renseigner une table qui permettra d’élaborer l’annuaire ?

    Je n’ai pas tout compris à ce tuto. Est ce que je dois créer ces 3 pages ? Si oui, dans quelle arborescence ? merci d’avance Emmanuelle

  • Répondre à ce message

    26 juin 23:59 , par Marjo

    Merci pour cette contrib !

    Je souhaite afficher les données récoltées dans ma table et pouvoir trier selon les champs spécifiants déclarés (avec des petites flèches pour choisir le sens du tri).

    Savez-vous comment je dois faire ? J’ai cherché mais ne trouve rien.

    Merci

  • Répondre à ce message

    8 juin 23:27 , par Nothing

    Visiblement l’utilisation de ces feuilles de squelette fonctionnent mal avec spip 1.9.3.

    J’ai utilisé "Forms & Tables" pour la version 1.9.3, cependant j’ai cette erreur :

    Fatal error : Only variables can be passed by reference in /var/www/ecrire/public/composer.php(65) : eval()’d code on line 62

    Visiblement SPIP n’aime pas qu’on envoie certains paramètres en url ... où je me trompe ? Exemple : http://192.168.0.5/spip.php?page=fichecat&nom_cat=Cat1

    Avez vous des idées sur la résolution de ce problème ?

    Quelqu’un à déjà eu un tel problème avec spip 1.9.3 ? C’est "que" moi ? :)

Pages 1 | 2 | 3 | 4 | 5 | 6 | 7

Répondre à cet article

Retour en haut de la page

Ça discute par ici

SPIP | Squelette | | Plan du site | Suivre la vie du site RSS 2.0