Les squelettes (depuis la version 1.1)

Les squelettes sont un ensemble de fichiers (code Brindille, CSS, etc.) qui permettent de modéliser l'apparence du site web selon ses préférences et besoins.

La syntaxe utilisée dans les squelettes s'appelle Brindille. Elle est commune aux modèles de documents.

Voir la documentation du langage Brindille dans Garradin

Exemples de sites réalisés avec Garradin

Fonctionnement des squelettes

Par défaut sont fournis plusieurs squelettes qui permettent d'avoir un site web basique mais fonctionnel : page d'accueil, menu avec les catégories de premier niveau, et pour afficher les pages, les catégories, les fichiers joints et images. Il y a également un squelette atom.xml permettant aux visiteurs d'accéder aux dernières pages publiées.

Les squelettes peuvent être modifiés via l'onglet Configuration de la section Site web du menu principal.

Une fois un squelette modifié, il apparaît dans la liste comme étant modifié, sinon il apparaît comme défaut. Si vous avez commis une erreur, il est possible de restaurer le squelette d'origine.

Dans les squelettes, il est possible de mettre des fichiers de tout type : images, vidéos, HTML, texte, etc. Seuls les fichiers de type texte, HTML et XML seront traités par Brindille. Les autres types de fichiers seront renvoyés sans traitement par Brindille. En d'autres termes, il n'est pas possible de mettre du code Brindille dans des fichiers non-texte.

Ainsi, nous appelons ici squelette tout fichier situé dans l'onglet Configuration, mais seuls les fichiers texte, XML et HTML sont de "vrais" squelettes au sens code exécutable par Brindille.

Adresses des pages du site

Les squelettes sont appelés en fonction des règles suivantes (dans l'ordre) :

Adresse Squelette appelé
/ (racine du site) index.html
Toute autre adresse se terminant par un slash / category.html
Toute autre adresse, si un squelette du même nom existe Squelettes du même nom
Toute autre adresse, si un squelette n'existe pas article.html

Ainsi l'adresse https://monsite.garradin.eu/Actualite/ appellera le squelette category.html, mais l'adresse https://monsite.garradin.eu/Actualite (sans slash à la fin) appellera le squelette Actualite (sans extension) s'il existe. S'il n'existe pas, alors le squelette article.html sera appelé. Ainsi https://monsite.garradin.eu/atom.xml appellera le squelette atom.xml vu qu'il existe.

Ceci vous permet de créer de nouvelles pages dynamiques sur le site, par exemple pour notre atelier vélo nous avons une page https://larustine.org/velos qui appelle le squelette velos, qui va afficher la liste des vélos actuellement en stock dans notre hangar.

Squelette content.css

Ce fichier est particulier, car il définit le style du contenu des pages et des catégories. Ainsi il est également utilisé quand vous éditez un contenu dans l'administration. Donc si vous souhaitez modifier le style d'un élément du texte, il vaux mieux modifier ce fichier, sinon le rendu sera différent entre l'administration et le site public.

Modifications dans la version 1.1

La version 1.1 passe de la syntaxe des squelettes SPIP à la nouvelle syntaxe Brindille. Les anciens squelettes du répertoire squelettes ne seront plus utilisés, vous devrez re-créer vos squelettes à la main dans l'interface de Garradin. Malheureusement après 9 ans d'utilisation les squelettes SPIP n'étaient plus suffisants et ne pourront plus être utilisés. Cependant la logique reste très similaire, mais la syntaxe se rapproche de celle de Smarty et PHP pour faciliter l'utilisation par les personnes ayant déjà une expérience en programmation.

Exemple d'ancienne boucle de type SPIP :

<BOUCLE_enfants(PAGES){parent}{par date_creation}{inverse}{0,20}>
<h1>#TITRE</h1>
<h5>Posté : [(#DATE_MODIFICATION|date_intelligente)]</h5>

Avec Brindille cela devient :

{{#articles parent=$parent_id order="published DESC" begin=0 limit=20}}
<h1>{{ $title }}</h1>
<h5>Posté : {{ $created|relative_date }}
{{/articles}}

Le fichier www/squelettes/mes_filtres.php n'est plus utilisé. Un nouvel événement usertemplate.init est lancé à l'initialisation d'un squelette, au moment d'enregistrer les filtres et sections. Utilisez une extension (plugin) pour enregistrer filtres et sections personnalisés. Vous pouvez utiliser le paramètre template pour accéder à l'objet UserTemplate du squelette et y enregistrer vos filtres et sections à l'aide des méthodes ->registerModifier($name, $callback); et ->registerSection($name, $callback);. Voir le fichier include/lib/Garradin/UserTemplate.php pour des exemples.

Changements divers :

  • Le squelette par défaut pour la page d'accueil n'est plus sommaire.html mais index.html
  • Tout squelette dont le nom de fichier existe sera appelé directement
  • Les rubriques ont été renommées catégories
  • Il est désormais possible de faire une requête SQL arbitraire sur n'importe quelle table via le type de section sql

Les squelettes dans Garradin (jusqu'à la version 1.0)

Cette syntaxe, proche de SPIP, n'est plus utilisée, mais la documentation peut toujours être [consultée].