Les catégories (qu'on appelle aussi des "tags") sont un moyen de classer et de retrouver des pages ayant un point commun. Elles existent déjà au sein de PmWiki 2 et, dans la plupart des wikis, elles ne nécessitent pas de code ou de balises personnalisées : Elles sont juste une convention utile dans les pages Wiki. L'idée est que chaque page qui appartient à une catégorie donnée doit avoir un lien avec une page commune contenant elle-même des liens vers les autres pages de la Catégorie. Ces pages communes sont créées dans le groupe Category (valeur par défaut indépendante de la langue, mais modifiable au moyen de la variable $CategoryGroup).
L'utilisation des catégories se déroule en deux phases :
Une catégorie XYZ est créée par l'existence d'un lien vers la page Category.XYZ. Le fait de mettre un tel lien dans une page est équivalent à dire que cette page appartient à la catégorie XYZ.
Afin de faciliter la création de ces liens, une nouvelle balise existe maintenant : La syntaxe [[!XYZ]] est (presque) équivalente à [[Category/XYZ]]. L'utilisation de cette nouvelle balise est recommandée, ne serait-ce que pour la clarté du texte source.
Le fait de cliquer sur ce lien va, très probablement, ouvrir une page vide nommée Category.XYZ. Pour retrouver les pages liées à cette page, il va nous suffire de créer un pied de page du groupe Category comme suit :
(:pagelist link=Category.{$Name} list=normal:)
,Cependant, pourront apparaître dans cette liste des pages contenant des liens vers la page Category.XYZ, même s'il s'agit de pages que nous considérons ne pas faire partie de la catégorie XYZ. C'est pourquoi l'on aura plutôt recours à la syntaxe (:pagelist '!{$Name}' list=normal:)
car, outre le fait qu'elle ne fait pas référence explicitement au groupe Category (ce qui laisse des possibilités d'évolution du logiciel), seules les pages utilisant la nouvelle balise seront affichées. On peut toujours inclure la syntaxe group=-PmWiki,-PmWikiFr
(par exemple) pour éviter d'afficher certaines catégories non nécessaires
Les Wikis utilisant des catégories à plusieurs mots auront avantage à utiliser la syntaxe (:pagelist '!{$Namespaced}' list=normal:)
.
Enfin, noter que la liste des pages de la catégorie pourra se trouver aussi bien dans Category.GroupHeader que dans Category.GroupFooter. Tout dépend si l'on souhaite voir cette liste apparaître avant ou après le texte que l'on mettra éventuellement sur les pages Category.XYZ.
L'ajout d'un lien [[!Film]] dans une page définit l'appartenance de cette page à la catégorie Film. Sous réserve de l'utilisation de la directive (:pagelist:), comme décrit plus haut, il sera aisé de faire afficher la liste de toutes les pages contenant cette instruction, c'est-à-dire des pages de la catégorie Film.
Les catégories disposent d'un potentiel très élevé, car les pages du groupe Category peuvent elles-mêmes être placées dans leur(s) propre(s) catégorie(s).
Pour reprendre l'excellent exemple de John Rankin (non traduit), imaginons que les pages suivantes appartiennent aux catégories indiquées à droite :
Film.SeanOfTheDead [[!Horror]] [[!Comedy]] [[!2003]] Film.InMyFathersDen [[!Drama]] [[!2004]] Film.TheCorporation [[!Documentary]] [[!2003]]
Sous réserve de créer maintenant les pages Category.Horror, Category.Comedy, Category.Drama et Category.Documentary, et d'y mettre un lien [[!Genre]], et de faire de même avec les pages [[!Category.2003]] et [[!Category.2004]] avec [[!Year]], nous avons maintenant créé une structure à plusieurs niveaux.
En effet, si nous affichons la page Category.Genre, nous voyons s'afficher Horror, Comedy, Drama et Documentary. Si nous cliquons maintenant sur l'un de ces mots, nous verrons tous les films de cette "sous-catégorie". De la même façon, nous aurions pu cliquer sur un lien dans la page Category.Year pour voir tous les films de l'année choisie.
Et si, maintenant, nous mettons un lien [[!Category]] dans chaque catégorie principale (Genre et Year), nous avons fabriqué ceci :
Category.Category Category.Genre Category.Comedy Film.SeanOfTheDead Category.Drama Film.InMyFathersDen Category.Documentary Film.TheCorporation Category.Horror Film.SeanOfTheDead Category.Year Category.2003 Film.SeanOfTheDead Film.TheCorporation Category.2004 Film.InMyFathersDen
Notons cependant qu'il ne s'agit pas d'une structure hiérarchique au sens strict, puisqu'une page peut appartenir à plusieurs catégories en même temps.
Enfin, il est tout à fait possible de mettre des informations relatives à la catégorie sur la page correspondante, que ce soit pour donner des indications ou pour renvoyer sur des catégories connexes.
Comme indiqué précédemment, tout ce qui est nécessaire à l'utilisation des catégories est inclus dans PmWiki 2. Pour ceux que cela intéresse, voici le fonctionnement interne de la directive.
Tout d'abord, la variable $CategoryGroup définit le nom du groupe contenant les pages de catégorie (par défaut Category).
SDV($CategoryGroup,'Category');
Ensuite, la fonction Markup est utilisée pour résoudre les appels [[!XYZ]].
Markup('[[!','<links','/\[\[!([^\|\]] ?)\]\]/', "<span class='category'>[[$CategoryGroup/$1]]</span>");
Le fait d'utiliser une directive spéciale permet aux auteurs de pages de clairement distinguer entre une appartenance à une catégorie et un lien avec une page qui se trouve être une page de catégorie.
La partie la plus difficile, dans la mise en place des catégories, reste le choix d'un vocabulaire adapté. Les gestionnaires du contenu d'un site peuvent s'inspirer des normes ISO 2788-1986 et ISO ISO 5964-1985.
Parmi les questions à aborder, nous trouvons :
L'on peut aussi, parfois, laisser les auteurs libres des termes qu'ils utilisent, afin de voir émerger un langage commun que l'on retiendra.
Voir aussi dans la page en anglais l'exercice SolaRoof.
Nouvelle traduction le 12 octobre 2005 par Jean-Dom?.
<< Mots de passe | Index de la documentation | PageListes >>
Traduction de PmWiki.Categories
Page originale sur PmWikiFr.Categories - Référencé par
Dernières modifications:
PmWikiFr.Categories: 12 novembre 2011 à 16h42
PmWiki.Categories: 29 août 2013 à 07h48