Dotclear

Ticket #1295 (closed enhancement: fixed)

Opened 12 years ago

Last modified 11 years ago

simpleMenu : item menu actif lorsque le billet appartient à la catégorie

Reported by: MathieuM Owned by: team
Priority: normal Milestone: 2.5.1
Component: module:plugins Version: 2.4
Severity: normal Keywords: simpleMenu
Cc:

Description

Bonjour,

Je vais tenter d'être explicite pour développer mon idée.

Aujourd'hui, si j'ajoute une catégorie (ou une sous-catégorie) dans le menu, l'item <li class="active">Ma catégorie</li> aura bien la class .active si et seulement si je me trouve dans la page de cette catégorie.

Serait-il possible, afin d'améliorer la navigation du visiteur, d'ajouter :

  • Cette class .active lorsque je me trouve dans une sous-catégorie de la catégorie affichée dans le menu ?
  • Cette class .active lorsque je me trouve sur un billet qui appartient à la catégorie ou une sous-catégorie ?

Il existe déjà ça :  http://forum.dotclear.org/viewtopic.php?pid=302295#p302295 mais si tout pouvait être géré par le plugin simpleMenu, ça éviterait bien des problèmes ;)

Merci.

Change History

comment:1 Changed 12 years ago by franck

  • Milestone changed from 2.4 to A definir

comment:2 Changed 11 years ago by franck

  • Status changed from new to onhold

L'ajout de la classe "active" à l'item idoine se fait uniquement par comparaison d'URL. Il faudrait, pour répondre à la demande, mettre en place le décodage de l'URL, ce qui n'est pas trivial.

Par contre, on pourrait imaginer que simpleMenu déclenche un behaviour permettant à un plugin tiers de préciser s'il faut ajouter cette classe (ou autre). Des avis sur cette solution ?

comment:3 follow-up: ↓ 4 Changed 11 years ago by MathieuM

Merci Franck pour le déterrage du ticket ;-)

Personnellement, j'aurais tendance à répondre (comme utilisateur lambda et allergique à tout ce qui est php) : pourquoi diable multiplier les plugins annexes et compliquer la vie de l'utilisateur de Dotclear ?

Ou pour résumer : si simpleMenu peut le faire, qu'il le fasse :-)

comment:4 in reply to: ↑ 3 Changed 11 years ago by franck

Replying to MathieuM:

Merci Franck pour le déterrage du ticket ;-)

Zizir™

Replying to MathieuM:

Personnellement, j'aurais tendance à répondre (comme utilisateur lambda et allergique à tout ce qui est php) : pourquoi diable multiplier les plugins annexes et compliquer la vie de l'utilisateur de Dotclear ?

Ou pour résumer : si simpleMenu peut le faire, qu'il le fasse :-)

Oui mais non, l'idée est de conserver un Dotclear aussi svelte que possible — ça permet une maintenance plus aisée et un code plus clair — mais d'offrir ce qu'il faut pour qu'il puisse être enrichi en fonction des besoins via des plugins tiers.

comment:5 Changed 11 years ago by MathieuM

Plop,

Et par rapport au lien que je donne dans le ticket, il existerait un code à ajouter dans le _public.php du thème pour voir le comportement "actif" d'une catégorie lorsqu'on se trouve dans l'un de ses billets ?

comment:6 Changed 11 years ago by franck

Je comprends pas bien la question ! La réponse est donnée dans le fil du forum, non ? S'il y a des questions à ce sujet, il faut poursuivre là-bas, et pas sur ce ticket.

comment:7 Changed 11 years ago by MathieuM

La réponse donnée sur le fil du forum est déjà celle que j'utilise pour mes projets, mais... elle est "standalone" dans le sens où elle oblige à modifier ses gabarits html au lieu d'utiliser simpleMenu.

D'où ma question précédente : est-il possible par quelques lignes de code (dans le _public.php du thème), d'utiliser simpleMenu tout en ayant une classe "active" sur la catégorie parente lorsqu'on se trouve sur l'un de ses billets ?

comment:8 Changed 11 years ago by franck

Cette question a sa place sur le forum, pas ici.

comment:9 Changed 11 years ago by franck

« Par contre, on pourrait imaginer que simpleMenu déclenche un behaviour permettant à un plugin tiers de préciser s'il faut ajouter cette classe (ou autre). Des avis sur cette solution ? »

Toujours aucun avis ?

comment:10 follow-up: ↓ 13 Changed 11 years ago by JcDenis

Un behavior serait la meilleur solution pour que Dotclear reste aussi svelte que open ! Après faut voir si ce behavior ne pourrait pas être un peu plus utile que juste ajouter une classe CSS, c'est un peu léger là...

comment:11 Changed 11 years ago by franck

Yep, vais réfléchir à ça… Pas con l'idée de fournir un peu de "loisir" à un plugin.

comment:12 Changed 11 years ago by franck <carnet.franck.paul@…>

(In [8f51b2e77efe]) New behaviour publicSimpleMenuItem in SimpleMenu? plugin, let other plays with menu item before rendering it. Addresses #1295

comment:13 in reply to: ↑ 10 ; follow-up: ↓ 15 Changed 11 years ago by franck

Replying to JcDenis:

Un behavior serait la meilleur solution pour que Dotclear reste aussi svelte que open ! Après faut voir si ce behavior ne pourrait pas être un peu plus utile que juste ajouter une classe CSS, c'est un peu léger là...

Tu pensais à quelque chose ressemblant à ce que j'ai commité ?

comment:14 Changed 11 years ago by franck

  • Status changed from onhold to closed
  • Resolution set to fixed

Je ferme en attendant de voir s'il y a un besoin supplémentaire.

comment:15 in reply to: ↑ 13 Changed 11 years ago by JcDenis

Replying to franck:

Tu pensais à quelque chose ressemblant à ce que j'ai commité ?

Oui c'est pas mal comme ça.

comment:16 Changed 11 years ago by MathieuM

  • Status changed from closed to reopened
  • Resolution fixed deleted

Je relance le débat, c'est-il pas possible d'envisager une extension de simpleMenu pour que la classe .active soit présente lorsqu'on se trouve dans un sous-catégorie ou un billet appartenant à la catégorie mise en item du menu ? :)

comment:17 Changed 11 years ago by franck

  • Status changed from reopened to closed
  • Resolution set to fixed

Même réponse qu'avant, simpleMenu peut être étendu — un behaviour a été prévu à cet effet — par un plugin tiers avec la possibilité d'intervenir sur les items de menu, y compris sur cette classe.

Pour rappel, simpleMenu n'a pas vocation à identifier et prendre en compte tous les schémas d'URL qu'un blog peut utiliser. Ça serait beaucoup trop lourd et forcément incomplet.

comment:18 Changed 11 years ago by MathieuM

Alors il faudra attendre un plugineur fou ;)

comment:19 Changed 11 years ago by lipki

Un petite tips pour la prochaine personne qui chercher a ré-ouvrir ce ticket. Il existe une technique simple en CSS pour faire ce qui est demandé.

Par exemple dans post.html body ajouter :

<body class="dc-post cat-{{tpl:EntryCategoryID}}">

Puis dans les css donnez à : .cat-2 .li4 {} Le même style que .active

2 et l'id d'une catégorie, li4 est son li dans simple menu.

--

En attendant leplugineur fou ;)

comment:20 Changed 11 years ago by franck

  • Milestone changed from A definir to 2.5.1
Note: See TracTickets for help on using tickets.

Sites map