Discussion modèle:Palette/Test
Ajouter un sujet- Admissibilité
- Neutralité
- Droit d'auteur
- Article de qualité
- Bon article
- Lumière sur
- À faire
- Archives
- Commons
Modèle & module
[modifier le code]Test Palette avec Module:Palette
[modifier le code] FDo64 : J'ai créé un module qui résous tes difficultés, même s'il y a quelques limitations.
L'exécution des palettes étant relativement longue, si les palettes sont appelées par le module lua on se retrouvera souvent limité par les 10s de temps d'exécution, et donc avec des erreurs de script. Pour palier à ce problème j'ai adopté la même méthode que pour le modèle {{Documentation}}, le module transmet les palettes au module en paramètres. Elle se sont exécutée que si nécessaire. Le temps de calcul est à priori le même mais il n'est pas comptabilisé dans le temps lua. Par rapport au modèle actuel, j'ai ajouté les paramètres :
- paramètre PaletteN qui est transmis à la Ne palette en tant que premier paramètre pour gérer toutes les palettes qui ont simplement besoin d'un paramètre non nommé. ;
- nocat qui permet de désactiver la catégorisation de toutes les palettes en une seule fois.
Le module s'occupe des messages d'erreur, de la catégorisation, de séparer les palettes verticales, des palettes avec paramètres nommés et des palettes en boucles.
- Le message d'erreur « trop de palette » est affiché dans le cadre car ça me simplifiait légèrement la programmation et que je trouve ça plus logique, mais on peut revenir au comportement précédent si cela gêne.
- Pour le moment les catégorisations Palette Inconnue et Page contenant trop de palettes sont systématiques (pas de prise en compte de nocat ni de l'espace de nom), mais cela peut être ajouté si besoin.
- Les palettes verticales sont placées avant le cadre, dans l'ordre inverse de leur apparition dans le modèle Palette, mais cela nécessite que ces palettes verticales commence par {{#ifeq:{{{parent|}}} | bandeau | palette verticale }} immédiatement suivi du contenu de la palette.
- Les palettes avec paramètres nommés doivent être conçus sous la forme {{#ifeq:{{{parent|}}} | bandeau | palette avec paramètres | contenu palette }}
Les paramètres nommés sont transmis au modèle de deux façons : directement, et en retirant le numéro de la palettes s'il finissent par ce numéro. S'il y a un paramètre param il est transmi à toutes les palettes necessitant des paramètres nommés. S'il y a un paramètre param3 il est aussi transmis sous le nom param à la palettes 3. Cela permet éventuellement d'avoir plusieurs palettes utilisant les mêmes noms de paramètres, à condition qu'ils ne finissent pas déjà par un chiffre (type fauteuil1). Attention tout de même a ne pas en mettre plus de deux ou trois palettes de ce type, sinon on sera de nouveau confronté à la limite de 10s de temps lua car ces palettes sont appelées par le code lua. Les paramètres non nommés ne sont pas transmis. - Les modèles en boucles ne doivent pas contenir de palettes verticales, mais c'est une construction d'un intérêt douteux.
Pour le moment le modèle Bac à sable ne gère que 4 palettes uniquement pour être plus léger et nécessiter moins de correction si nécessaire, mais on peut l'étendre quand on veux.
Ta page d'exemple est trop lourde pour être affichée en une seule fois, mais j'ai fait mes tests à l'aide de la prévisualisation, en supprimant temporairement les parties déjà testées.
Zebulon84 (discuter) 29 août 2014 à 17:53 (CEST)
- Bien ! Je regarde cela demain et te reviens. Bonne soirée ! --FDo64 (discuter) 29 août 2014 à 21:40 (CEST)
- Beau travail ! Et voici le résultat de mes tests :
- Cas des palettes verticales : idéalement, le {{clr}} ne devrait être mis qu'après leur affichage, pour afficher le texte à côté (voir la page de test modifiée). La séquence serait alors : 1) affichage des palettes verticales 2) {{clr}} (s'il existe des palettes horizontales) 3) affichage des palettes horizontales.
- A part pour le modèle Palette actuel (ça permet d'afficher un message d'erreur), je ne comprends pas l'utilité du {{#ifeq:{{{parent|}}} | bandeau | palette avec paramètres | contenu palette }}
- J'ai ajouté ce code dans une palette avec 3 paramètres pour voir comment le module réagissait, et j'ai ajouté cet exemple à la page de test. Elle ne s'affiche pas.
- Pour ce qui est des paramètres à passer à une palette, j'avais imaginé que le module pouvait analyser la requête et détecter les |param1=contenu1|param2=contenu2..|paramN=contenuN et les lui transmettre. Je n'ai pas bien compris tes explications (d'où l'ajout du deuxième exemple), mais je ne crois pas que ce soit ce que tu as programmé.
- En conclusion, ce module pourrait déjà remplacer le modèle actuel : il reprend ses fonctionnalité + d'autres. Il reste à peaufiner les palettes verticales et surtout la transmission des paramètres (il est vrai que c'était ma motivation première pour cette demande).
- Merci de t'en être chargée ! --FDo64 (discuter) 31 août 2014 à 14:00 (CEST)
- Malheureusement, il n'y a pas de {{clr}} avant la palette verticale, c'est simplement que celle-ci est après le texte que tu écris. Il en serait de même si tu mettais la palette verticale seule après le texte. Le modèle peut placer la palette verticale avant les autres palette, mais pas avant le texte qui précède le modèle. Seule solution envisageable, mettre les palettes verticales après les palettes horizontales, ce qui permettra d'avoir le texte qui suit les palettes d'être à coté de la palette verticale. Mais je ne suis pas certain que ce soit mieux puisque généralement ce sont les portails qui suivent les palettes, et ceux-ci utilisent aussi un {{clr}}.
- Si le contenu de la palette ne commence pas par « palette avec paramètre », aucun paramètre nommé n'est fourni, et le temps de calcul de la palette n'est pas compté dans le temps lua. Si la palette retourne un code commençant par « palette avec paramètre », le module transmet les paramètres et le temps de calcul de la palette est compté dans le temps lua. Si le temps de calcul de l'exécution des modèles demandés par le code lua n'était pas compté dans la limite des dix secondes de temps lua, il n'y aurait pas besoin de cet artifice, je transmettrai simplement les paramètre à toutes les palettes. Mais si on ne veux pas avoir des erreurs de script dès qu'il y a des palettes un peu lourdes, il faut trouver des astuces. Comme il n'y a pas beaucoup de palettes à paramètre, cela ne me parait pas trop gênant.
- Tu as mis « Palette avec paramètre » (avec un majuscule) ce que le module ne reconnaissait pas. J'ai modifié le code pour qu'il soit insensible à la casse, et maintenant la palette s'affiche.
- La palette recevra bien les paramètres |param1=contenu1 |param2=contenu2..|paramN=contenuN
J'ai simplement aussi envisagé le cas ou il y a deux palettes avec un paramètre |param, et ou on veux lui transmettre des valeurs différentes. Il suffit pour cela de d'écrire |param1=contenu1 |param2=contenu2 et la palette1 recevra les paramètres |param=contenu1 |param1=contenu1 |param2=contenu2, la palette2 recevra |param=contenu2 |param1=contenu1 |param2=contenu2.
Ce qui n'est pas possible c'est d'avoir deux palettes qui prennent les même paramètres numérotés, comme {{Palette Académie française jour d'élection}} et {{Palette Académie française jour du décès}}. Ou alors il faut une autre façon de numéroter les paramètres pour les palettes, du style |paramN palette1=contenu1 |paramN palette2=contenu2..|param palette1N=contenuN (on ajoute pas seulement un chiffre au nom du paramètre pour indiquer que ce paramètre est destiné uniquement à la palette N, mais le texte « paletteN » précédé d'un espace). Comme c'est très lourd et a mon avis utile pour un très petit nombre de cas, je suis pour le moment resté sur une méthode plus simple.
- Zebulon84 (discuter) 31 août 2014 à 17:52 (CEST)
- Tu as raison, le test pour la palette verticale qui mélangeait des palettes verticales et horizontales était incohérent. Je l'ai donc modifié et ça ne fonctionne pas tout à fait comme il faudrait.
- Pour ce qui est des paramètres transmis, il faut partir du principe qu'ils seront tous nommés. Les modèles seront adaptés ainsi.
- Je vais continuer mes tests, mais je crois que c'est pas loin d'être parfait !
- --FDo64 (discuter) 31 août 2014 à 18:41 (CEST)
- Avec ton nouveau test je vois mieux ce que tu désires concernant les palettes verticales.
- Elles sont donc désormais affichées après les autres palettes, ce qui permet de les garder dans l'ordre s'il y en a plusieurs. Et s'il n'y a que des palettes verticales, le cadre entourant les palettes normales n'est pas affiché pour éviter d'avoir une ligne de 2 pixels d'épaisseur qui ne sert à rien.
- Zebulon84 (discuter) 31 août 2014 à 21:03 (CEST)
- Super, je ne vois plus aucun problème. Il faut néanmoins que je teste encore quelques cas particuliers, voire même quelques cas tordus
et je te reviens plus tard. A+ --FDo64 (discuter) 31 août 2014 à 21:37 (CEST)
- Toujours pas de problèmes donc je te soumets quelques idées :
- Pour éviter que des gens touchent au #ifeq (comme je l'ai fait en mettant une majuscule
), je pensais le transférer dans les méta-modèles. C'est possible pour {{Méta infobox navigation}} à condition d'ajouter le paramètre parent à toutes les palettes verticales.
- Pour les palettes horizontales avec paramètres je ne vois que la solution de d'intégrer également le #ifeq dans {{Méta palette de navigation}} et d'y ajouter un nouveau paramètres du style paramètre=oui.
- Le dernier exemple de la page de test « Palettes dont le paramètre stylecorps a un width à auto ou différent de 100% » est problématique. Lorsqu'il s'agit d'une palette vertical programmée avec {{Méta palette de navigation}}, il faudra y ajouter le #ifeq, mais pour celles qui ont un float:center ou un width réduit que faire ?
- Afin d'inciter les contributeurs à créer les palettes inconnues, je propose de remplacer le message d'erreur « Erreur : il n’existe pas de modèle « Palette xxx » » par « Erreur : il n’existe pas de modèle {{Palette xxx}} (aide). »
- Est-il possible d'ajouter un trait avant chaque message d'erreur ?
- Pour éviter que des gens touchent au #ifeq (comme je l'ai fait en mettant une majuscule
- Qu'en penses-tu ?--FDo64 (discuter) 3 septembre 2014 à 12:11 (CEST)
- 1. et 2. : Oui c'est sans doute la meilleure chose à faire.
- 3. Que veux-t-on faire de ces palettes : juste permettre la syntaxe {{Palette|xxx}} avec une palette qui ne prend pas toute la largeur (une seule palette), ou permettre l'insertion d'une telle palette avec d'autres ? Dans le premier cas la solution est certainement la même que pour les palettes verticales. Pour le deuxième on doit pouvoir imposer une largeur de 100% par css avec
div.navbox_group table.navbox { width: 100% !important; }
(tu peux tester en ajoutant ce code dans ton common.css). Si on veux les deux à la fois, il faut que je retouche le code pour gérer deux cas possible suivant la présence d'une telle palette et le nombre de palettes. Cela nécessitera toujours une modif de MediaWiki:Commons.css, et l'ajout d'un #ifeq... à la palette. - 4. fait.
- 5. Le mot trait est ambigu. J'ai ajouté un <hr> avant le message s'il est précédé d'une palette, et un espace avant le message pour le décoller du cadre. Si tu voulais un tiret du style — il suffit de le dire, c'est très simple à ajouter.
- Zebulon84 (discuter) 4 septembre 2014 à 08:07 (CEST)
- 1. et 2. : OK, je m'en occuperai.
- 3. : Impossible de forcer à 100%, ne serait-ce que pour l'exemple que j'ai donné. Vaut mieux les traiter comme des palettes verticales (quand c'est le cas) ou les traiter comme les autres horizontales.
- 4. et 5. : Parfait, c'est ce que je souhaitais.
- Tout est bon maintenant. Je propose de mettre tout ça en place samedi.
Orlodrim : J'ai peur que cette évolution ne perturbe tes « Statistiques » puisque les paramètres nommés n'appartiendront pas au modèle Palette, mais à la palette qui la précède. Ai-je raison ?
- --FDo64 (discuter) 4 septembre 2014 à 20:54 (CEST)
- En y repensant, il y a encore quelque chose de bancal : c’est la gestion du paramètre nocat. L'« astuce » actuelle n’existe que parce qu’il était impossible de passer des paramètres avec l’ancien modèle. Maintenant, on pourrait le gérer comme n’importe quel paramètre. Surtout que certains, tout logiquement, l’ajouteront à la suite des palettes qu’ils ne veulent pas catégoriser. Par contre, ça reste un cas particulier : pour les palettes dont c’est l’unique paramètre, pas la peine de les typer en ‘Palette avec paramètres’. Il suffirait que le module le détecte en le transmettant à la Palette qui le précède. Es-tu du même avis ? --FDo64 (discuter) 5 septembre 2014 à 23:14 (CEST)
FDo64 : Je ferai en sorte que les paramètres de {{Palette}} qui sont transmis aux palettes soient considérés comme corrects dans les statistiques du modèle {{Palette}}. Mais il ne pourra pas y avoir de vérification que ces paramètres existent effectivement dans les palettes appelées.
Zebulon84 : Ce ne serait pas plus pratique de mettre un espace entre le nom du paramètre passé à la palette et le numéro de la palette ? Cela éviterait d'avoir des limitations telles que "le nom du paramètre de la palette ne doit pas finir par un chiffre".
- Orlodrim (discuter) 6 septembre 2014 à 21:09 (CEST)
Orlodrim : Très bien, ça me va comme cela..
Zebulon84 : Je me suis occupé des palettes verticales (le méta-modèle et les palettes). Je viens de commencer pour les palettes horizontales et ça ne fonctionne pas comme prévu. Voir le troisième exemple que j'ai ajouté. J'ai Erreur de script. Est-ce que la modif de {{Méta palette de navigation}} n'est pas correcte (voir aussi son bac à sable) ? --FDo64 (discuter) 6 septembre 2014 à 22:11 (CEST)
- En y repensant, il y a encore quelque chose de bancal : c’est la gestion du paramètre nocat. L'« astuce » actuelle n’existe que parce qu’il était impossible de passer des paramètres avec l’ancien modèle. Maintenant, on pourrait le gérer comme n’importe quel paramètre. Surtout que certains, tout logiquement, l’ajouteront à la suite des palettes qu’ils ne veulent pas catégoriser. Par contre, ça reste un cas particulier : pour les palettes dont c’est l’unique paramètre, pas la peine de les typer en ‘Palette avec paramètres’. Il suffirait que le module le détecte en le transmettant à la Palette qui le précède. Es-tu du même avis ? --FDo64 (discuter) 5 septembre 2014 à 23:14 (CEST)
- Toujours pas de problèmes donc je te soumets quelques idées :
- Super, je ne vois plus aucun problème. Il faut néanmoins que je teste encore quelques cas particuliers, voire même quelques cas tordus
- Beau travail ! Et voici le résultat de mes tests :
┌─────────────────────────────────────────────────┘
- L'erreur de script venait du retour ligne que tu as mis après le nom de la palette. Pour les palette à paramètre, il y a maintenant un trim sur le nom de la palette pour éviter cette erreur.
- Comme le propose Orlodrim, j'ai aussi ajouté un espace devant le numéro de la palette auquel ce paramètre doit être transmis. Donc maintenant s'il y a deux palettes avec des paramètres nommés
|param1= |param2=
, on pourra leur transmettre des valeurs différentes en nommant ces paramètre|param1 1=pour palette1 |param2 1=pour palette1 |param1 2=pour palette2 |param2 2=pour palette2
. S'il n'y a qu'une palette avec paramètre ou pour les paramètres qui n'ont pas un nom commun, on utilise toujours directement les noms de paramètre de la palette. - Concernant nocat, la solution actuellement en place sur le Bac à sable reste à mon avis la meilleure, toujours pour le problème des dix seconde de temps lua. Si c'est le module qui lance le calcul de la palette parce-qu’il y a un paramètre nocat, on va se retrouver avec une erreur de script pour {{Palette |nocat=oui |Exemple 1|Exemple 2|Exemple 3|Exemple 2|Exemple 3 |Exemple 1|Exemple 2|Exemple 3|Exemple 2|Exemple 3 |Exemple 1|Exemple 2|Exemple 3|Exemple 2|Exemple 3 |Exemple 1|Exemple 2|Exemple 3|Exemple 2|Exemple 3}} (20 palettes) car il y 12 secondes de calculs pour ces 20 palettes (malgré le fait qu'il n'y en ait que 3 différentes). Or avec la possibilité de d'utiliser le modèle en boucle on risque d'avoir plus de modèles du type {{Palette Télécommunications par région}} qui nécessiteront un paramètre nocat. Par contre pour être cohérent avec la solution proposé par Orlodrim pour les paramètre à transmettre à une palette précise, il faudrait renommer ces paramètre nocat 1, nocat 2... (avec espace avant le chiffre). Pour info j'ai supprimé le paramètre nocat de la palette Naruto (celle qui l'utilise le plus), car il était en pratique quasiment inutile.
- Pour info, il y a une demande sur bugzilla pour ne plus compter le temps d'exécution des modèles dans le temps lua (bugzilla:64163), mais il y a à mon avis peu de chance de le voir résolu rapidement.
- Zebulon84 (discuter) 7 septembre 2014 à 10:03 (CEST)
Palettes avec paramètres
[modifier le code]Liste
[modifier le code]Discussions
[modifier le code]Le recensement ci-dessus semble prouver que la version actuelle du nouveau module permettrait de gérer les palettes actuelles avec paramètres. À condition de renommer certains paramètres, en particulier ceux qui ne sont pas nommés. Je propose alors un nouveau nom, si tu as mieux, n'hésite pas.
J'en ai profité pour faire un toilettage des palettes obsolètes (d'où certains liens rouges dans la discussion précédente) et dans les paramètres inutiles.
Suite à l'analyse de cette liste, les deux seuls problèmes que je vois sont les suivants :
- Je ne sais pas si tu as prévu le cas des palettes verticales avec paramètres. Il faut sans doute prévoir un parent = palette verticale avec paramètres.
- La contrainte de ne pas utiliser le même nom de paramètre pour différentes palettes ne fonctionne pas dans les cas suivants:
- Lorsque la même palette est appelée plusieurs fois dans un même article. Ce sera le cas du Modèle:Composition Académie française lorsqu'il sera renommé en Modèle:Palette Composition Académie française (exemple pour Alfred de Musset : elle est appelée avec jour=election et jour=deces).
- Palettes d'une même famille qui ont des paramètres identiques. Maintenant que les modèles Succession sont des palettes, je souhaite les renommer avec le préfixe Palette et utiliser le modèle Palette pour qu'ils soient dans le même bloc. Attention : Je parle bien des modèles spécifiques, pas des briques. C'est vrai que je n'ai pas trouvé de cas concret, mais dans l'absolu il pourrait y avoir plusieurs modèles de Succession dans un même article.
- Voilà, je vais peut-être donner une idée stupide
pour régler ces deux cas, mais une solution pourrait être d'avoir deux modules : le premier capture la chaîne de caractères entre {{Palette| et }} pour l'analyser et y détecter les palettes et les paramètres s'y rattachant, et le deuxième s'occupe d'afficher les palettes. À toi de voir.
Merci encore de ton aide. --FDo64 (discuter) 7 septembre 2014 à 22:32 (CEST)
- Salut
Zebulon84 ! J'ai mis de côté ce sujet parce que j'attendais ta réponse. Je voudrais éviter de toucher deux fois ces palettes si la résolution du problème que je t'ai exposé devait changer la logique des palettes avec paramètres.
- Si jamais il n'est pas dans ton intention de traiter ce cas particulier, en tout cas pas dans un futur proche, alors je me lance dans la migration. Sinon, je peux encore attendre. Pourrais-tu m'indiquer tes intentions ? Merci. --FDo64 (discuter) 4 octobre 2014 à 12:19 (CEST)
-
- Tu fais bien de me relancer, j'étais passé à coté de cette demande. J'ai du la voir sans la lire en me disant « je regarderai ça tout à l'heure » puis je l'ai complétement oublié.
- J'ai ajouté le cas des « palette verticale avec paramètres ». Elle doivent être conçu comme les palettes avec paramètre, mais renvoyer le texte « palette verticale avec paramètres » au lieu de « palette verticale ». Ceci dit sans palette sous la main je n'ai pas tester. Dis mois si ça ne marche pas.
- Il y avait effectivement un gros bug sur la transmission des paramètres avec le numéro de la palette. Je n'avait visiblement pas tester correctement (voir pas du tout
) cette fonctionnalité. Maintenant c'est possible, voir ci-dessous.
- Il faut que je fasse des tests pour voir s'il est possible de faire quelque chose de ce coté la.
- Zebulon84 (discuter) 4 octobre 2014 à 17:32 (CEST)
- Tu fais bien de me relancer, j'étais passé à coté de cette demande. J'ai du la voir sans la lire en me disant « je regarderai ça tout à l'heure » puis je l'ai complétement oublié.
- Ça marche très bien pour les palettes verticale avec paramètres. Je vais maintenant m'attaquer aux palettes horizontales et ça va me prendre un certain temps. Donc si je ne te reviens pas c'est que tout va bien
. A+ --FDo64 (discuter) 4 octobre 2014 à 23:27 (CEST)
- Il ne semble pas possible de transmettre une liste de paramètre d'un module à un modèle car les pipes de séparation que transmet le module sont considérés comme du texte (l'équivalent de <nowiki>|</nowiki>) et non comme une séparation de paramètres. – Zebulon84 (discuter) 5 octobre 2014 à 17:47 (CEST)
- OK, je vais d'abord m'occuper cette semaine des cas les plus simples. On verra ensuite...
- Merci. A+ --FDo64 (discuter) 5 octobre 2014 à 18:23 (CEST)
- Il ne semble pas possible de transmettre une liste de paramètre d'un module à un modèle car les pipes de séparation que transmet le module sont considérés comme du texte (l'équivalent de <nowiki>|</nowiki>) et non comme une séparation de paramètres. – Zebulon84 (discuter) 5 octobre 2014 à 17:47 (CEST)
Zebulon84 : à l'occasion, pourrais-tu ne catégoriser en erreur que les articles de l'espace principal ?
Merci. --FDo64 (discuter) 10 octobre 2014 à 22:41 (CEST)
Fait. -- Zebulon84 (discuter) 10 octobre 2014 à 23:25 (CEST)
Protection
[modifier le code]Pour éviter un vandalisme touchant 240 000 page il serait utile de protéger Module:Palette. Mais pour que je puisse toujours y toucher, il faudrait se limiter à une semi-protection.
Zebulon84 (discuter) 15 octobre 2014 à 15:18 (CEST)
Fait. --FDo64 (discuter) 15 octobre 2014 à 18:08 (CEST)
Ce modèle est intéressant pour deux raisons et je crée donc deux sous-sections.
Boîte déroulante
[modifier le code]Ce n'est pas la première fois que je vois qu'une boîte déroulante encapsule des palettes. Là c'est systématique. Nous pourrions le généraliser à toutes les palettes en ajoutant le paramètre suivant :
titre boîte déroulante
La présence de ce paramètre ajouterait une boîte déroulante, l'absence garderait la présentation actuelle. Cette programmation pourrait très bien être ajoutée au niveau du modèle:Palette.
Zebulon84 : Qu'en penses-tu ?
--FDo64 (discuter) 26 octobre 2014 à 22:28 (CET)
- Voir ma proposition ci-dessous. – Zebulon84 (discuter) 30 octobre 2014 à 10:44 (CET)
- Bonjour, ça répond parfaitement à ma demande. Et comme il faut bien pinailler
, peux-tu renommer les nouveaux paramètres ?
- titre boite déroulante → titre boîte déroulante (avec ^)
- couleurFondT → couleur boîte déroulante
- Merci. --FDo64 (discuter) 30 octobre 2014 à 12:24 (CET)
- titre boite déroulante est accepté avec et sans accent circonflexe. Pour les autres j'ai préféré garder les même noms que le modèle {{Boite déroulante}}, mais seuls couleurFondT et couleurTexteT sont disponibles.
- Zebulon84 (discuter) 31 octobre 2014 à 21:36 (CET)
- OK, j'arrête alors de pinailler
. Je mets en place cela demain et je mets à jour la doc. Merci ! --FDo64 (discuter) 1 novembre 2014 à 00:05 (CET)
- OK, j'arrête alors de pinailler
Appels multiples du même modèle
[modifier le code] Zebulon84 : Désolé de revenir toujours sur le même sujet, mais la numérotation des paramètres me dérange et encore plus avec un tel modèle qui illustre bien cette problématique. Peu de personnes connaitront cette mécanique et la plupart ne penseront pas à mettre à jour la numérotation lorsqu'il insèreront de nouvelles palettes. Donc pour l'instant j'évite de le faire.
Pour que ce soit vraiment lisible il faudrait pouvoir écrire un code du style :
{{Palette |Titulature dans l'Égypte antique | titre = [[Nom d'Horus]] | image = [[Fichier:Memphis_-_Ramses_Colossus_room_-_hieroglyphic_panel_with_cartouche.JPG|upright=0.8|thumb|[[Nom d'Horus |Noms d'Horus]] et de [[Nom de Nesout-bity |Nesout-bity]] de Ramsès {{II}}.]] | hiero-nom = <hiero>G5</hiero> | hiero = <hiero>E1:D44-P11:X1-C10-U6-M17-M17</hiero> | mdc = ( E1:D44 P11:X1 C10 U6 M17 M17 ) | unicode = kȝ-nḫt mrj-Mȝˁ.t | ascii = Hr kA-nxt mry-mAat nb-HAbw-sd-mi-it.f-ptH-tATnn | trans = Ka-nakht-mery-Maât Neb-hebou-sed-mi-tef-Ptah-ta-tenen | trad = Taureau victorieux aimé de Maât, maître des fêtes-sed comme son père Ptah-Tatenen |Titulature dans l'Égypte antique | titre = [[Nom de Nebty]] | hiero-nom = <hiero>G16</hiero> | hiero = <hiero>G37:D21-F7:X1-G20-V31:Aa16-X1:Z2</hiero> | mdc = ( G37:D21 F7:X1 G20 V31:Aa16 X1:Z2 ) | unicode = wr-šfj.t mk-Kmt | ascii = mk-kmt waf-xaswt | trans = Mak-Kemet-ouafou-khasout | trad = Protecteur de l'Égypte qui soumet les pays étrangers |Titulature dans l'Égypte antique | titre = [[Nom d'Horus d'or]] | hiero-nom = <hiero>G8</hiero> | hiero = <hiero>O29:F23-U6-M17-M17-N19-Z4</hiero> | mdc = O29:F23 U6 M17 M17 N19 Z4 | unicode = ˁȝ-ḫpš mry-tȝ.wj | ascii = aA-xpS mry-tAwy | trans = Âa-khepesh mery-Taouy | trad = À la grande puissance de frappe, l'aimé des Deux-Terres |Titulature dans l'Égypte antique | titre = [[Nom d'Horus d'or]] | sous-titre = Deuxième | hiero-nom = <hiero>G8</hiero> | hiero = <hiero>wsr-s-M4-M4-M4-O29:D44-Z3</hiero> | mdc = F12 S29 M4 M4 M4 O29:D44 Z3 | unicode = wsr rnpwt ˁ3 nḫtw | ascii = wsr-rnpwt aA-nxtw | trans = Ouser-renpout âa-nakhtou | trad = Riche en années, grand de victoires |Titulature dans l'Égypte antique | titre = [[Nom de Nesout-bity]] | image = [[Fichier:Scarab artifact Rameses II CdM Luynes881.jpg|upright=0.8|thumb|Scarabée portant le [[Nom de Nesout-bity |nom de couronnement]] de Ramsès {{II}}]] | hiero-nom = <hiero>M23:X1-L2:X1</hiero> | hiero = <hiero>ra-wsr-mAat-ra:stp:n</hiero> | mdc = ( N5 F12 C10 N5:U21:N35 ) | unicode = Wsr-Mȝˁ.t-Rˁ Stp-n-Rˁ | ascii = wsr-mAat-ra (stp.n-ra) | trans = Ousermaâtrê-Setepenrê | trad = La justice de Rê est puissante, l’élu de Rê |Titulature dans l'Égypte antique | titre = [[Nom de Sa-Rê]] | hiero-nom = <hiero>G39-N5:Z1</hiero> | hiero = <hiero>C12*C2:N36-F31-S29-M23</hiero> | mdc = ( C12*C2:N36 F31 S29 M23 ) | unicode = Rˁ-ms-sw Mr(y)-Jmn | ascii = Ra-ms(w)-sw mry-imn | trans = Ramessou Mériamon | trad = C'est Rê qui l’a engendré, bien aimé d’Amon }}
--FDo64 (discuter) 26 octobre 2014 à 22:28 (CET)
- Cette syntaxe ne peut pas marcher car on a des paramètres en double : seule la dernière valeur est conservée et transmise au modèle et au module lua.
- Si on ne veux pas de numéro la seule syntaxe qui me parait possible est celle ci-dessous, mais elle va à l'encontre de l'utilisation actuelle du modèle Palette. Si malgré-tout elle te satisfait, je modifierai le module pour l'accepter. En attendant ça ne marche pas. – Zebulon84 (discuter) 30 octobre 2014 à 10:44 (CET)
{{Palette |{{Palette Titulature dans l'Égypte antique | titre = [[Nom d'Horus]] | image = [[Fichier:Memphis_-_Ramses_Colossus_room_-_hieroglyphic_panel_with_cartouche.JPG|upright=0.8|thumb|[[Nom d'Horus |Noms d'Horus]] et de [[Nom de Nesout-bity |Nesout-bity]] de Ramsès {{II}}.]] | hiero-nom = <hiero>G5</hiero> | hiero = <hiero>E1:D44-P11:X1-C10-U6-M17-M17</hiero> | mdc = ( E1:D44 P11:X1 C10 U6 M17 M17 ) | unicode = kȝ-nḫt mrj-Mȝˁ.t | ascii = Hr kA-nxt mry-mAat nb-HAbw-sd-mi-it.f-ptH-tATnn | trans = Ka-nakht-mery-Maât Neb-hebou-sed-mi-tef-Ptah-ta-tenen | trad = Taureau victorieux aimé de Maât, maître des fêtes-sed comme son père Ptah-Tatenen }} |{{Palette Titulature dans l'Égypte antique | titre = [[Nom de Nebty]] | hiero-nom = <hiero>G16</hiero> | hiero = <hiero>G37:D21-F7:X1-G20-V31:Aa16-X1:Z2</hiero> | mdc = ( G37:D21 F7:X1 G20 V31:Aa16 X1:Z2 ) | unicode = wr-šfj.t mk-Kmt | ascii = mk-kmt waf-xaswt | trans = Mak-Kemet-ouafou-khasout | trad = Protecteur de l'Égypte qui soumet les pays étrangers }} |{{Palette Titulature dans l'Égypte antique | titre = [[Nom d'Horus d'or]] | hiero-nom = <hiero>G8</hiero> | hiero = <hiero>O29:F23-U6-M17-M17-N19-Z4</hiero> | mdc = O29:F23 U6 M17 M17 N19 Z4 | unicode = ˁȝ-ḫpš mry-tȝ.wj | ascii = aA-xpS mry-tAwy | trans = Âa-khepesh mery-Taouy | trad = À la grande puissance de frappe, l'aimé des Deux-Terres }} }}
- Cette proposition est intéressante et si je la comprends bien c'est une porte ouverte à d'autres possibilités (souhaitables ou non) : si on passe en paramètre un modèle de palette, on doit pouvoir y mettre d'autres modèles (par exemple des tableaux sportifs). C'est bien ça ? --FDo64 (discuter) 30 octobre 2014 à 12:33 (CET)
-
- Voilà :
- Je détecte que le contenu du paramètre commence par
<table class="navbox
. Donc les tableaux sportifs sont à priori exclu. Si on veux les autoriser, il faut retirerclass="navbox
. Et encore, ça ne marchera que s'ils utilisent une syntaxe de table html et non syntaxe wiki{|
. Pour éviter les incompréhensions, il me semble préférable de se limiter aux palettes. - Si certaines palettes n'utilisent pas {{Méta palette de navigation}} il faut s'assurer qu'elles commencent bien par
<table class="navbox
. - Zebulon84 (discuter) 31 octobre 2014 à 21:28 (CET)
Mise en place
[modifier le code]Les modifications proposées ci-dessus sont dans Module:Palette/Bac à sable, mais pas dans le module principal appelé par le modèle {{Palette}}. Doit-on les mettre en place ?
Je viens par ailleurs de corriger dans le module /Bac à sable le problème que tu as signalé sur ma page de discussion.
Zebulon84 (discuter) 4 décembre 2014 à 09:24 (CET)
Modèle en boucle détecté
[modifier le code] Zebulon84 : J'ai mis en place le nouveau module ce matin et tout semble bien se passer. En m'occupant des palettes avec paramètres, je suis tombé sur un petit bug : lorsqu'un paramètre vide est passé au module, le message « Modèle en boucle détecté : Modèle:Palette » s'affiche.
Peux-tu voir cela ? Merci. --FDo64 (discuter) 8 octobre 2014 à 19:08 (CEST)
- Normal. J'ai prévu le cas d'un paramètre vide mais pas celui d'un paramètre avec juste des espaces (pour les paramètres non nommé c'est différent).
corrigé. -- Zebulon84 (discuter) 8 octobre 2014 à 23:11 (CEST)
- Par contre il y a toujours un problème sur les palettes réellement en boucle. On ne le détectait pas avec le modèle Palette/Bac à sable car il n'y avait pas de réellement de boucle, seulement deux modèles qui font a peu près la même chose, voire maintenant qui sont identiques mais toujours séparés. Je vais essayé de trouver une solution, mais je ne garanti rien pour le moment. -- Zebulon84 (discuter) 8 octobre 2014 à 23:25 (CEST)
- Je vois deux solutions pour le moment.
- Créer une copie de {{Palette}} pour l'espace modèle. Simple, mais ça ne permet pas de faire de multiple boucle.
- Appliquer aux utilisations de {{Palette}} dans l'espace modèle ce que j'ai fait sur {{Palette Chronologie Citroën/Bac à sable}}. C'est lourd, mais ça permet les boucles multiples (donc que ce modèle soit appelé par un autre modèle avec {{Palette}}, qui sera lui-même appelé par le modèle Palette).
- Comme je pense que les boucles multiples doivent être évitées car « trop de palette tue la palette », je préconiserai la première solution (avec 5 palettes max). Il faut dans ce cas mettre un avertissement dans Palette pour dire de répercuter les modifs dans l'autre modèle.
- Zebulon84 (discuter) 9 octobre 2014 à 00:00 (CEST)
- Merci pour la première correction.
- Pour ce qui est du deuxième problème, l'idée d'un deuxième modèle me convient. Je ne trouve pas de nom génial : Multi palette, Palette bloc...
- D'un autre côté, on pourrait peut-être utiliser tout simplement {{Méta palette de navigation sous-liste}}. Je vais y réfléchir, mais pas ce soir.
- A+ --FDo64 (discuter) 9 octobre 2014 à 00:28 (CEST)
- Je propose Palette espace modèle ou Palette (espace modèle). Zebulon84 (discuter) 9 octobre 2014 à 01:01 (CEST)
- Comme cela ne concerne que 6 modèles, on pourrait peut-être éviter les usines à gaz. On pourrait remplacer :
- Je propose Palette espace modèle ou Palette (espace modèle). Zebulon84 (discuter) 9 octobre 2014 à 01:01 (CEST)
- Je vois deux solutions pour le moment.
- Par contre il y a toujours un problème sur les palettes réellement en boucle. On ne le détectait pas avec le modèle Palette/Bac à sable car il n'y avait pas de réellement de boucle, seulement deux modèles qui font a peu près la même chose, voire maintenant qui sont identiques mais toujours séparés. Je vais essayé de trouver une solution, mais je ne garanti rien pour le moment. -- Zebulon84 (discuter) 8 octobre 2014 à 23:25 (CEST)
Par :
Le seul problème que je vois c'est que ça rétrécit un soupçon les palettes déjà très chargées. Si l'idée te convient, je vais la proposer au Projet:Automobile. A+ --FDo64 (discuter) 9 octobre 2014 à 21:05 (CEST)
- Il y a à priori aussi un soucis d’accessibilité avec ce type de palettes imbriquées (et donc de table imbriqués). Maintenant comme je n'ai jamais utilisé de navigateur texte ou vocal, je ne sais pas exactement quel est le niveau du problème. Pas d'autres objections. – Zebulon84 (discuter) 9 octobre 2014 à 23:57 (CEST)
- J'ai finalement suivi ton conseil et créé le Modèle:Palette (espace modèle). --FDo64 (discuter) 26 mars 2015 à 21:49 (CET)
Discussion
[modifier le code] Zebulon84 : Il reste un problème à régler pour pouvoir achever cette migration, celui des modèles de la Catégorie:Modèle succession. Ça ne fonctionne pas bien parce que la {{Méta palette de navigation}} est programmée avec des tableaux en codage HTML, alors que les modèles Succession sont en codage wiki (une quarantaine de modèles que j'aimerai ne pas avoir à réécrire).
Appel direct :
Appel via le modèle Palette :
Aurais-tu une solution à proposer ? --FDo64 (discuter) 15 février 2015 à 16:11 (CET)
- J'ai modifié le Bac à sable pour accepter aussi les tables au format wiki, y compris si elles ne sont pas au début à cause du
{{saut|10px}}
dans {{Succession/Début}} - Cependant ce saut génère un blanc qui me semble inesthétique (voir ci-dessous). Faut-il que le modèle Palette le supprime systématiquement ?
- Ce {{Succession/Début}} à par ailleurs un problème : il ouvre deux tableaux alors que {{Succession/Fin}} n'en ferme qu'un (j'ai du rajouter des fermetures de tableau dans ton message). Je ne vois d'ailleurs pas à quoi sert la deuxième ouverture :
{| class="navbox-columns-table" cellspacing="0" style="text-align:left; width:100%;"
- Zebulon84 (discuter) 17 février 2015 à 11:07 (CET)
- Merci pour ce retour, je regarde tout ça demain. A+ --FDo64 (discuter) 17 février 2015 à 22:34 (CET)
- J'ai fais les deux modifications suggérées. Je vais donc maintenant m'attaquer à la migration de ces modèles. Merci encore ! --FDo64 (discuter) 18 février 2015 à 14:09 (CET)
- J'ai fait les modifications nécessaires dans le module:Palette lui-même. Zebulon84 (discuter) 18 février 2015 à 14:54 (CET) PS. Cela rend la discussion ci dessus incompréhensible avec ces exemples qui ne correspondent plus au texte
- J'ai fait les modifications nécessaires dans le module:Palette lui-même. Zebulon84 (discuter) 18 février 2015 à 14:54 (CET) PS. Cela rend la discussion ci dessus incompréhensible avec ces exemples qui ne correspondent plus au texte
- J'ai fais les deux modifications suggérées. Je vais donc maintenant m'attaquer à la migration de ces modèles. Merci encore ! --FDo64 (discuter) 18 février 2015 à 14:09 (CET)
- Merci pour ce retour, je regarde tout ça demain. A+ --FDo64 (discuter) 17 février 2015 à 22:34 (CET)
Je ne comprends pas pourquoi, mais le paramètre 'nocat' n'est pas passé aux palettes du tout dernier exemple : « Palettes dont le paramètre stylecorps a un width à auto ou différent de 100% ». J'ai essayé différentes combinaisons : :en numérotant les paramètres ou en passant le modèle entier et c'est pareil... Ça ne marche que si on ne passe qu'une seule palette. --FDo64 (discuter) 11 mars 2015 à 15:48 (CET)
- Je vois deux raisons :
- Les nocat1, nocat2... n'étaient pas pris en compte pour les palettes avec paramètres depuis que la numérotation des paramètres lié à la palette doit être précédée d'un espace. J'ai ajouté un cas particulier pour les nocat pour éviter d'avoir à modifier les quelques dizaines de pages qui utilisent ces paramètres (l'autre solution aurait été d'ajouter un espace :
nocat 2
). - Pour PGP, le paramètre utilisé était nocat3 alors que c'est la deuxième palette.
- Les nocat1, nocat2... n'étaient pas pris en compte pour les palettes avec paramètres depuis que la numérotation des paramètres lié à la palette doit être précédée d'un espace. J'ai ajouté un cas particulier pour les nocat pour éviter d'avoir à modifier les quelques dizaines de pages qui utilisent ces paramètres (l'autre solution aurait été d'ajouter un espace :
- Il est aussi possible d'utiliser le paramètre
nocat
tout court qui est alors transmis à toutes les palettes. - Zebulon84 (discuter) 12 mars 2015 à 10:51 (CET)
- Ah merci ! Je n'avais pas pensé au
nocat
, mais de toute façon je voulais régler le problème. --FDo64 (discuter) 12 mars 2015 à 20:18 (CET)
- Ah merci ! Je n'avais pas pensé au
Palette avec une largeur réduite
[modifier le code]J'ai ajouté le cas d'une palette avec une largeur à 75%. Idéalement, le paramètre stylecorps devrait être supprimé lorsque le modèle est appelé à partir du modèle Palette afin qu'il reprenne toute la largeur.
J'ai fais une tentative avec le modèle:Succession/Début, mais ça ne marche pas. Je pense qu'il faudrait que ce soit fait dans le module...
--FDo64 (discuter) 28 mars 2015 à 18:14 (CET)
- J'ai modifié le module Bac à sable pour qu'il ne transmette pas le paramètre stylecorps aux « palette avec paramètre » (attention il d'autre modèles peuvent modifier autre chose que la largeur !)
- Les modèle succession ne sont pas des palettes avec paramètre mais des navbox utilisées directement. Donc il n'est pas facile de les modifier sans faire des supposition importante sur leur contenu, ce qui peut-être risqué pour d'autres modèles, ou ne plus être valable à la moindre modification de {{Succession/Début}}.
- Par contre en utilisant le modèle {{Palette Succession}}, ça marche.
- Zebulon84 (discuter) 30 mars 2015 à 15:27 (CEST)
- C'est très bien ainsi. Merci ! --FDo64 (discuter) 30 mars 2015 à 22:44 (CEST)