|
Code des caractéristiques des articles et des rubriques |
|
Plusieurs fonctionnalités du site sont basées sur la notion de caractéristique, pour les articles et les rubriques. Les utilisations de ce champ sont décrites dans les pages La zone "Comportements de l’article" et Administrateurs : les caractéristiques d’une rubrique.
Note : La version actuelle du site est basée sur spip 1.5.2 ; dans spip 1.7, les champs "extra" pourraient être utilisés à la place des caractéristiques.
Le code décrit dans cette page se trouve dans les squelettes, que vous pouvez télécharger : skel-monde-solidaire1.zip (242 Ko)
Le premier besoin rencontré a été de stocker des informations supplémentaires (les caractéristiques) au sein des articles. La zone de sous-titre a été utilisée.
Puis le même besoin s’est fait ressentir pour les rubriques ; ne trouvant pas de champ inutile dans spip_rubriques, les caractéristiques ont été incrustées dans le texte des rubriques.
Cela explique qu’il y ait deux syntaxes différentes :
Pour les articles, on met clé=valeur (ex : lang=en)
Pour les rubriques, on met clé = "valeur" (ex : lang="en"). Les caractéristiques des rubriques utilisent un langage à balise maison (une sorte de XML simplifié), dont l’interpréteur se trouve dans _siteFiles/meta/lib/tig/tigML.php (la doc. de tigML se trouve sur cette page).
Les lignes "_aEo_charac" et "_aEo_/charac" qui encadrent les caractéristiques d’une rubrique sont des instructions tigML.
Dans les squelettes, on y accède par deux méthodes venant de _siteFiles/meta/php/mondeSolFunctions.php : getCharac() et getHeritableCharac(). Dans ces méthodes (voir le code), on indique si la caractéristique à récupérer est pour une rubrique ou un article, et on spécifie le nom de la caractéristique.
getCharac() va seulement chercher la caractéristique pour la rubrique ou l’article spécifié.
getHeritableCharac() va en plus vérifier si la caractéristique n’a pas été définie dans la hiérarchie des rubriques ; la première caractéristique trouvée, en montant dans la hiérarchie des rubriques, est retournée.
Les noms des caractéristiques sont paramétrés, et stockés dans la variable $OUR_GLOBALS, présente dans _siteFiles/meta/php/globals.php.
_¨Par exemple, $OUR_GLOBALS["str_country"] = "pays"
Le calcul de certaines pages fait plusieurs fois appel aux mêmes caractéristiques. Donc chaque fois qu’une caractéristique est calculée, elle est mise en cache dans $OUR_GLOBALS.
Thierry
Création de l'article : 20 novembre 2003
Dernière mise à jour : 1er avril 2004
Page visitée 1708 fois
(1)
Remarque sur les adresses électroniques
Pour lutter contre le spam, les adresses électroniques publiées sur ce site sont "masquées" : l'arrobase est remplacée par 3 caractères aléatoires encadrés de soulignement ; ainsi, l'adresse toto.loulou@bidon.fr sera affichée toto.loulou_9YZ_bidon.fr - ou avec 3 autres caractères au lieu de 9YZ
|