SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 218 visiteurs en ce moment

Accueil > Documentation > Archives documentation > Des champs multivalués, une alternative ponctuelle aux Extras

Des champs multivalués, une alternative ponctuelle aux Extras

4 février 2004 – par JLuc – commentaires

2 votes

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Cette contrib permet de quicher plusieurs contenus dans un même champ contenant, et de les récuperer au besoin par un filtre.

Spip est tellement pratique qu’il sert pour plein d’autres choses que ce pour quoi il est prévu à l’origine... Pour cela, l’utilisateur affecte des fonctions particulières aux champs des articles et autres objets spip : par exemple, le sous titre contiendra en fait la référence d’un livre, ou le PS la fiche technique d’un produit ... Mais parfois, il arrive qu’il manque de champs prédéfinis !!! Dans sa grande vérsatilité, SPIP propose alors des champs extras (en phase de rodage...), qui, au prix d’une mise en oeuvre un peu technique (c’est pas du presse bouton pour le webmaster), sont d’une utilisation complètement transparente pour le rédacteur.
Cette contribution présente une alternative : les champs multi-contenus, gérés « à la main ».

Pour cela il faut :
-  un formalisme de description d’un champ multi-contenu
-  un filtre pour récupérer un contenu : val_contenu

formalisme

Un champ dont on souhaite qu’il soit multi-contenu doit contenir une suite de couples #clé#valeur du contenu associé à la clé#, où clé est la clé permettant de récupérer le contenu.

Exemple :

Le site d’un voyagiste présente des voyages dans des ARTICLES. Les différents champs standards sont utilisés pour décrire le titre et les caractéristiques principales du voyage. Mais le voyagiste voudrait aussi décrire les caractéristiques du pays traversé, or il n’y a plus que le champ PS de disponible !! Alors on utilisera ce champ PS comme champ multicontenu.

Ainsi, PS contiendra, pour un voyage à Cuba :

#pays#CUBA#
#superficie#110 860 km2 (0,2 x la France)#
#capitale#La Havane#

#population#11 millions d'habitants#
#origines#La majorité de la population cubaine trouve ses racines en Espagne. Plus de 10% de la population de l'île est d'origine africaine, 1% d'origine chinoise et 22% est métissée.#
#langues#espagnol#
#religions#Santerías, catholicisme, protestantisme#

#politique#République communiste#
#président#Fidel Castro# 78 ans en janvier 04 ...
#monnaie#Le peso cubain (le peso convertible, le dollar US)#
 

Notez qu’entre chaque couple, on peut juste mettre un espace, ou aller à la ligne, ou même sauter une ligne pour plus de clarté avec les grands textes dans la zone de saisie, ou bien même, on peut glisser un commentaire.

le filtre

définition

Le filtre val_contenu doit être défini dans mes_fonctions.php3 :

domaine d’application

A priopri, tous les champs de tous les objets peuvent en bénéficier : TITRE, SOUSTITRE, SURTITRE, DESCRIPTIF, TEXTE, CHAPO, PS, NOM_SITE, ..., pour les ARTICLES, les BREVES, les AUTEURS, les RUBRIQUES, les DOCUMENTS...

exemple

Toujours dans le cas de l’article sur un voyage à Cuba, PS contenant les multiples contenus définis ci-dessus, le filtre val_contenu permet d’y accéder pour les restituer à leur place adéquate dans le squelette :

[(#PS|val_contenu{"pays"})]
a une superficie de [(#PS|val_contenu{"superficie"})]
et une population de [(#PS|val_contenu{"population"})].
[Origines : (#PS|val_contenu{"origines"})].
On y parle [(#PS|val_contenu{"langues"})].
Sa capitale s'appelle [(#PS|val_contenu{"capitale"})]

Lorsqu’il n’y a pas de valeur correspondant à la clé demandée, la fonction retourne une chaine vide, et il est donc possible de le tester avec les crochets [ et ].

bilan

Le moinss : Cela demande aux rédacteurs de se conformer au formalisme #clé#valeur de la clé# etc... Si c’est pas envisageable, il faudra les EXTRA !

Le plus : C’est souple puisque c’est appelé par les squelettes et qu’on peut définir très finement le contexte d’utilisation : tout le site, ou juste un secteur, ou juste une rubrique, ou juste un article...

Questions / Réponses

-  Pourquoi / quand utiliser cette contrib plutôt que les champs extra ?

Quand tu le sens. Quand tu n’as pas cherché la doc pour les EXTRAs et que tu ne peux donc pas les utiliser. Quand tu as trouvé la doc pour les EXTRA et que tu te sens pas de les utiliser. Quand tu veux quelquechose d’un peu plus contexte-localement-utilisable. Quand tu tombes sur cette contrib et que ça répond à tes besoins.

-  Est-il prévu/envisagé de modifier articles_edit pour générer un formulaire (en fait, autant de input que de champs) au lieu du champs ?

Pas du tout. Les champs EXTRAs sont très bien pour ça.

-  Il y a des # dans mes textes, je peux pas m’en servir comme ça, comment je fais ?

Le caractère # a été choisi car il est rarement utilisé dans les textes. Si il ne convient pas à un contexte donné, il est possible de le remplacer par un autre caractère, ou par une séquence plus rare de caractères, en modifiant le filtre en conséquence.

-  « Quicher » ça veut dire quoi ?

« quicher », c’est patoisant surement ; ça veut dire « mettre, remplir, serrer, tasser ». Les filles qui emploient cette expression ont souvent un joli sourire, ça me plait de le mettre comme ça ... Comme le « moinss », c’est un clin d’œuil hommage à la diversité de nos régions.

Dernière modification de cette page le 7 mai 2010

Retour en haut de la page

Vos commentaires

  • Le 17 janvier 2006 à 16:03, par Pascale En réponse à : Filtre val_contenu pour champs multi-contenu

    J’utilise le filtre avec spip 1.8.2e. Il y un problème si le texte filtré contient ’ ou ° : le texte est coupé et & apparaît à la place du texte manquant.

    J’ai essayé de l’utiliser avec le filtre texte_script mais cela ne change rien.

    Si quelqu’un a une idée, merci d’avance !

    Répondre à ce message

  • Le 11 juillet 2004 à 11:50, par Kurgbe En réponse à : > Filtre val_contenu pour champs multi-contenu

    Idée assez géniale : facile à mettre en oeuvre, flexible et puissante !

    Que se passe t’il au niveau du moteur de recherche SPIP ? Je suppose que le nom des champs et leur contenu sont indexés.

    J’envisageais d’utiliser ton approche pour encapsuler de l’information interne aux rédacteurs dans les articles, information qui ne serait pas visible par les visiteurs de mon site. Evidement avec l’indexation SPIP, je pense que cela ne marcherait pas.

    Michel

    Répondre à ce message

  • Le 8 juillet 2004 à 17:28, par ? En réponse à : > Filtre val_contenu pour champs multi-contenu : pb avec spip 1.7

    La version 1.7 de Spip code certains caractères et notamment l’apostrophe, ce qui fait que le filtre se retrouve avec des # partout et s’emmêle les pinceaux…

    Répondre à ce message

  • Le 1er juin 2004 à 16:28, par Dams En réponse à : > Filtre val_contenu pour champs multi-contenu

    Salut, super contrib, merci :D

    Juste une question, je souhaiterais comparer cette technique avec la technique d’extra... je cherche la doc depuis un moment... mais je ne sais pas où elle se cache.

    Serait-il possible d’avoir un lien depuis cet article ?

    Meci d’avance

    Répondre à ce message

  • Le 25 février 2004 à 17:11, par nico En réponse à : > erreur syntaxe ?

    très sympa et simple à mettre en oeuvre

    par contre au niveau syntaxe, ça serait plutôt :

    [(#PS|val_contenu{"pays"})] a une superficie ...

    Amicalement

    Répondre à ce message

  • Le 25 février 2004 à 11:22, par Renaud En réponse à : > Filtre val_contenu pour champs multi-contenu

    Bonjour,
    Cette contribution paraît bien intéressante. Peut-on voir quelque part un exemple en ligne ? De mon côté, je cherche à mettre sur site de façon très simple, si possible sur SPIP, toute une bibliothèque de livres : auteur, titre, éditeur, année, lieu... pour une petite librairie. L’idéal serait de mettre la base à jour sur Exel par exemple et de l’interfacer avec SPIP, mais je ne suis pas programmeur !... si quelqu’un a des solutions séduisantes à me proposer, je suis preneur !...
    Merci en tout cas pour cette proposition.

    Amicalement,

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Pour un fonctionnement communautaire efficace dans la communauté SPIP

    24 mai – 12 commentaires

    Où l’on propose de tester des nouvelles façons de prendre des décisions et d’avancer collectivement sur des projets SPIP, de manière transparente, en impliquant la communauté, et en étant plus accueillants pour les nouvelles personnes. Tout ça dans la (...)

  • Mise à jour automatique des plugins

    5 octobre 2009 – 148 commentaires

    Une nouvelle lame du Couteau Suisse permet de visualiser les plugins nécessitant une mise à jour, tout comme SPIP lui-même ! Présentation Rendons à César ce qui est à César, voici un extrait de la présentation du Couteau Suisse pour sa lame « Mise (...)

  • cibc : bannière d’avertissement pour les cookies

    28 octobre 2014 – 55 commentaires

    L’objectif de ce plugin est d’informer l’utilisateur et de recueillir son consentement (ou son refus) sur l’utilisation par le site de cookies de mesure d’audience, de publicité ciblée ou de réseaux sociaux. Les objectifs de ce plugin Le premier (...)

  • SPIP-Bible

    25 janvier 2010 – 90 commentaires

    Permet de citer rapidement des extraits de la Bible en utilisant un modèle dans le texte d’un article.

  • Mailshot

    16 janvier 2013 – 258 commentaires

    Ce plugin prend en charge l’envoi en nombre d’info-lettres par email. Mailshot permet l’envoi en nombre d’emails au moyen d’un SMTP (ou d’un service externe) dédié à cet effet. Il permet de limiter la cadence d’envoi. Enfin, ce plugin implémente la (...)

Ça spipe par là