Modèle

  une noisette intégrée d’usage automatisable


Modéliser un comportement, c’est le rendre disponible à la reproduction, et les modèles de SPIP respectent cette idée.

Un modèle, c’est simplement une noisette de SPIP, rendue disponible de façon dynamique au sein même des articles (donc pour les rédacteurs), avec la syntaxe d’appel HTML, les paramètres étant pris dans l’environnement d’appel.

On peut comparer l’usage des modèles aux shortcodes que certains produits proposent aux rédacteurs d’incorporer dans les articles.

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Un Modèle est un morceau de code HTML (un morceau de squelette, donc une noisette) préparée, qui peut tout aussi bien être inséré à partir d’un squelette, ou dans le corps du texte d’un objet éditorial.

Pour utiliser un modèle dans un squelette, on peut prendre une inclusion traditionnelle, ou bien utiliser la balise #MODELES.

Pour utiliser un modele dans un contenu editorial, on insere une balise pseudo-HTML (mises entre chevrons : "inférieur" et "supérieur") , à la syntaxe des filtres de squelettes

Le nom du modèle indique le nom du fichier HTML inclus à partir d’un sous-dossier /modeles que vous pouvez créer dans votre dossier ./squelettes, ou sinon repris des modèles par défaut. [1] [2] [3]

Les modèles fournis

SPIP fournit un certain nombre de noisettes-modèles :
- les modèles d’objets : doc, emb , img, cfg , audio , text & video principalement pour les documents/fichiers joints.
- des modèles spécifiques : <article_mots> <article_traductions> <lesauteurs> et <favicon> [4], auquel SPIP 3 ajoute un <plan>, sans oublier les modèles de medias, désormais dans ./plugins-dist/medias/modeles/.
Mais vous avez aussi accès aux modèles du prive/modeles/, diverses paginations et le modèle <formulaire>.

Ce formulaire que vous trouverez dans ./prive/modèles est l’une des rares exceptions à la règle de ne jamais écrire de PHP dans un squelette : mais là, c’est pour appeler directement la balise dynamique du formulaire au sein d’un article, parmi Les formulaires CVT de votre application.
Ainsi, au lieu d’écrire #FORMULAIRE_TOTO dans un squelette, votre rédacteur peut écrire <formulaire|toto> dans son article [5] ; toutefois, il faudra quand même insérer correctement les paramètres complémentaires dans l’article, pour obtenir un fonctionnement correct : cela vous est facilité par le plugin Inserer modèles, qui permet même d’en calculer les paramètres attendus (par extraction des fichiers YAML de description).


Parmi les usages possibles, l’un des plus originaux est de pouvoir "inclure" le contenu d’un champ d’un objet dans un autre -autre solution que l’article virtuel pour placer un article dans plusieurs rubriques ; ainsi vous pouvez facilement inclure le contenu texte d’un article existant, dans le post-scriptum d’un autre nouveau, en y insérant l’appel au modèle <article33|texte> dans le corps du nouvel article...
Encore faut-il bien sûr, avoir défini ce modèle dans le sous-dossier ./squelettes/modeles/ de vos squelettes :

  1. [(#REM) article_texte.html : renvoie le #TEXTE d'un article
  2. <template><article1|texte></template>
  3. ][(#REM)
  4. Modele <article1|texte> : texte d'un article
  5. #MODELE{article_texte}
  6.  
  7. Dans le corps (ou tout autre champ) d'un article
  8. ]
  9.  
  10. <BOUCLE_article(ARTICLES) {id_article} {0,1}>
  11. #TEXTE
  12. </BOUCLE_article>

Télécharger


Enfin, pour faciliter l’usage de modèles pour les rédacteurs d’articles, un plugin généralise la manipulation standard INsérer modèles, qu’il serait sans doute utile d’intégrer complètement au core de SPIP !


Merci de nous signaler les coquilles ou erreurs qui figureraient dans cette page.

[1dans SPIP 1.9, les modèles de base étaient rangés dans dist/modeles/.

[2en SPIP 2.0, les modèles de base sont rangés dans prive/modeles/

[3depuis SPIP 3.0, les modèles sont rangés dans ./squelettes-dist/modeles/, et vous en trouverez aussi dans ./prive/modeles/, mais surtout dans ./plugins-dist/medias/*...

[4Egalement un <foreach> : voir la programmation Bonux.

[5Nous réalisons actuellement une maquettisation d’une application conversationnelle de cette façon, en RAD directement dans l’Intranet SPIP...


Liens visibles seulement pour les inscrits.

Article publié le 2 mars 2012, et actualisé en août 2016 .

Répondre à cet article