Evolution #4552
Appliquer tout le temps la classe demandée à lien_ou_expose
0%
Description
On peut préciser une classe pour lien_ou_expose() mais elle n'est appliquée que quand l'élément n'est pas exposé, sinon c'est la classe "on" qui est mise en dur :
<a class="la_classe_que_j_ai_choisie" href="…">Bla bla</a>
<strong class="on">Bla bla</strong>
Ça rend ces éléments plus compliqués à styler, il me semble si on précise une classe, alors elle devrait être appliquée dans tous les cas, et la classe "on" juste ajoutée en plus :
<a class="la_classe_que_j_ai_choisie" href="…">Bla bla</a>
<strong class="la_classe_que_j_ai_choisie on">Bla bla</strong>
History
#2
Updated by RastaPopoulos ♥ 7 months ago
Bé la description de l'argument a toujours bien précisée "Classes CSS ajoutées au lien" donc non, on peut pas changer ça comme ça, sinon ça péterait les styles des gens partout.
https://code.spip.net/autodoc/tree/ecrire/inc/filtres.php.html#function_lien_ou_expose
À la limite faudrait un autre Nième argument "Classes CSS ajoutées au <strong>"…
#3
Updated by tcharlss 🐽 7 months ago
Ça commencerait à faire beaucoup de params ça monsieur (8), surtout que 99% du temps ça serait pour mettre la même chose que dans le 4ème. Moi je m'en souviendrais jamais :p
Je me dis qu'à ce compte là, tant qu'à faire ça serait bien de pouvoir aussi préciser la classe signifiant l'exposition (le "on").
Et si le 4ème param - qui concerne les classes et que les gens connaissent déjà - pouvait optionnellement accepter un tableau associatif où on pourrait préciser toutes les classes ?
Exemple si on veut obtenir un truc BEM réglo (b_b cache toi les yeux!) :
#ARRAY{ lien, item, strong, item, expose, item_expose, }
#4
Updated by RastaPopoulos ♥ 7 months ago
+1 pour pouvoir spécifier la classe d'exposition aussi, encore plus, parce que "on" ok par défaut, mais c'est super chiant d'imposer des classes quand on a un système cohérent déjà en place
#5
Updated by cedric - about 2 months ago
- Status changed from Nouveau to En cours
En fait vous voulez cette version là ?
https://git.spip.net/spip-contrib-extensions/bootstrap4/src/branch/master/bootstrap4_fonctions.php#L73
Le paramètre on peut recevoir une chaine au lieu d'un bool, dans laquelle on précise la balise et la classe du markup exposé : strong.on
, a.active
, span.lien-on
... C'est le plus souple que j'ai trouvé et qui est totalement compatible avec la signature d'origine
#6
Updated by RastaPopoulos ♥ about 2 months ago
ça me paraitrait cool de l'avoir direct dans le noyau
#7
Updated by cedric - about 2 months ago
C'est donc dans https://git.spip.net/spip/spip/pulls/120
j'ai ajouté une constante qui permet de définir la classe qu'on veut avoir par défaut sur les elements exposes, ce qui permet d'adapter facilement tous les usages à un framework, l'utilisation du parametre on etant plus locale
#8
Updated by cedric - about 2 months ago
- Assignee set to cedric -
#9
Updated by cedric - about 2 months ago
- Status changed from En cours to Fermé
- Resolution set to fixed
On a donc
- une améliration de ||ien_ou_expose
qui permet de préciser le markup (balise + class) de l'état on via https://git.spip.net/spip/spip/commit/8baf5eaac93c532ba5204d9ccd694f7e0bbe39d7
- un filtre |ajouter_class
qui peut s'utiliser à suivre de |lien_ou_expose
pour ajouter une classe commune à l'état lien et a l'etat actif
Le tout permet donc de faire ce qui est demandé sans rien casser, avec un choix de syntaxe