Introduction
Les pipelines de Sarka-SPIP ont pour but de faciliter la personnalisation du squelette en autorisant l’ajout de noisettes à des endroits précis sans modifier les fichiers source du dit squelette. Cette fonctionnalité est disponible depuis la version 3.0.1 de Sarka-SPIP mais a été fortement améliorée dans la version 3.0.2.
Un pipeline est un point d’entrée dans le code d’un programme. Ce point d’entrée autorise l’injection d’un code externe au programme source. Le code injecté reçoit le contexte du programme offrant le pipeline.
Dans Sarka-SPIP, tous les pipelines sont situés dans les zones principales du squelette, à savoir, le bandeau, le pied de page et les deux colonnes. La position de ces pipelines est définie une fois pour toute dans le squelette : la personnalisation induite est donc limitée à ces emplacements spécifiques.
Mise en œuvre dans le squelette
D’un point de vue technique, les pipelines sont matérialisés par un appel à la balise #PIPELINE
dans le code HTML du squelette comme l’illustre le code ci-dessous inclus dans le fichier noisettes/navigation/inc_menu_pages_speciales.html
:
[(#PIPELINE{
menu_pages_speciales_fin,
[(#ARRAY{args, [(#ARRAY{position, #ENV{position}, classe_li, #GET{classe_li}, no_menu, #GET{no_menu}})], data, ''})]}
)]
Le premier argument désigne l’identifiant du pipeline, menu_pages_speciales_fin
. Cet exemple concerne donc le pipeline permettant d’ajouter une entrée à la fin du menu des pages spéciales.
Le second argument est le contexte, c’est-à-dire un tableau de tous les paramètres fournis en entrée du script appelé. Dans notre exemple, les paramètres disponibles sont « position », « classe_li » et « no_menu ». Le script appelé pourra utiliser ces paramètres via la balise #ENV de la manière suivante : #ENV{position}
.
Description des pipelines
Le tableau ci-après liste tous les pipelines proposés par le squelette, leur identifiant, la position dans la page et le contexte.
Position | Identifiant | Contexte |
---|---|---|
Ajout en début de colonne extra | _PERSO_COLONNE_EXTRA_DEBUT | dépend de la page affichée |
Ajout en fin de colonne extra | _PERSO_COLONNE_EXTRA_FIN | dépend de la page affichée |
Ajout en début de colonne navigation | _PERSO_COLONNE_NAVIGATION_DEBUT | dépend de la page affichée |
Ajout en fin de colonne navigation | _PERSO_COLONNE_NAVIGATION_FIN | dépend de la page affichée |
Ajout en fin du menu des pages spéciales | _PERSO_MENU_PAGES_SPECIALES_FIN | position, classe_li, no_menu |
Ajout en début de la partie haute du bandeau | _PERSO_BANDEAU_HAUT_DEBUT | id_rubrique |
Ajout en fin de la partie haute du bandeau | _PERSO_BANDEAU_HAUT_FIN | id_rubrique |
Ajout en début de la partie basse du bandeau | _PERSO_BANDEAU_BAS_DEBUT | id_rubrique |
Ajout en fin de la partie basse du bandeau | _PERSO_BANDEAU_BAS_FIN | id_rubrique |
Ajout en début de pied | _PERSO_PIED_DEBUT | - |
Ajout en fin de pied | _PERSO_PIED_FIN | - |
Utilisation des pipelines
Pour utiliser les pipelines et personnaliser le squelette il est nécessaire de déclarer les pipelines utilisés et les noisettes ajoutées dans le fichier mes_options.php en suivant la syntaxe ci-dessous :
define('_PERSO_COLONNE_EXTRA_DEBUT', 'noisettes/extra/noisette1:noisettes/noisette2:noisette3');
Dans l’exemple ci-dessus, les noisettes seront insérées dans l’ordre prescrit - de 1 à 3 - au début de la colonne « Extra ». Le chemin des noisettes est relatif au répertoire squelettes/
dans lequel elles doivent être placées mais l’arborescence sous squelettes/
est à votre discrétion. L’extension des noisettes n’est pas précisée car ce sont toujours des fichiers .html.
Les noisettes sont des fichiers dont la structure est normalisée par le squelette Sarka-SPIP. Il est donc essentiel de conserver cette structure pour créer des noisettes personnalisées cohérentes avec le design du site. Consulter l’article La structure des noisettes de Sarka-SPIP à cet effet.