Project

General

Profile

Evolution #4552

Appliquer tout le temps la classe demandée à lien_ou_expose

Added by tcharlss 🐽 7 months ago. Updated about 2 months ago.

Status:
Fermé
Priority:
Normal
Assignee:
Category:
-
Target version:
Start date:
09/16/2020
Due date:
% Done:

0%

Resolution:
fixed

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

#1 Updated by b b 7 months ago

  • Target version set to 3.3

+1 bonne idée, mais ça risque de poser problème pour l'existant.

#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

Also available in: Atom PDF