Publié par Yo' le lundi 27 février 2006
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
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.
| Paramètre | Description |
| Nom de la classe d'affichage | Classe 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 totale | Template xhtml définissant l'affichage de la liste des enregistrements de la page |
| Template vue unique | Template xhtml définissant l'affichage d'un enregistrement unique (sélectionné). |
| Template page d'accueil | Template 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 raccourcis | Template 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 raccourcis | Dois-t-on afficher les raccourcis dans la zone de raccourcis pour les éléments d'arborescence associés à ce module ? |
| Titre zone de raccourcis | Le titre de la zone de raccourcis |
| Nombre de raccourcis | Combien d'enregistrement dois-t-on afficher dans la zone de raccourcis ? |
| Rang de la zone de raccourcis | Rang d'affichage de cette zone par rapport aux autres zones, correspondants aux autres modules affichables en zone de raccourcis. |
| Template XML fil RSS | Template XML correspondant à un élément 'item' du standard RSS 2.0 pour les enregistrements associés à ce type de module. |
Un template se compose de deux parties distinctes :
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>
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écial | Description |
| {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 Token | Description |
| {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. |
La manière la plus commode de gérer les templates est d'utiliser les définitions html.
<dl class='download'> <dt><a href='download.php?chemin={urlDownload}&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>
<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>
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)