Discussion modèle:Option
Ajouter un sujet2021, reprise de la discussion
[modifier]Test option
[modifier]{{Option|texte caché|display:none|vive le rouge !}} donne vive le rouge !
- Le modèle option peut-il se réparer ? Que je clique ou non sur l'option texte caché dans le menu des options à gauche de l'écran ne change rien à l'affichage. Le modèle ne fonctionne plus. --Zyephyrus (d) 4 juillet 2013 à 08:08 (UTC)
- Je confirme en 2020, c'est cassé. Assassas77 (d) 24 mars 2020 à 23:20 (UTC)
Zyephyrus et Assassas77 : Je crois avoir réparé le modèle (et supprimé l’horrible id=memo en même temps). N'hésitez pas à révoquer si ma correction n’a pas fonctionné. Seudo (d) 19 février 2021 à 21:59 (UTC)
Utilité du modèle
[modifier]Je ne comprends pas bien à quoi sert ce modèle, et le fait qu'il ne fonctionnait plus depuis presque 10 ans sans que cela ait choqué grand monde confirme mes doutes. Par exemple sur Discours de la méthode (éd. Cousin), pourquoi masquer les liens "Version audio" ? En pratique, il est facile de cliquer une fois sur l’option et de masquer ainsi pour toujours le contenu, de sorte qu’on ne saura jamais qu’il existe. Masquer les pubs (pardon, les annonces communautaires) qui apparaissent parfois en haut des pages, d'accord, mais pas le vrai contenu. Seudo (d) 20 février 2021 à 07:56 (UTC)
- Pour ma part, je pense que les applications proposées par Aaafly en 2010 avaient beaucoup de potentiel et devraient être développées. Les modèles
{{rouge}}
,{{bleu}}
,{{gris}}
,{{vert}}
et{{caché}}
ont par la suite en partie suppléé aux autres fonctions du modèle{{option}}
créé par ThomasV, mais en... pas optionnels :-) aussi merci, Seudo, d'avoir réparé les options. --Zyephyrus (d) 20 février 2021 à 14:27 (UTC)
- Pour ma part, je pense que les applications proposées par Aaafly en 2010 avaient beaucoup de potentiel et devraient être développées. Les modèles
Application proposée en 2010
[modifier]Rappel
[modifier]{{Option|texte en rouge|color:#ff0000|vive le rouge !}} donne : vive le rouge !
{{Option|texte en rouge|color:red|vive le rouge !}} donne : vive le rouge !
{{Option|texte en vert|color:green|vive le rouge !}} donne : vive le rouge !
{{Option|texte en gris|color:silver|vive le rouge !}} donne : vive le rouge !
{{Option|texte caché|display:none|vive le rouge !}} donne : vive le rouge !
Les noms de couleurs (en anglais) à la place des codes sont acceptés.
Pour comprendre à quoi sert ce modèle, cliquez plusieurs fois sur les options d’affichage qui sont proposées dans le menu à gauche de l’écran, et observez l’effet produit.
Application
[modifier]Applications envisageables : voir ici. --Zyephyrus (d) 14 octobre 2010 à 15:39 (UTC)
Archivage
[modifier]Problèmes de conformité HTML/XML/CSS/DOM
(1) J'ai essayé de supprimer l'identifiant "memo" qui était généré en interne par le modèle, l'utilisation de ce modèle plusieurs fois dans la même page (y compris pour des options d'affichage différentes) faisait que cet identifiant ne désignait pas un élément unique du document. D'où un problème de validation stricte pour HTML4, HTML5 ou XML et XHTML. Malheureusement, un élément span vide ne contenant qu'un attribut de style est éliminé automatiquement par MediaWiki (d'où perte du style indiqué que le javascript ne pourra plus détecter...), sauf si on a un identifiant (MediaWiki le préserve car cet identifiant sert aussi d'ancre dans la page et ne sait pas où le placer ailleurs qu'en gardant ce span vide). Ne peut-on pas générer autre chose ?
De plus je me demande encore pourquoi on doit encore générer le style dans un span vide interne alors que ce style pourrait être directement être appliqué dans le span externe contenant le texte (on doit encore le faire car le javascript qui gère l'activation des options dans la barre d'outils à gauche va chercher ce style à cet endroit). Cela résoudrait le premier problème ci-dessus, puisqu'alors on n'a plus besoin de l'id "memo" qui visiblement n'est là que pour éviter que MediaWiki supprime automatiquement le span interne qui ne sert qu'à contenir le style d'affichage mais aucun texte visible.
(2) Plus embêtant : Le titre généré (par le javascript du Wikisource global MediaWiki:Base.js) dans le span externe (title="{{{OptionTitle}}}") contient le texte à afficher en clair dans la barre de gauche ("Désactiver titre"), mais ce texte est également utilisé pour :
- générer le nom du cookie ("OptionTexttitre") stockant "false" ou "true" suivant que l'option est activée ou non par l'utilisateur,
- ainsi que l'identifiant (id="titre") de l'élément de liste à puce apparaissant dans la barre de gauche ;
Dans ces deux derniers cas, il faudrait que ce soit un identifiant valide, mais le texte en clair passé en paramètre de ce modèle contenant le nom de l'option n'est pas un identifiant valide (par exemple quand ce texte contient espaces, ponctuations ou apostrophes), et peut trop facilement entrer en conflit avec un identifiant de la page. Le nom actuel du cookie est:
"OptionText-{{{OptionTitle}}}"
ce devrait être:
"OptionText-{{{OptionId}}}"
De même on génère actuellement par Javascript dans la barre d'outils :
<li id="{{{OptionTitle}}}"><a href="javascript:displayOptionText('{{{OptionTitle}}}', '{{{OptionStyle}}}', '{{{DisplayOptionDefault}}}')">Désactiver {{{OptionTitle}}}</a></li>
Il faudrait générer:
<li id="OptionText-{{{OptionId}}}"><a href="javascript:displayOptionText('{{{OptionTitle}}}', '{{{OptionStyle}}}', '{{{DisplayOptionDefault}}}')">Désactiver {{{OptionTitle}}}</a></li>
Ou bien cet identifiant pour l'élément de liste dans la barre d'outils "options d'affichage" est-il réellement nécessaire, et ne pourrait-on pas s'en passer ?
Problème: comment passer cet identifiant (au moins pour que le nom du cookie soit correct et n'entre pas non plus en collision en lui adjoignant un préfixe) ? Peut-on générer un identifiant valide ("{{{OptionId}}}" ci-dessus) à partir du nom en clair de l’option ("{{{OptionTitle}}}" ci-dessus), avec une fonction de filtrage Javascript, qui remplace tout caractère non alphanumérique ([0-9A-Za-z], éventuellement complété par des caractères accentués valides dans un identifiant) par un tiret ? Ou bien ce modèle ne devrait-il pas inclure un paramètre supplémentaire permettant de préciser un identifiant valide (mais alors où passer dans le HTML généré cet identifiant ? Dans un attribut data="" ou dans l'attribut title="" d'un autre span "mémo" vide ? — Verdy_p (d) 3 juin 2011 à 05:30 (UTC)