Xrousse.org

Css
Xrousse
Lynx

Beryo, système de publication pour le web

Personnaliser les templates des rubriques

Publié par Yo' le lundi 27 février 2006

Sommaire

Principe général
Description des paramètres d'affichage
Champs dynamiques d'un template : les tokens
Tokens spéciaux et traitement d'affichage
Quelques exemples de Templates

Principe général

Dans le système Beryo, chaque élément de l'arborescence du site fait référence à un module. Un module est donc un ensemble de paramètres qui définissent la page : Quels sont les champs qui composent la page, que doit-on afficher, quels tests faut-il effectuer lorsque l'utilisateur valide un formulaire de saisie etc...

Tous les éléments du module sont donc paramétrables. Par mesure de sécurité et parce que la modification 'hasardeuse' d'un module peut rendre le site non fonctionnel, Beryo est paramétré par défaut pour que l'administrateur puisse simplement modifier les paramètres d'affichage, appelés Templates. Voir la partie 'Créer vos propre modules' pour savoir comment étendre les droits del'administrateur.

Pour accéder aux paramètres d'affichage d'un module, il suffit en mode administrateur de cliquer sur le menu Modules de l'arborescence, puis d'afficher la Back-Office et enfin de cliquer sur l'icone modifier associée au module.

Remarque importante : Modifier les paramètres d'affichage demande des connaissances en xhtml.

Sommaire

Description des paramètres d'affichage (templates)

ParamètreDescription
Nom de la classe d'affichageClasse de la balise html DIV class='..' affichant le module. Par défaut, 'zone_principale' mais vous pouvez définir votre propre classe (à définir dans le fichier css)
Template vue totaleTemplate xhtml définissant l'affichage de la liste des enregistrements de la page
Template vue uniqueTemplate xhtml définissant l'affichage d'un enregistrement unique (sélectionné).
Template page d'accueilTemplate xhtml définissant l'affichage de l'élément en page d'accueil, dans le 'quoi de neuf'. Ce template est obligatoirement composé d'un élément de titre 'dt' et d'un ou plusieurs éléments de définition 'dd'.
Template raccourcisTemplate xhtml définissant l'affichage de l'élément dans la zone de raccourcis du site. Ce template est obligatoirement composé d'un élément de titre 'dt' et d'un ou plusieurs éléments de définition 'dd'.
Autorise les raccourcisDois-t-on afficher les raccourcis dans la zone de raccourcis pour les éléments d'arborescence associés à ce module ?
Titre zone de raccourcisLe titre de la zone de raccourcis
Nombre de raccourcisCombien d'enregistrement dois-t-on afficher dans la zone de raccourcis ?
Rang de la zone de raccourcisRang d'affichage de cette zone par rapport aux autres zones, correspondants aux autres modules affichables en zone de raccourcis.
Template XML fil RSSTemplate XML correspondant à un élément 'item' du standard RSS 2.0 pour les enregistrements associés à ce type de module.

Sommaire

Champs dynamiques d'un template : les tokens

Un template se compose de deux parties distinctes :

  • La structure statique, écrite en xhtml, qui correspond à une coquille vide, une sorte de 'carcasse'.
  • Les données, provenant de la base de données et qui sont insérées dynamiquement entre les éléments de structure.

Pour indiquer quelle donnée insérer à un endroit du template, on utilise un code spécial, appelé token. Un token est donc une balise reconnue par le système Béryo, qui indique à l'application quelle variable afficher, et éventuellement les traitements d'affichage à effectuer sur la variable avant de l'afficher. Les tokens Beryo sont les noms des champs constituant le module, entre accolades soit le code suivant {nom_du_champ}. Le traitement à effectuer pour afficher la variable est indiqué avant le token, à l'aide d'un code :code:.

Un exemple : Soit un module ayant un champ nommé 'emailUser' qui contient l'email d'un utilisateur quelconque du système (par exemple l'email toto@toto.com). Pour afficher cette donnée, on voudra que le @ soit remplacé par 'at', de manière à éviter l'écriture intégrale de l'email sur la page et donc sa récupération potentielle par les automates alimentant les bases de données de spammers. Le template d'affichage de cet donnée pourrait être le suivant :

<p>:m:{emailUser}</p>

Sommaire

Tokens spéciaux et traitements d'affichage

La grande majorité des tokens sont les noms des champs composant le module (donc la liste des champs de la table template associée au module).

Il existe cependant certains tokens spéciaux, valables pour tous les modules :

Token spécialDescription
{urlDataset}URL d'affichage de l'enregistrement en vue unique.
{urlDownload}URL de téléchargement d'un fichier, d'une image.
{signatureUser}Signature de l'auteur de l'enregistrement.
{nbComment}Nombre de commentaires associés à l'enregistrement.
:dh:{dateLastComment}Date du dernier commentaire posté
:n:{notify}Affichage d'un lien cliquable permettant d'envoyer un message privé au publicateur de l'enregistrement.
{imgDataset}Affichage de l'image associée à l'enregistrement, si existante (exemple, le module article).

Certains tokens peuvent nécessiter un traitement préliminaire à l'affichage (par exemple, une date stockée au format UNIX doit être mise au format date longuen courte ou heure avant d'être affichée).

Traitement et TokenDescription
{champ}Affichage du champ brut sans traitement
:w:{champ}Affichage du champ au format wiki
:dl:{champ}Affichage du champ au format date longue (vendredi 24 septembre 2004).
:ds:{champ}Affichage du champ au format date courte (jj/mm/aa).
:dh:{champ}Affichage du champ au format date heure (jj/mm/aa hh:mm).
:dr:{champ}Affichage du champ au format date RFC 822.
:s:{champ}Affichage des xxx premiers caractères du champ. (summary).
:m:{champ}Affichage du champ au format email.
:r:{champ}Affichage du champ au format rate (score) : remplacement de la valeur par des images de popularité de l'enregistrement.

Sommaire

Quelques exemples de Templates

La manière la plus commode de gérer les templates est d'utiliser les définitions html.

Template vue totale du module téléchargement (download) :

<dl class='download'> <dt><a href='download.php?chemin={urlDownload}&amp;filename={urlDownloadFilename}' class='download'>{titreDownload}</a></dt> <dd class='dd2'>{urlDownloadSize} Ko</dd> <dd class='dd1'>{descrDownload}</dd> <dd>Posté par <span class='auteur'>{signatureUser}</span> le <span class='date'>:dl:{dateDownload}</span>:n:{notify}</dd> <dd class='dd2'><a href='{urlDataset}'>{nbComment}</a></dd> </dl>

Template vue unique du module téléchargement (download) :

<h3>{titreArticle} :r:{rateArticle}</h3> <p>Posté par <span class='auteur'>:n:{signatureUser}</span> le <span class='date'>:dl:{dateArticle}</span></p> <div class='wiki'>{imgDataset} :w:{descrArticle}</div>

Sommaire

Imprimé depuis http://www.xrousse.org - Le contenu de ce site est sous license Creative Commons Paternité 2.0. (http://creativecommons.org/licenses/by/2.0/fr)