Avoir la possibilité sur son blog Dotclear, de classer ces billets dans des sous-catégories c'est bien, mais de nombreux outils sont à développer pour rendre ergonomique et utile cette fonctionnalité.
Avant tout, il faut penser que cette présentation hiérarchique des contenus doit être facilement comprise par le visiteur. Cet aspect est un prendre en compte lors de la définition de la charte graphique du site, mais aussi (et surtout) lors de la définition de ces catégories et sous-catégories. La hiérarchie doit être visible et comprise. Si la présentation de votre contenu ne peut être hiérarchisée, alors n'utilisez pas de sous-catégories mais un système de TAG.
Indiquer le chemin
Pour aider le visiteur (et seulement pour l'aider), il est possible de renforcer la perception de la localisation dans le site en indiquant le chemin d'accès à la page affichée. Par chemin, j'entends une indication exprimée en termes fonctionnels du chemin qu'il faudrait suivre pour arriver à la même page en partant de l'accueil. Le visiteur dispose déjà de l'URI et s'il sait la lire il n'a que faire d'une indication technique. Il ne s'agit donc pas de simplement dire vous êtes ici longitude 45°325 - latitude 28°784, mais vous êtes aux toilettes, que vous retrouverez en prenant dans le couloir la porte adéquat.
l'utilisation du chemin, n'a que peu d'intérêt sur un site dépourvu de sous-catégories. En effet dans ce cas la plupart des pages sont directement accessible à partir de la page d'accueil.
La fonction vous_êtes_ici()
Comme vous avez pu le constater, le chemin est indiqué sur ce site. (Bon d'accord c'est facile comme reflexion, c'est moi qui l'a fait.)
Comme je l'ai indiqué dans un billet précédent relatif entre autre à la réduction de consommation des ressources, j'ai limité le nombre de requêtes SQL et le parcourt des résultats en combinant leur exploitation pour plusieurs fonctions proches. Ainsi la génération de la liste des catégories (dans la sidebar) et la détermination du chemin, sont exécutées ensembles par la même requête SQL et le même parcourt du résultat. Il n'existe donc pas de fonction spécifique vous_êtes_ici(). Pour pouvoir obtenir ce fonctionnement, la fonction qui liste les catégories et sous catégories retourne un tableau. Le chemin est un élément de ce tableau, tout comme la liste présentée dans la sidebar.
Pour rendre un peu plus joli cette indication de chemin, j'ai complété la fonction pour prendre en compte les différents modes d'affichage de Dotclear.
- modes 'cat' et 'post'
Définition du chemin par l'utilisation du parcours de la liste des catégories. - mode 'home'
Définition du chemin sur 'home'. - modes archives
Définition du chemin par décomposition de l'URI. - mode 'related'
Définition du chemin par le nom de la page. - Autres modes
Définition du chemin à vide
Questions (et réponses) diverses
Est-ce qu'il serai possible de dissocier cette fonction d'indication du chemin, de la mise en place des sous-catégories ? Oui sans doute, mais je ne l'ai pas fait et je considère que cela n'aurait aucun sens. (Allez-vous placer des pancartes indiquant 'cuisine', 'chambre', 'salon' dans un appartement studio ?)
Quelle différence avec un "breadcrumb trail" ? Fondamentalement la démarche est opposée : Dans un cas il s'agit d'une attitude prévenante d'indication, dans l'autre une mesure curative pour récupérer les miettes de pain. Je préfère manger proprement.
Est-ce que le code est écrit et fonctionnel ? Au jour d'aujourd'hui, le code est fonctionnel à 90%. C'est à dire que généralement ça marche mais j'ai détecté des bug (pour la composition de l'URL utilisée dans l'affichage du chemin en modes archives)
Est-ce que le code est disponible ? Pour l'instant, je développe et j'expérimente. Je ne sais toujours pas si je diffuserai ces codes sous forme de plugin. Les rares demandes que j'ai reçues m'ont été adressées soit par des personnes anonymes souhaitant le rester (compte gmail ou yahoo, pseudo), soit par des personnes plus polies mais écartant toutes possibilités de participations actives dans l'élaboration de ces codes. Considérant que la diffusion OpenSource de code libre répond à un certaine étique basée sur le partage, j'hésite.
Commentaires
Les sous-catégories m'intéresse particulièrement et je suis près à t'aider si besoin.
Vincent jomainTiens moi au courant.
Cordialement.
Vincent
Je suis moi aussi trés intéréssé par ce plug !
Mage-LiJ'espaire que tu finira de le déveloper et que tu le distribura.
Cordialement
Fabien