SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 234 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

  • Mailsubscribers

    16 janvier 2013 – 274 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes (...)

  • noiZetier v2

    9 novembre 2012 – 36 commentaires

    Le noiZetier offre une interface d’administration permettant d’insérer au choix des éléments modulaires de squelettes (noisettes) et de les ajouter ainsi à ses squelettes. Compatibilité La version 2 du noizetier fonctionne sous SPIP 3. Elle est (...)

  • cirr : plugin « rédacteur restreint »

    29 octobre 2010 – 60 commentaires

    Ce plugin « cirr : rédacteur restreint » permet d’affecter des rubriques aux rédacteurs et modifie les droits afin qu’un rédacteur restreint (ou un administrateur restreint) voit dans l’espace privé uniquement les rubriques qui lui sont affectées (et leur (...)

  • Un retour d’expérience d’utilisation de Formidable

    26 octobre – commentaires

    Il s’agissait de créer un formulaire d’inscription à un évènement modérer les inscriptions dans le privé publier les inscriptions dans le public Nous avons discuté de cette présentation lors de l’apéro SPIP du 15 février 2016 à la Cantine (...)

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

Ça spipe par là