Discussion module:Date
Discussion
[modifier le code]Oï,
je vais ajouter des fonctions à ce module : il me semble que ça doit être plus large que ça.
En particulier je pense à {{Date}} qui est un modèle énormément utilisé et qui "coûte" cher. Hexasoft (discuter) 2 mars 2013 à 19:40 (CET)
Tests :
Code | Restitution | Module |
---|---|---|
{{Date|14|octobre|2001}} |
||
{{Date|14|octobre|1842}} |
||
{{Date|1er|janvier|537}} |
||
{{Date|14|octobre|2001|en musique}} |
||
{{Date||octobre|2001}} |
||
{{Date||Octobre|2001|en sport}} |
||
{{Date||Octobre|1845|en sport}} |
||
{{Date|1|octobre|2005|dans les chemins de fer}} |
||
les {{Date||14|octobre|2001|en musique}} et {{Date|15|octobre|2001|en musique}} |
les Année invalide (octobre) et | les Année invalide (octobre) et |
les {{Date||25|mars|1990}} et {{Date|8|avril|1990}} |
les Année invalide (mars) et | les Année invalide (mars) et |
{{Date|37|mars|1990}} |
Jour invalide (37) | Jour invalide (37) |
{{Date|12|bloblo|1990}} |
Mois invalide (bloblo) | Mois invalide (bloblo) |
{{Date|5|fev|1990}} |
||
{{Date|3|mars|1222}} |
||
{{Date|3|NOVEMBRE|1990}} |
||
{{Date|25|octobre|1995}} |
Conclusion : la fonction du module fait la même chose.
Cette fonction fait en plus :
- détection de numéro de jour invalide (pour le moment <1 ou >31. À faire : une vraie fonction de calendrier permettant de savoir combien de jour a le mois indiqué, de l'année indiquée)
- détection de nom de mois invalide
- tolère des noms de mois avec variantes (pas d'accent, abréviations, majuscules). Quoi qu'il en soit si le mois est reconnu sa forme "normale" est affichée. Ceci peut se désactiver si besoin.
- génère une erreur (claire ?) textuelle en cas de problème.
- Affiche la balise html5 time.
À faire, éventuellement :
- ajouter une catégorie d'erreur d'utilisation du "module date" (pour retrouver les problèmes). Note : ce devrait être une catégorie cachée
- permettre de désactiver la gestion des erreurs (affichage d'erreur, catégorie d'erreur).
Ne fait pas :
si le jour est le 1, le 1er n'a pas de champs "alt" affichant "premier" comme c'est le cas pour {{Date}}. Facile à ajouter.
Notes :
- utilise "ifexist", comme l'original. Pour le moment via frame:preprocess(), à terme via mw.title. C'est et cela restera une fonction "coûteuse" (comme l'utilisation de #ifexist). Le module utilise 1 ou 2 fois cette fonction (selon affichage de la date ou pas).
Proposition
[modifier le code]Il faudrait rajouter un test supplémentaire afin de savoir si une page existe pour la date complète comme pour 25 octobre 1995 ou 11 septembre 2001. Antoine(A455bcd9) (d) 5 mars 2013 à 22:05 (CET)
- Heu, oui, pourquoi pas. Mais est-ce une fonctionnalité nouvelle ou bien est-ce que ça existe dans le modèle actuel ?
- Si c'est nouveau il faudrait décider d'une option (par exemple {{le-futur-date|25 octobre 1995|format=complet}}). Si ça existe déjà c'est que j'ai raté quelque chose dans le modèle existant Cordialement, Hexasoft (discuter) 5 mars 2013 à 22:11 (CET)
- Non ça n'existe pas dans le modèle date actuel (la proposition a aussi été faite d'ailleurs). Il faudrait rajouter un ifexist supplémentaire en fait. Antoine(A455bcd9) (d) 5 mars 2013 à 23:06 (CET)
- Ok. Toutefois la question est surtout de savoir si on veut que ce comportement soit automatique ou optionnel. En gros si JJ MOIS AAAA existe on fait un lien complet, sinon la verion éclatée, ou bien s'il faut le demander explicitement dans le modèle. Car ça risque de changer les choses pour des affichages existants.
- En particulier c'est vrai qu'il n'y a aucun lien vers le jours précis, mais ça veut dire que si le jour précis existe on perd tout lien vers le "JJ MOIS", le "MOIS AAAA" et le "AAAA", ce qui est un peu le concept de ce modèle. Ça veut dire aussi que disparaît l'utilisation de la précision thématique dans ce cas ("en sport", "en musique"…).
- N'étant qu'un "technicien" des modules je n'ai strictement aucun avis sur la pertinence d'un tel changement, mais étant donné que ce modèle est très (très) utilisé je serai plutôt prudent sur tout changement qui impacterait potentiellement des tonnes d'articles, et il me semble qu'il faudrait demander l'avis "d'un certain nombre" d'utilisateurs.
- Il reste toujours la possibilité d'une option spécifique (format=complet par exemple) ne changeant donc pas l'existant mais utilisable dans le cadre de certains articles/thématiques si c'est pertinent pour eux. Pour reprendre mon exemple plus haut je ne sais pas si le portail musique verrait un intérêt à lier la date du 11 septembre 2001 vers 11 septembre 2001 alors que c'est aussi la date de sortie d'un album de Noir désir, chose que j'ai appris en arrivant sur 2001 en musique et qui ne serait donc plus lié en ce cas. Note qu'ici l'article sur Noir désir n'utilise pas le modèle Date sur cette date mais si tel avait été le cas le lien généré serait 11 septembre 2001, une page qui ne traite que de l'attaque des tours jumelles et qui ne semble pas forcément pertinent comme lien sur la page d'un groupe musical ou d'un album.
- Cordialement, Hexasoft (discuter) 5 mars 2013 à 23:21 (CET)
- Il faut que seul le 11 soit lié à 11 septembre 2001. Le lien sur septembre continuerait à être Septembre 2001 et celui sur 2001 2001 ou 2001 en musique le cas échéant. Thierry Caro (d) 11 mars 2013 à 00:01 (CET)
- Effectivement ça me semble mieux comme ça, car ça ne prive pas d'un ensemble de liens thématiques. Tant que le modèle Date reste un modèle il me semble toutefois préférable d'en parler dans Discussion modèle:Date. L'existence d'un modèle et d'un module est lié au fait que Lua/Scribunto n'est pas encore "officiellement" en prod. Cordialement, Hexasoft (discuter) 11 mars 2013 à 10:48 (CET)
- + 1 pour éventuellement implémenter un lien complet sur le quantième, cela ne me semble poser aucun problème. À une seule condition, que cela ne se fasse pas au détriment des performances, et je présume que c'est pour cette raison que cela n'avait pas été implémenté en 1er lieu. od†n ↗blah 20 mars 2013 à 11:34 (CET)
- Effectivement ça me semble mieux comme ça, car ça ne prive pas d'un ensemble de liens thématiques. Tant que le modèle Date reste un modèle il me semble toutefois préférable d'en parler dans Discussion modèle:Date. L'existence d'un modèle et d'un module est lié au fait que Lua/Scribunto n'est pas encore "officiellement" en prod. Cordialement, Hexasoft (discuter) 11 mars 2013 à 10:48 (CET)
- Il faut que seul le 11 soit lié à 11 septembre 2001. Le lien sur septembre continuerait à être Septembre 2001 et celui sur 2001 2001 ou 2001 en musique le cas échéant. Thierry Caro (d) 11 mars 2013 à 00:01 (CET)
- Non ça n'existe pas dans le modèle date actuel (la proposition a aussi été faite d'ailleurs). Il faudrait rajouter un ifexist supplémentaire en fait. Antoine(A455bcd9) (d) 5 mars 2013 à 23:06 (CET)
Branche Od1n
[modifier le code]Bonjour,
J'avais commencé à développer ceci de mon côté, si cela peut vous inspirer Je vous signale également cette discussion, concernant les paramètres décalés.
od†n ↗blah 20 mars 2013 à 11:30 (CET)
Rendre la fonction modeldate exportable
[modifier le code]Bonjour, serait-il possible de rendre la fonction modeledate exportable ? J'aurais besoin de l'utiliser dans Module:Wikidata/Test. --Zolo (discuter) 25 septembre 2013 à 23:21 (CEST)
- Que veux-tu dire par exportable ? Tu peux doit déjà pouvoir l'appelée depuis un autre module en faisant :
local Date = require('Module:Date')
local madate = Date.modeleDate{ '25', '9', '2013' }
-- madate = '<time datetime="2013-09-25">[[25 septembre |25]] [[septembre 2013 |septembre]] [[2013|2013]]</time>'
- Si tu désires pouvoir utiliser des 'number' et non des 'string' je peux arranger ça. Sinon, précise ton besoin.
- Zebulon84 (discuter) 25 septembre 2013 à 23:56 (CEST)
- Merci, en fait je n'avais pas compris qu'il fallait utiliser des accolades plutôt que des parenthèses. Du coup, j'ai cru qu'il y avait quelque chose qui empêchait d'utiliser la fonction depuis l'extérieur. --Zolo (discuter) 26 septembre 2013 à 08:57 (CEST)
- La fonction demande une table comme paramètre. Normalement on utilise des parenthèses à l'intérieur desquelles tu mets tes accolades, mais lua permet quelques raccourcis. Les notations suivantes sont équivalentes :
local param = { '25', '9', '2013' }
local madate = Date.modeleDate( param )
local madate = Date.modeleDate( { '25', '9', '2013' } )
local madate = Date.modeleDate{ '25', '9', '2013' }
- Zebulon84 (discuter) 26 septembre 2013 à 11:49 (CEST)
- Ok, merci pour l'explication. --Zolo (discuter) 26 septembre 2013 à 12:24 (CEST)
Il est désormais possible d'appeler ce modèle avec des paramètres 'number' :
local Date = require('Module:Date')
local madate = Date.modeleDate{ 25, 9, 2013 }
-- madate = '<time datetime="2013-09-25">[[25 septembre |25]] [[septembre 2013 |septembre]] [[2013|2013]]</time>'
Chaque paramètre est indépendant, on peut donc avoir le jour et le mois en 'string' et l'année en 'number' sans problème.
Zebulon84 (discuter) 26 septembre 2013 à 16:57 (CEST)
Merci, même si personnellement, je n'ai pas besoin des date en format nombre. Désolé de revenir à mon problème de transclusion qui est un peu hors sujet, mais je ne comprends pas pourquoi
{{#invoke: Date clé|keydate|property=p132}}
ne donne pas la même chose que
{{#invoke: wikidata|formatStatements|property=p132}
dateISO
[modifier le code]Peut-être que je n'utilise pas le modèle comme il faut, mais parmi les cas suivants, seul le premier marche (et c'est dommage :-)
*{{#invoke: Date | dateISO | année = 1934|mois = 08 | jour=21}} *{{#invoke: Date | dateISO | année = 0034|mois = 08 | jour=21}} *{{#invoke: Date | dateISO | année = 34|mois = 08 | jour=21}} *{{#invoke: Date | dateISO | année = -1934|mois = 08 | jour=21}}
donne:
- 1934-08-21
- C'est volontaire.
- Une date au format iso doit suivre le calendrier Grégorien qui n'existe que depuis Octobre 1582.
- Pour éviter les incompréhension liè à un changement de calendrier, seule les date à partir de 1583 "marchent", car peu d'utilisateurs comprendront que
{{#invoke: Date | dateISO | année = 34|mois = 08 | jour=21}}
done « 0034-08-19 ». - Enfin la date ISO n'est définie qu'a partir de l'an 1 car l’existence ou non d'une année 0 n'est pas définie.
- Je vais l'ajouter dans la doc.
- Zebulon84 (discuter) 28 septembre 2013 à 20:38 (CEST)
- Ah d'accord merci. En fait je cherchais un format de type string qui permette des comparaisons chronologiques faciles, mais je peux aussi utiliser le format fourni par Wikidata. Tpt a aussi commencé sur test2.wiki un Module:Time qui prend en compte les dates Wikidata. Peut-être que ça vaut la peine d'essayer de l'intégrer ici ? --Zolo (discuter) 29 septembre 2013 à 09:13 (CEST)
GregorianToJulian
[modifier le code]Bonjour, on a jullianDayToGregorian, mais pas GregorianToJulian. Ce serait faisable ? Ce serait très utile pour les données Wikidata qui sont stockées dans un format grégorien, mais qu'il faudrait parfois afficher en Julien. --Zolo (discuter) 30 septembre 2013 à 20:54 (CEST)
- Bien sur, et ça doit pas être très compliqué. Je regarde ça demain.
- Ça me fait penser que pour tes histoires de tri de date, le julianDay devrait être adapté : c'est un simple nombre, quelque soit le jour ou l'heure.
- Zebulon84 (discuter) 1 octobre 2013 à 02:28 (CEST)
- Fait. Zebulon84 (discuter) 1 octobre 2013 à 11:59 (CEST)
- Merci mais lorsque j'essaie de passer gregorianToJullian(1099, 08, 12)</nowiki> j'obtiens juste "1099", il ne faut pas mettre les mois en numérique ?
- Sinon, c'est pas fondamental, mais "julian" ne prend qu'un "l". --Zolo (discuter) 1 octobre 2013 à 14:47 (CEST)
- gregorianToJulian retourne trois nombres, pas une chaine représentant une date :
local a, m, j = gregorianToJulian(1099, 08, 12) -- a = 1099 ; m = 8 ; j = 6
- Zebulon84 (discuter) 1 octobre 2013 à 19:10 (CEST)
- ps: j'ai supprimé le "l" en trop, merci. Zebulon84 (discuter) 1 octobre 2013 à 19:16 (CEST)
- Ah oui je vois... Mais du coup, si ça donne trois valeurs séparées plutôt qu'une table de trois valeurs, on fait comment pour les récupérer toutes ensemble ? La version de Module:Wikidata/Test produit une erreur de script. --Zolo (discuter) 1 octobre 2013 à 21:34 (CEST)
- Pour les récupérer il y a un exemple juste au dessus de ton message. Si tu veux ces valeurs dans une table, il suffit de les mettre dans une table, indirectement ou dès le retour de la fonction :
local maTable = { a, m, j } -- maTable = { 1099 , 8 , 6 }
local maTable = { j, m, a } -- maTable = { 6 , 8 , 1099 }
local maTable = { jour= j, mois= m, ['année'] = a } -- maTable = { jour = 6 , mois = 8 , ['année'] = 1099 }
local maTable = { gregorianToJulian(1099, 08, 12) } -- maTable = { 1099 , 8 , 6 }
- Désolé pour Module:Wikidata/Test, j'ai juste voulu montrer le principe. Mais comme je ne sais pas comment s'utilise Module:Wikidata/Test et que tu ne précises rien sur ton « erreur de script », c'est difficile de t'aider : Quelle est l'erreur ? D'où vient-elle ? (juste au cas ou, il suffit de cliquer sur « erreur de script » pour avoir ces info)
- Zebulon84 (discuter) 2 octobre 2013 à 03:51 (CEST)
- Merci mais du coup je ne vois pas où est l'erreur dans Wikidata/Test. Le message d'erreur n'indique rien de précis. {{#invoke:Wikidata|formatStatements|property=p585}} est sensé renvoyer la date Wikidata stockée dans la propriété "date" de l'élément Wikidata associé. Ca marche lorsque la date est en grégorien (prise de la Bastille). Mais pour Siège d'Ascalon (1099) où Wikidata indique que la date doit-être affichée en julien, ça donne un message d'erreur générique "erreur de script". (Si au lieu de Module:Wikidata/Test, on utilise Module:Wikidata, qui ne prend pas en compte le paramètre "calendrier", on obtient "18 août 1099 qui est la date en grégorien) --Zolo (discuter) 2 octobre 2013 à 09:38 (CEST)
- Le message est clair : « attempt to call global 'gregorianToJulian' (a nil value), Module:Wikidata/Test:282 : ».
- Avec ça je vois immédiatement mon erreur, que je corrige dans la foullée.
- Zebulon84 (discuter) 2 octobre 2013 à 12:24 (CEST)
- Super, ça marche merci. Mais tu le vois où le message d'erreur ? Moi, je ne voyais que "script error". --Zolo (discuter) 2 octobre 2013 à 13:04 (CEST)
- Ooooh il suffit de cliquer sur le rouge.... Voilà bien du temps gagné en perspective. --Zolo (discuter) 2 octobre 2013 à 13:30 (CEST)
- Oui. Dans mon message de 03:51 il y avait : « (juste au cas ou, il suffit de cliquer sur « erreur de script » pour avoir ces info) »
- Zebulon84 (discuter) 2 octobre 2013 à 13:34 (CEST)
- Oui je ne sais pas très bien ce qui m'a échappé . --Zolo (discuter) 2 octobre 2013 à 15:03 (CEST)
- Ooooh il suffit de cliquer sur le rouge.... Voilà bien du temps gagné en perspective. --Zolo (discuter) 2 octobre 2013 à 13:30 (CEST)
- Super, ça marche merci. Mais tu le vois où le message d'erreur ? Moi, je ne voyais que "script error". --Zolo (discuter) 2 octobre 2013 à 13:04 (CEST)
- Merci mais du coup je ne vois pas où est l'erreur dans Wikidata/Test. Le message d'erreur n'indique rien de précis. {{#invoke:Wikidata|formatStatements|property=p585}} est sensé renvoyer la date Wikidata stockée dans la propriété "date" de l'élément Wikidata associé. Ca marche lorsque la date est en grégorien (prise de la Bastille). Mais pour Siège d'Ascalon (1099) où Wikidata indique que la date doit-être affichée en julien, ça donne un message d'erreur générique "erreur de script". (Si au lieu de Module:Wikidata/Test, on utilise Module:Wikidata, qui ne prend pas en compte le paramètre "calendrier", on obtient "18 août 1099 qui est la date en grégorien) --Zolo (discuter) 2 octobre 2013 à 09:38 (CEST)
- Ah oui je vois... Mais du coup, si ça donne trois valeurs séparées plutôt qu'une table de trois valeurs, on fait comment pour les récupérer toutes ensemble ? La version de Module:Wikidata/Test produit une erreur de script. --Zolo (discuter) 1 octobre 2013 à 21:34 (CEST)
- Fait. Zebulon84 (discuter) 1 octobre 2013 à 11:59 (CEST)
fonction pour afficher les intervalles temporels
[modifier le code]Encore moi désolé...
J'aurais besoin d'une fonction qui donne des textes comme "à partir de date 1" et "jusqu'à date 2" de façon relativement naturelle. Ca demande quelques règlages grammaticaux. J'ai fait un brouillon de fonction, mais je ne suis pas sûr que ce soit la meilleure manière de procéder, alors je préfère le mettre ici :
function fun.daterange(begin, ending) -- prend deux dates représentées chacune par { year = année, month =mois, day= jour}
if begin then
local day1, month1, year1 = '', '', ''
if begin.day then day1 = begin.day end
if begin.month then month1 = begin.month end
if begin.year then year1 = begin.year end
end
if ending then
local day2, month2, year2 = '', '', ''
if ending.day then day2 = ending.day end
if ending.month then month2 = ending.month end
if ending.year then year2 = ending.year end
end
if begin and ending then -- date1-date2 (un tiret parait moins lourd que "entre date1 et date2")
if year1 == year2 then -- évite de répéter l'année si c'est deux fois la même
return fun.modeleDate(day1, month1) .. '-' fun.modeleDate(day2, month2, year2)
else
return fun.modeleDate(day1, month1, year1) .. '-' fun.modeleDate(day2, month2, year2)
end
elseif begin -- fin sans début = à partir de
if day1 ~= '' then
return 'à partir du ' .. fun.modeleDate(day1, month1, year1)
elseif month1 == '4' or month1 == '04' or month1 == '08' or month1 == '8' or month1 == '10' then-- qqch qui trouve les mois qui commencent par une voyelle
return 'à partir d\'' .. fun.modeleDate(, month1, year1)
else
return 'à partir de ' .. fun.modeleDate(, month1, year1)
end
elseif ending then -- fin sans début = jusqu'à
if day2 ~= '' then
return 'jusqu\'au ' .. fun.modeleDate(day2, month2, year2)
else
return 'jusqu\'à ' .. fun.modeleDate(, month2, year2)
end
else
return nil
end
end
- Cette fonction me semble utile. Il serait utile de masquer le mois quand les deux dates sont dans le même mois. Je préférerais un format du type : du date1 au date2 --Dom (discuter) 21 janvier 2014 à 08:26 (CET)
Traduire le modèle {{date}}
[modifier le code]Bonsoir, je crois que ce module est crée pour remplacer {{date}} qui coûte très cher mais jusqu'à maintenant on l'a pas encore remplacé! Y a t'il une raison? Rabah201130 (discuter) 2 novembre 2013 à 20:14 (CET)
- Le modèle date génère des « fonctions couteuses » mais est relativement rapide à l'exécution. Je me suis donc d'abord occupé de remplacer les modèles {{ouvrage}} et {{article}} qui ne génère pas de fonction couteuses mais étaient relativement long à l'exécution.
- Maintenant je vais avoir le choix entre Lien web (que je désire faire évoluer avant de le mettre en place) et Date (qui est maintenant nettement plus utile maintenant grâce au travail de Paul.schrepfer : création systématique de page mensuelle).
- Il serait logique de commencer par date, mais mon esprit est plutôt concentré sur les problèmes bibliographiques. A voir, décision dans les prochainq jours.
- Zebulon84 (discuter) 2 novembre 2013 à 20:54 (CET)
Comment récupéré la date des élections suivantes et précédentes ?
[modifier le code]Bonjour,
J'essaie de modifier le le modèle Infobox Élection générale pour que les dates (en général l'année) des élections précédentes et suivantes apparaissent automatique dans l'infobox. Mon idée était d'utiliser le module Wikidata avec la syntaxe suivante :
{{#invoke: Wikidata|getQualifier|property=P155|qualifier=P585|formatting=raw}}.
Mais hélas ça ne fonctionne pas, voir la discussion Qualifier sans wikification ?. Quel pourrait être la solution ? --Dom (discuter) 16 novembre 2013 à 07:14 (CET)
Message d'erreur fautif
[modifier le code]31|septembre|2001
affiche Année invalide (31). Ça serait pas plutôt « mois invalide » (ou « nombre de jours du mois invalide ») ?
Enlever l'année, ou même l'année et le mois
[modifier le code]Bonjour, il en a peut-être déjà été question sur Discussion modèle:Date (pas exactement de la même façon peut être), et aussi le tableau test ici en haut en tient compte, mais pour l'exemple à suivre dans la doc il se pose la question de
les {{Date||25|mars|1990}} et {{Date|8|avril|1990}}
= les Année invalide (mars) etles {{Date|25|mars}} et {{Date|8|avril|1990}}
= les et
qui ne lient pas pareil le 25 mars, et le premier est considéré comme exploitation de bug et code non propre : alors vaut-il mieux prévoir un nouveau paramètre de {{Date}} pour avoir du code propre ? — Oliv☮ Éppen hozzám? 20 janvier 2014 à 16:49 (CET)
- Pour avoir regardé un peu {{Date}} lorsque j'ai codé quelques parties de ce module je ne puis qu'être d'accord sur le fait qu'il ne faut pas retranscrire cette horreur qu'est la syntaxe {{Date||25|mars|1990}} .
- On peut imaginer un paramètre additionnel du genre "masquer année=oui" par exemple. Est-ce qu'il y a d'autres cas d'affichage spécifique ? (ne pas afficher le jour, ne pas afficher le mois et l'année) Cordialement, Hexasoft (discuter) 20 janvier 2014 à 16:58 (CET)
- Retranscrire la possibilité est une bonne chose. Mais pas faire perdurer l'usage de l'exploitation de bug. Le paramètre optionnel me semble le plus judicieux. --Hercule (discuter) 20 janvier 2014 à 17:04 (CET)
- Voir aussi cette discussion que j'avais lancée. En résumé, on profiterait de la puissance de Lua pour implémenter une syntaxe
{{date|25|mars|2010-}}
. Sémantiquement, cela signifie que l'on renseigne un champ pour préciser les liens, mais sans afficher ledit champ. od†n ↗blah 20 janvier 2014 à 20:23 (CET)- J'avais oublié cette discussion à laquelle j'avais pourtant participé : d'accord avec ta notation qui m'a l'air assez intuitive et sûrement faisable sans problème de fonctions coûteuses en Lua. — Oliv☮ Éppen hozzám? 20 janvier 2014 à 20:58 (CET)
- Pour ma part je ne suis pas contre un "modifieur" de comportement à ajouter à un élément. Je peux m'en occuper si vous n'êtes pas à quelques jours près. Par contre s'il faut ajouter ça j'aimerai savoir au préalable si ça doit être étendu à d'autres champs, histoire de grouper les modifications. Est-ce qu'il y a d'autres éléments qui peuvent ne pas être affiché mais fournis ? Hexasoft (discuter) 20 janvier 2014 à 21:15 (CET)
- PS: Hercule : : cette syntaxe te conviendrais ? Hexasoft (discuter) 20 janvier 2014 à 21:16 (CET)
- Du moment que c'est explicitement prévu par le modèle tout me convient .
- J'ai cependant un doute de la compréhension de cette syntaxe par les profanes (nous sommes ici entre habitués de la manipulation des modèles, mais il faut que le rédacteur lambda comprenne assez facilement le code dans les articles).
- Est-ce qu'un paramètre du style sans ne serait pas plus judicieux ? Par exemple {{date|25|mars|2010|sans=année}}. Voire carrément un modèle {{date sans année|25|mars|2010}} ?
- --Hercule (discuter) 20 janvier 2014 à 21:24 (CET)
- Pas opposé à un paramètre explicite (d'ailleurs c'était ma proposition d'origine), mais pas opposé à une syntaxe du type "ANNÉE-". Pour le profane je ne sais pas (je baigne dans la technique wikipédienne depuis trop longtemps ). Il faudrait trouver quelques candides pour nous dire ce qu'ils en pensent.
- Par contre je pense qu'un modèle supplémentaire passerait mal : les profanes trouvent déjà qu'on s'y perd dans tous les modèles existants, si c'est pour en ajouter pour chaque variante… Hexasoft (discuter) 20 janvier 2014 à 21:34 (CET)
- N'oubliez pas le cas où l'on souhaiterait n'afficher que le jour (« du 10 au 12 janvier 2014 »). Un paramètre «
sans
» ({{date|10|janvier|2014|sans=mois année}}
) serait alors très bancal : syntaxe du paramètre "incertaine" et sujette à erreurs utilisateur, et délicat à parser. od†n ↗blah 21 janvier 2014 à 01:38 (CET)- La syntaxe avec un ou plusieurs paramètres supplémentaires me semble une habitude des modèles où c'est la seule façon de faire, si en Lua « - » final est possible ça m'a l'air plus simple pour l'utilisateur. — Oliv☮ Éppen hozzám? 21 janvier 2014 à 07:41 (CET)
- Pour écrire « du 10 au 12 janvier 2014 » il n'y a aucune raison d'utiliser le modèle pour le 10, puisqu'il n'y a au plus qu'un seul lien... Il faut savoir rester simple --Hercule (discuter) 24 janvier 2014 à 11:44 (CET)
- Juste une petite remarque, les débutants vont utiliser l'EditeurVisuel et donc avoir une belle explication du truc, je pense qu’ils ne seront pas les plus gênés par une syntaxe avec un modificateur de comportement… Je suis plus gêné pour savoir que quantième veut dire jour du mois . CQui (discuter), le CQui (discuter) 6 février 2014 à 15:06 (CET)
- Pour écrire « du 10 au 12 janvier 2014 » il n'y a aucune raison d'utiliser le modèle pour le 10, puisqu'il n'y a au plus qu'un seul lien... Il faut savoir rester simple --Hercule (discuter) 24 janvier 2014 à 11:44 (CET)
- La syntaxe avec un ou plusieurs paramètres supplémentaires me semble une habitude des modèles où c'est la seule façon de faire, si en Lua « - » final est possible ça m'a l'air plus simple pour l'utilisateur. — Oliv☮ Éppen hozzám? 21 janvier 2014 à 07:41 (CET)
- N'oubliez pas le cas où l'on souhaiterait n'afficher que le jour (« du 10 au 12 janvier 2014 »). Un paramètre «
- J'avais oublié cette discussion à laquelle j'avais pourtant participé : d'accord avec ta notation qui m'a l'air assez intuitive et sûrement faisable sans problème de fonctions coûteuses en Lua. — Oliv☮ Éppen hozzám? 20 janvier 2014 à 20:58 (CET)
- Voir aussi cette discussion que j'avais lancée. En résumé, on profiterait de la puissance de Lua pour implémenter une syntaxe
- Retranscrire la possibilité est une bonne chose. Mais pas faire perdurer l'usage de l'exploitation de bug. Le paramètre optionnel me semble le plus judicieux. --Hercule (discuter) 20 janvier 2014 à 17:04 (CET)
Génération PDF
[modifier le code]Bonjour, la bascule du modèle date vers le module date semble avoir généré un en effet de bord pour la génération en pdf : : « {{Date|25|mars|1806}} dans un article, donne le résultat suivant dans un livre : <time datetime="1806-03-25">25 mars 1806</time> » nous indique BluesyPete (d · c · b) sur Wikipédia:Questions_techniques/semaine_3_2014#Problème de date lors de la création d'un livre. Voir aussi Wikipédia:Questions_techniques/semaine_4_2014#Format_PDF. Cordialement - Drongou (discuter) 26 janvier 2014 à 22:54 (CET)
- Je vais signaler ce bug sur bugzilla pour voir ce que ça donnera. Hunsu (discuter) 29 janvier 2014 à 10:19 (CET)
- Bonjour, vu la vitesse de prise en charge du bug 60571, vu l'intérêt de la balise time actuellement et vu qu'un troisième contributeur se plaint : Wikipédia:Le Bistro/5 février 2014#export pdf, je serais assez d'avis de supprimer la balise time en attendant une meilleure prise en charge de celle-ci. Cordialement - Drongou (discuter) 5 février 2014 à 21:01 (CET)
- +1. Si une tag de html 5 alors on peut attendre. Hunsu (discuter) 5 février 2014 à 22:05 (CET)
- Bonjour, vu la vitesse de prise en charge du bug 60571, vu l'intérêt de la balise time actuellement et vu qu'un troisième contributeur se plaint : Wikipédia:Le Bistro/5 février 2014#export pdf, je serais assez d'avis de supprimer la balise time en attendant une meilleure prise en charge de celle-ci. Cordialement - Drongou (discuter) 5 février 2014 à 21:01 (CET)
Date julienne
[modifier le code]Lorsque le paramètre julien=oui
est utilisé pour afficher une date selon le calendrier julien, celle ci n'est pas correctement formatée lorsqu'il s'agit du premier jour du mois : « 1er » devrait être affiché et non pas « 1 ». Serait-il possible d'y remédier ? --VVVF (discuter) 1 février 2014 à 00:29 (CET)
- De plus, lorsque le changement est à cheval sur un mois, le mois grégorien n'est pas correctement incrémenté :
{{date|25|avril|1840|julien=oui}}
donne « 25 avril 1840 ( dans le calendrier grégorien) » et non pas « 25 avril (7 mai) 1840 ». --VVVF (discuter) 1 février 2014 à 00:57 (CET)- Pour le premier problème je peux le corriger. Pour le deuxième je ne sais pas quel algorithme a été utilisé pour la conversion par Zebulon84 (d · c · b). Je vais attendre les réponses des autres sinon j'implémenterais l'algorithme utilisé sur ce site qui donne des dates correctes. Hunsu (discuter) 1 février 2014 à 12:33 (CET)
- Il serait aussi préférable :
- d'utiliser une abréviation discrète (absence du soulignement en pointillé) sur la date julienne afin de ne pas alourdir inutilement le rendu
- de mettre la date julienne entre parenthèses, puisque c'est la date grégorienne qui sert de référence
- pour le rendu final suivant : 7 mai (25 avril) 1840
- ou dans le cas d'un changement d'année : (25 décembre 2001).
- --VVVF (discuter) 1 février 2014 à 18:07 (CET)
- J'ai corrigé le problème, un admin doit passé pour mettre à jour le code. pour ta dernière demande (mettre la date julienne entre parenthèses) je regarderais après. Hunsu (discuter) 2 février 2014 à 19:55 (CET)
- Merci pour ton implication. --VVVF (discuter) 2 février 2014 à 20:33 (CET)
- J'ai corrigé le problème, un admin doit passé pour mettre à jour le code. pour ta dernière demande (mettre la date julienne entre parenthèses) je regarderais après. Hunsu (discuter) 2 février 2014 à 19:55 (CET)
- Il serait aussi préférable :
- Pour le premier problème je peux le corriger. Pour le deuxième je ne sais pas quel algorithme a été utilisé pour la conversion par Zebulon84 (d · c · b). Je vais attendre les réponses des autres sinon j'implémenterais l'algorithme utilisé sur ce site qui donne des dates correctes. Hunsu (discuter) 1 février 2014 à 12:33 (CET)
J'ai l'impression que ce problème persiste : voir Ilya Ivanovich Ivanov (d · h · j · ↵). --Héraclès (discuter) 27 juin 2014 à 16:39 (CEST)
export Epub
[modifier le code]D'après une IP sur le Bistro il y aurait un problème avec {{date}} dans l'export e-book format EPUB par Spécial:Livre. — Oliv☮ Éppen hozzám? 14 avril 2014 à 16:00 (CEST)
- Le problème vient certainement de la balise
<time>
utilisée. Cette balise apparait déjà comme du texte dans les pdf (cf. bug 60571). Visiblement dans les exportation e-pub la balise n'est pas affichée mais son contenu non plus. Il faudrait ajouter ce problème sur bugzilla, mais je n'y suis pas inscrit. - En attendant que ce bug soit éventuellement résolu, soit on privilégie le balisage sémantique et on ne change rien, soit on privilégie les exportations pdf, epub... en retirant la balise time. Pour retirer cette balise, il suffit de supprimer ou désactiver les lignes 393 à 395 :
if wikiText ~= '' and ( gannee == nil or gannee > 0) then
-
wikiText = '<time '.. classAge .. 'datetime="' .. iso.concat( '-' ) .. '">' .. wikiText .. '</time>'
end
- Zebulon84 (discuter) 15 avril 2014 à 01:53 (CEST)
Pour info on a toujours un problème avec le module dans les exports. Sous PDF on a par exemple Walter Elias Disney dit Walt, né le à Chicago, Illinois et mort le ... C'est pas terrible. Problème constaté aussi dans les infobox utilisant date de naissance et date de décès (logique c'est le même module) --GdGourou - Talk to °o° 26 mai 2014 à 16:47 (CEST)
Ajouter la détection du CEST
[modifier le code]Bonjour j'ai besoin de la détection du type de la période actuel et je trouve que ça serai très bête de créer un module juste pour ça.
J'aimerai juste ajouter le code de Yu Hao. 2A02:8422:1191:6E00:56E6:FCFF:FEDB:2BBA (discuter) 19 mai 2014 à 23:36 (CEST)
- Détecter c'est une chose, mais pour en faire quoi ? Ajouter une fonction appelable dans le module qui retourne oui/non (par exemple) si on est en heure d'été (ou en heure d'hiver, je ne sais pas quel est la valeur "par défaut") ? Cordialement, Hexasoft (discuter) 19 mai 2014 à 23:40 (CEST)
- Précision : si c'est bien ça oui c'est tout à fait possible, je peux regarder ça demain. Hexasoft (discuter) 19 mai 2014 à 23:41 (CEST)
- Oui il s'agit de renvoyer « CET » ou « CEST » en fonction de la période de l'année. 2A02:8422:1191:6E00:56E6:FCFF:FEDB:2BBA (discuter) 20 mai 2014 à 00:55 (CEST)
- Hello,
- j'ai commencé un test, mais il y a un problème : les fonctions Lua pour obtenir la date permettent doit d'avoir la date en UTC soit la date locale au serveur. Dans les deux cas l'information de CE[S]T n'est pas accessible ou pertinente…
- Quelqu'un sait s'il existe une conversion dans − par exemple − les préférences de l'utilisateur ? Cordialement, Hexasoft (discuter) 20 mai 2014 à 09:39 (CEST)
- Met une prime (« bounty ») sur ma Question sur StackOveflow et un professionnel y apportera une réponse sous une semaine (Je n'ai que 1025 points). 2A02:8422:1191:6E00:56E6:FCFF:FEDB:2BBA (discuter) 20 mai 2014 à 13:02 (CEST)
- Je ne suis pas sur stackoverflow.
- Ceci dit j'ai normalement trouvé une solution, même si je la trouve moyennement propre. Exemple : {{#invoke:Test|cest}} qui donne → Erreur de script : la fonction « cest » n’existe pas.
- Évidemment pour tester en plein il faudra attendre l'heure d'hiver .
- À voir : faut-il des paramètres permettant de contrôler la sortie ? (en majuscule ou en minuscule, en "nombre" 0/1 plutôt qu'en lettre, …) Hexasoft (discuter) 20 mai 2014 à 14:32 (CEST)
- Non, j'ai juste besoin d'afficher en majuscule « CET » ou « CEST » en tant que lien ver https://fr.wikipedia.org/wiki/Heure_normale_d'Europe_centrale ou https://fr.wikipedia.org/wiki/CEST. 2A02:8422:1191:6E00:56E6:FCFF:FEDB:2BBA (discuter) 20 mai 2014 à 15:15 (CEST)
- Je préfère en faire une option (inactive par défaut) pour ceux qui voudraient uniquement le texte : {{#invoke:Test|cest}} / {{#invoke:Test|cest|sans lien}} → Erreur de script : la fonction « cest » n’existe pas. / Erreur de script : la fonction « cest » n’existe pas.. Hexasoft (discuter) 20 mai 2014 à 15:47 (CEST)
- J'ai ajouté la fonction dans le module. On peut l'appeler avec : {{#invoke:Date|CEST}} ou {{#invoke:Date|CEST|sans lien}} ce qui donne CET ou CET.
- Si besoin créer un modèle {{CEST}} (ou autre nom) contenant {{#invoke:Date|CEST}}. La fonction est prévue pour prendre son paramètre optionnel d'une invocation directe ou d'une invocation via un modèle dans un article (ou autre).
- Il est important de noter que cette fonction n'a de sens que dans une zone concernée par la distinction CET/CEST. En particulier si elle devait être intégrée dans un modèle utilisé globalement elle répondrait "CET" systématiquement pour − par exemple − des canadiens (qui n'ont pas un tel système il me semble). J'ignore également quelle réaction elle peut avoir pour des utilisateurs non connectés, ne sachant pas quelles informations mediawiki arrive à retrouver à partir d'une simple IP. Cordialement, Hexasoft (discuter) 20 mai 2014 à 17:50 (CEST)
- Euuuh, hem... Entre « CEST » ou « CEST » : je vais choisir « CEST »; et sans utiliser lua : finalement, je crois que je n'ai pas besoin de Scribunto pour afficher du contenu statique. J'aurais aimé avoir l'heure d'hiver automatiquement... mais bon. 2A02:8422:1191:6E00:56E6:FCFF:FEDB:2BBA (discuter) 20 mai 2014 à 21:19 (CEST)
- Euuuuh aussi. On est (en France) à l'heure d'été, donc le modèle affiche CEST, puisque justement on est à l'heure d'été. Cette fonction affichera CET en hiver. Si ce n'est pas ça que tu veux, excuse-moi, mais tu n'as pas été clair . Cette fonction indique si maintenant on est CEST ou CET. Tu voulais autre chose ? Dans ce cas précise précisément ce que tu veux . Hexasoft (discuter) 20 mai 2014 à 21:41 (CEST)
- Hexasoft : Merci. Finalement j'aurais besoin que le paramètre « sans lien » renvoi 2 à la place de « CEST » et 1 à la place de « CET ». 2A02:8422:1191:6E00:56E6:FCFF:FEDB:2BBA (discuter) 21 mai 2014 à 01:04 (CEST)
- Hello,
- dans la mesure où d'autres pourraient vouloir la forme non wikiliée j'ai plutôt ajouté une autre option : "décalage" (décalage d'heures). Ceci donne : {{#invoke:Date|CEST|décalage}} → 1 Hexasoft (discuter) 22 mai 2014 à 12:37 (CEST)
- Hexasoft : Merci. Finalement j'aurais besoin que le paramètre « sans lien » renvoi 2 à la place de « CEST » et 1 à la place de « CET ». 2A02:8422:1191:6E00:56E6:FCFF:FEDB:2BBA (discuter) 21 mai 2014 à 01:04 (CEST)
- Euuuuh aussi. On est (en France) à l'heure d'été, donc le modèle affiche CEST, puisque justement on est à l'heure d'été. Cette fonction affichera CET en hiver. Si ce n'est pas ça que tu veux, excuse-moi, mais tu n'as pas été clair . Cette fonction indique si maintenant on est CEST ou CET. Tu voulais autre chose ? Dans ce cas précise précisément ce que tu veux . Hexasoft (discuter) 20 mai 2014 à 21:41 (CEST)
- Euuuh, hem... Entre « CEST » ou « CEST » : je vais choisir « CEST »; et sans utiliser lua : finalement, je crois que je n'ai pas besoin de Scribunto pour afficher du contenu statique. J'aurais aimé avoir l'heure d'hiver automatiquement... mais bon. 2A02:8422:1191:6E00:56E6:FCFF:FEDB:2BBA (discuter) 20 mai 2014 à 21:19 (CEST)
- Je préfère en faire une option (inactive par défaut) pour ceux qui voudraient uniquement le texte : {{#invoke:Test|cest}} / {{#invoke:Test|cest|sans lien}} → Erreur de script : la fonction « cest » n’existe pas. / Erreur de script : la fonction « cest » n’existe pas.. Hexasoft (discuter) 20 mai 2014 à 15:47 (CEST)
- Non, j'ai juste besoin d'afficher en majuscule « CET » ou « CEST » en tant que lien ver https://fr.wikipedia.org/wiki/Heure_normale_d'Europe_centrale ou https://fr.wikipedia.org/wiki/CEST. 2A02:8422:1191:6E00:56E6:FCFF:FEDB:2BBA (discuter) 20 mai 2014 à 15:15 (CEST)
- Met une prime (« bounty ») sur ma Question sur StackOveflow et un professionnel y apportera une réponse sous une semaine (Je n'ai que 1025 points). 2A02:8422:1191:6E00:56E6:FCFF:FEDB:2BBA (discuter) 20 mai 2014 à 13:02 (CEST)
- Oui il s'agit de renvoyer « CET » ou « CEST » en fonction de la période de l'année. 2A02:8422:1191:6E00:56E6:FCFF:FEDB:2BBA (discuter) 20 mai 2014 à 00:55 (CEST)
Evolution modèleDate
[modifier le code]Je propose dans Module:Date/Bac à sable une évolution de la fonction modèleDate pour ajouter ces fonctionnalités :
- la date est triée correctement dans les tableaux triable,
- les impressions de livres au format pdf ou e-pub n'ont plus de problème avec la balise <time>,
- Avec une petite modification css[N 1], il est possible d'afficher les dates sans liens (1er octobre 2012 au lieu de 1er octobre 2012),
- les dates sont insécables, ce qui n'était plus le cas depuis l'adoption de ce module (il manquait deux &nbsp;).
La nouvelle programmation peut être testée avec {{Date/Bac à sable}}.
Au passage j'ai refais l'indentation uniquement avec des tabulations, car il y avait un mélange espaces / tabulations (désolé, ça rend le diff un peu illisible).
Avez-vous des remarques ou des requêtes avant que je avant que je fasse la demande de modification ?
Zebulon84 (discuter) 21 mai 2014 à 19:18 (CEST)
- Suite à une remarque de Orlodrim sur la page du modèle, j'ai légèrement changer mon fusil d'épaule. La conversation se poursuit là-bas.
- Zebulon84 (discuter) 22 mai 2014 à 09:55 (CEST)
.date-lien { display: none; } .date-texte { display: inline;
}
Désactivation des liens ?
[modifier le code]Bonjour, il y a un moyen d'afficher une date sans lien avec de module. D'une part parce que c'est souvent moche et inutile, et d'autre part parce que ça complique le traitement grammatical pour les données venant de Wikidata.
Mon problème immédiat : certaines tournures linguistiques de Module:Date complexe changent lorsque le mot qui suit est une consonne ou une voyelle, et trouver ça lorsqu'il y des liens hypertextes, c'est beaucoup plus compliqué que sans lien. J'ai contourné ça en utilisant les fonctions de formatage de date intégrées à Mediawiki, mais il y a quelques retraitements à faire, et c'est un peu bête de dupliquer le code). --Zolo (discuter) 18 janvier 2015 à 19:46 (CET)
Bug bizarre dans dateInfobox
[modifier le code]Je ne sais pas du tout ce que c'est, mais ces deux inputs a priori similaires ne donnent pas le même résultat :
Texte de l’en-tête | Texte de l’en-tête |
---|---|
{{#invoke:date|dateInfobox|naissance|1935-08-30T00:00:00}} |
|
{{#invoke:date|dateInfobox|naissance|1935-08-31T00:00:00}} |
-Zolo (discuter) 17 juillet 2015 à 11:07 (CEST)
- Hello,
- le modèle semble se comporter comme s'il ne reconnaissait pas ça comme une date valide (exemple avec le 32 du mois ou le 0 du mois : 1935-08-32T00:00:00 / 1935-08-00T00:00:00).
- Le bug ne serait-il pas du coté de la validation des jours / mois ? J'ai rien vu en jetant rapidement un œil mais ça ressemble à ça. Hexasoft (discuter) 17 juillet 2015 à 11:27 (CEST)
- Il y a effectivement un bug. En suivant l'exécution de cet exemple voici ce que je trouve :
- cette date non traitée correspond au retour de la ligne 826 (return args[2]) car "t1" est faux
- t1 vient de separationJourMoisAnnee() qui ne digère pas cette date
- elle ne digère pas cette date car validationJourMoisAnnee() ne valide pas cette date
- cette dernière refuse la date car « Jour invalide (1935) »
- Il y a clairement un cas de figure qui est mal traité ici. Hexasoft (discuter) 17 juillet 2015 à 11:54 (CEST)
- Je pense avoir trouvé :
if jn and an and ( jn > 31 or jn < 0 or #jour > 3 ) and an < 31 then
- Cette ligne (271) détecte qu'il faut inverser jour et année (cas JJ-MM-AAAA par rapport à AAA-MM-JJ). Or le "an < 31" semble faux, il faudrait "<=", puisque ça détecte que "l'année" pourrait être un "jour". Je teste. Hexasoft (discuter) 17 juillet 2015 à 13:57 (CEST)
- J'ai corrigé deux choses :
- "an < 31" en "an <= 31" : l'année peut être considérée comme un jour, donc inf. à 31 inclu
- "#jour > 3" en "#jour >= 3" : le jour fait 3 ou plus caractères. Cette partie du test indique que ça ne peut être un jour (<0, >31, >=3 caractères)
- Ça fonctionne sur l'exemple ci-dessus. Cordialement, Hexasoft (discuter) 17 juillet 2015 à 14:05 (CEST)
- Zebulon84 : je notifie Zebulon84 − même s'il a certainement ce module en suivi − puisqu'il est le principal contributeur de son contenu, en tout cas ces derniers temps. Cordialement, Hexasoft (discuter) 17 juillet 2015 à 18:04 (CEST)
- Note : dans la liste
if jn and an and ( jn > 31 or jn < 0 or #jour > 3 ) and an < 31 then
(maintenantif jn and an and ( jn > 31 or jn < 0 or #jour >= 3 ) and an <= 31 then
) est-ce que le test sur la longueur de la chaîne jour (#jour >[=] 3) est utile ? On ajn = tonumber( jour )
donc soit 1. c'est un nombre, jn est "vrai" et le testjn > 31
couvre ce cas, soit 2. ce n'est pas un nombre est jn vaut nil (retour de tonumber()) et donc le test global est de toute façon faux de parif jn and an …
. Cordialement, Hexasoft (discuter) 17 juillet 2015 à 18:10 (CEST)
- Note : dans la liste
- Zebulon84 : je notifie Zebulon84 − même s'il a certainement ce module en suivi − puisqu'il est le principal contributeur de son contenu, en tout cas ces derniers temps. Cordialement, Hexasoft (discuter) 17 juillet 2015 à 18:04 (CEST)
- J'ai corrigé deux choses :
- Je pense avoir trouvé :
- Il y a effectivement un bug. En suivant l'exécution de cet exemple voici ce que je trouve :
Espaces insécables
[modifier le code]Bonjour,
Le module Date insère-t-il des espaces insécables entre le jour, le mois et l'année ?
Golmote (discuter) 14 août 2015 à 23:32 (CEST)
L'âge n'est plus affiché depuis quelque temps
[modifier le code]Pfff, quel jeu de piste pour arriver là ! Depuis quelques jours, l'âge n'apparaît plus dans les infoboxes. Cela doit correspondre aux deux dernières modifications de Notification Pyb :... Je ne veux rien révoquer, ne sachant pas ce qui a été fait, mais cela fait boule de neige sur tous les modèles reposant sur ce module... − ©éréales Kille® [Speak to me]* en ce lundi 5 octobre 2015 à 10:02 (CEST)
Divers
[modifier le code]Hello,
vous avez peut-être vu que j'ai ajouté dans la regex du mois dans la fonction separationJourMoisAnnee() « [.]? » afin d'accepter les noms de mois sous forme raccourcie. Je ne sais pas comment on a pu rater ça .
Par ailleurs via le modèle {{Lien web}} je suis tombé sur un cas qui ne fonctionne pas : passer une date avec mise en forme du 1er → "1er septembre 2015" par exemple. C'est logique puisque le {{er}} est traité avant d'arriver ici.
J'ai contourné le problème au niveau de l'appel en faisant : mw.ustring.gsub(consult, '[<][^>]*[>]', '')
, ce qui a pour effet de "retirer" les encodages éventuels puis de supprimer toutes les balises de modification.
Je ne l'ai pas appliqué ici parce que : 1. j'ignore s'il existe des cas légitimes d'utiliser certains tags dans les dates (ce qui serait détruit) 2. je n'ai pas testé extensivement, j'ignore si ça fonctionne dans tous les cas où si ça n'aurait pas d'effet secondaire dans certains cas. Par contre il est certain qu'il existe des cas avérés : je connais plusieurs modèles ayant un "consulté le" (mais qui sont toujours des modèles et ne passent donc pas par Date) qui sont mis en forme de cette façon par les rédacteurs.
À voir donc s'il faudrait appliquer une telle modification ici (à la "racine"). Cordialement, Hexasoft (discuter) 5 octobre 2015 à 13:51 (CEST)
- Oui, pourquoi pas ? — Oliv☮ Éppen hozzám? 5 octobre 2015 à 14:04 (CEST)
- Note : j'ai oublié de préciser qu'avant le
mw.ustring.gsub()
indiqué je fais unmw.text.unstrip()
qui a pour but de "dé-encodé" les éléments éventuels. Hexasoft (discuter) 5 octobre 2015 à 14:27 (CEST)
- Note : j'ai oublié de préciser qu'avant le
Idée générale quant aux modifications apportées...
[modifier le code]Afin d'éviter deux couacs récents (l'âge qui disparaît dans les infoboxes et le doublage du terme « minutes » dans les durées des films), ne serait-il pas judicieux de travailler les ajouts, modifications, corrections majeures de ces modèles/modules sur un fichier_test avant de le mettre en service ? Une fois les tests validés et approuvés, on repasse le code sur le modèle/module d'origine et ça roule... J'avais fait ça dans mes modifications et tests (bouton de demande de renommage de compte, par exemple) afin de mettre au point et tester à loisir une fonction avant de la mettre en service... Enfin, je dis ça, je dis rien ;) − ©éréales Kille® [Speak to me]* en ce lundi 5 octobre 2015 à 13:58 (CEST)
- Il existe déjà Module:Date/Bac à sable. Cordialement, Hexasoft (discuter) 5 octobre 2015 à 14:29 (CEST)
- Parfait, ça va m'éviter de toucher à ces pages protégées sans rien y connaître ;) Pyb (discuter) 5 octobre 2015 à 14:44 (CEST)
Détruit par cette intervention de Zebulon84 (d · c · b) ? Thierry Caro (discuter) 18 novembre 2015 à 14:02 (CET)
- Rétabli par cette autre. — Oliv☮ Éppen hozzám? 18 novembre 2015 à 14:38 (CET)
- Désolè, j'ai mis des milliers de pages en erreurs de script avec la modif de Module:Date complexe. Tout ça pour corriger les erreurs sur 5 pages de personnes nées ou mortes entre 1 et 12 (ex : Cléopâtre Séléné II) avec des donnée en provenance de WikiData. Bon j'ai trouvé l'origine de l'erreur (un cas que je n'avais pas prévu dans Module:Date), je vais bientôt pouvoir ré-appliquer la modif (pour la troisième fois). — Zebulon84 (discuter) 18 novembre 2015 à 16:12 (CET)
Bogue : calcul de l'âge pour {{date de décès-}}
[modifier le code]Il me semble qu'il y a un bug dans ce modèle {{Date de décès-}} pour le calcul de l'âge. En effet, {{date de décès|14|février|2010|13|janvier|1920|âge=oui}} donne « » (ce qui est juste) tandis que {{date de décès-|14|février|2010|13|janvier|1920|âge=oui}} donne « » (« 14 février 2010 (5 ans) », ce qui est manifestement faux). O.Taris (discuter) 2 février 2016 à 00:15 (CET)
- Je vais peut-être finir par regarder ce bogue, car ça devrait être assez simple.
- Si quelqu'un connaît bien le code, je peux déjà faire remarquer que la 2e date est ignorée quand on utilise le modèle {{date de décès-}}. À la place, c'est plutôt DATE_COURANTE moins qui est effectué, ce qui donne bien évidemment 5 ans (bientôt 6 ans).
- À mon avis, ça doit être qqc d'assez simple, possiblement un bogue qui a été introduit par inattention (une page spéciale pour détecter les régression serait probablement la bienvenue pour de nombreux modèles).
- 45.73.14.41 (discuter) 11 novembre 2016 à 04:59 (CET)
- Corrigé au niveau de {{Date de décès-}}.
- Pour signaler un problème sur un modèle il y a aussi projet:Modèle/Demandes et Discussion Projet:Modèle qui sont (peut-être) un peu plus suivi que cette page. — Zebulon84 (discuter) 11 novembre 2016 à 08:17 (CET)
disparition du "vers" traduisant le "circa" (P1480)
[modifier le code]Hello. L'infobox Footballeur utilise l'appel suivant pour afficher les dates : {{#invoke:Date|dateInfobox|naissance|{{Wikidata|P569|{{{date de naissance|}}}| linkback=1 |conjtype=or |sorttype=chronological}}|{{Wikidata|P570|{{{date de décès|}}} }}|qualificatif=en football }}
. Ca paraît sûrement un peu complexe comme ça (notamment l'appel de la date de décès, je ne sais pas trop pourquoi il est là...) mais ça marche comme ça de longue date, alors je n'y ai jamais retouché.
Mon problème, c'est que le « vers » qui apparaissait en miroir du « circa » dans la propriété P569 (« date de naissance ») a disparu. Je ne sais pas depuis combien de temps exactement. Un exemple parmi d'autres : Gérard Gabo.
Auriez-vous une idée ? Merci d'avance. — H4stings d 24 juin 2016 à 11:37 (CEST)
- {{Wikidata|P569 |entity=Q3123969}} affiche « Vers » pour P569 (« date de naissance ») de Q3123969 (« Gérard Gabo ») alors qu'il y a bien le qualificatif P1480 (« qualité de l'information »)=Q5727902 (« circa »), alors ce ne doit pas être dateInfobox de Module:Date mais getFormattedDate de Module:Wikidata avec fuzzy ; Zolo : ? — Oliv☮ Éppen hozzám? 24 juin 2016 à 14:15 (CEST)
- C'est sûr que ça marchait avant sur les infobox footballeur ? A priori, je dirais
- La situation actuelle :
- la fonction dateInfobox ne gère pas directement Wikidata.
- lorsque les données viennent de Wikidata, les infobox Lua envoient à dateInfobox des dates récupérées par la fonction wikidataDate (donc effectivement getFormattedDate). wikidatDate gère les "circa" et autres qualificatifs.
- l'infobox footballeur envoie à dateInfobox une date une date formatée par {{Wikidata}} donc par la fonction formatStatements qui ne prend pas en compte "circa" etc.
- Trois solutions :
- faire que {{Wikidata}} gère "circa" etc. mais pas sûr que ce soit une très bonne idée (formatStatements normalement ne prend en compte les qualificatifs que lorsqu'on lui demande explicitement, et d'autres modules peuvent compter sur ce principe).
- utiliser wikidataDate dans {{Infobox Footballeur}}
- Gérer Wikidata directement dans dateInfobox (à voir probablement avec User:Zebulon84). -Zolo (discuter) 29 juin 2016 à 19:11 (CEST)
- Je dirais la première par principe : tout ce qui peut être fait dans les infobox Lua doit pouvoir être fait sans Lua facilement avec {{Wikidata}} quand quelqu'un le demande, parce que Lua est beaucoup plus difficile à écrire ou à modifier pour la plupart des gens alors que la syntaxe des modèles est beaucoup plus connue. — Oliv☮ Éppen hozzám? 29 juin 2016 à 21:20 (CEST)
- Il me semble préférable que le module date soit indépendant de Wikidata. Je propose plutôt de créer un modèle:Date wikidata qui fonctionne comme {{Wikidata}} mais en utilisant la fonction wikidataDate, pour mettre en œuvre la deuxième solution. — Zebulon84 (discuter) 1 juillet 2016 à 06:07 (CEST)
- Du point de vue pratique de l'utilisateur comme H4stings (d · c) qui essaie d'utiliser Wikidata en gardant la structure et l'apparence d'un modèle comme {{Infobox Footballeur}} donc sans Lua, il faut faciliter les choses au maximum et pas lui demander d'utiliser {{Date wikidata|Pxxx|{{{nom du paramètre|}}}}} pour les dates et {{Wikidata|Pxxx|{{{nom du paramètre|}}}}} pour le reste. Et du point de vue de la maintenance du code, il ne faudrait pas que du code susceptible d'évoluer soit dupliqué. — Oliv☮ Éppen hozzám? 1 juillet 2016 à 07:42 (CEST)
- Il me semble préférable que le module date soit indépendant de Wikidata. Je propose plutôt de créer un modèle:Date wikidata qui fonctionne comme {{Wikidata}} mais en utilisant la fonction wikidataDate, pour mettre en œuvre la deuxième solution. — Zebulon84 (discuter) 1 juillet 2016 à 06:07 (CEST)
Afficher l'âge même lorsque seule l'année est connue
[modifier le code]Bonjour, Actuellement, l'âge n'est affiché que si au moins le mois et l'année de naissance sont connus. Pourrait-on afficher l'âge également lorsque seule l'année est connue (sous la forme "x ou y ans") ? C'est toujours mieux que de devoir la calculer soi-même. The RedBurn (ϕ) 24 février 2017 à 11:09 (CET)
nomduMois() et valideMois()
[modifier le code]La documentation fait état d'une fonction nomduMois()
: elle n'existe pas dans le module. Oubli ?
La fonction valideMois()
ne fonctionne qu'avec des chaînes de caractères. (Je me suis débrouillé en rajoutant un tostring()
dans mon appel à valideMois()
.) Ne serait-il pas judicieux de la modifier pour accepter les paramètres numériques ?
Peekay (discussion - contributions) 30 juillet 2017 à 08:35 (CEST)
- Zebulon84 : c'est toi qui a viré la fonction
nomduMois()
(diff). - Sinon il suffit pour
valideMois()
d'ajouter un tostring →local m = trim( mois )
⇒local m = trim( tostring(mois) )
. Hexasoft (discuter) 30 juillet 2017 à 12:49 (CEST)- Oui, ça semble le plus simple à faire mais après avoir vu ceci. Je préfère laisser ceux qui connaissent ce module décider de l'opportunité de ce changement.
- Peekay (discussion - contributions) 30 juillet 2017 à 12:54 (CEST)
- Peekay : Oui, il faut que je mette à jour la doc.
- J'ai changé la structure de listeMois, et ai ajouté cette table dans l'objet Date. Désormais tous les alias, et les numéro de mois (en string et en number) permettent d'accéder à la table du mois.
p.nomduMois( num )
peut être remplacé soit par :p.listeMois[ num ] and p.listeMois[ num ].nom
;p.listeMois[ num ].nom
si on est certain que num est un entier entre 1 et 12 ;p.determinationMois( num )
; cette dernière fonction retourne deux valeur, le nom du mois et sont numéro ;p.determinationMois( num, true )
si num peut être hors de [1, 12] et on veux le mois correspondant malgré tout ; sinum = 13
le résultat sera'janvier', 1
.
- — Zebulon84 (discuter) 30 juillet 2017 à 13:45 (CEST)
- OK
- Merci. Peekay (discussion - contributions) 30 juillet 2017 à 14:29 (CEST)
Nettoyage argument ?
[modifier le code]Bonjour,
Aurait-on des exemples d'utilisation où la date passée en argument doit être nettoyée avec le code suivant dans separationJourMoisAnnee
?
-- suppression catégorie, liens, balises
date = mw.ustring.gsub( date, '%[%[[Cc]at[ée]gor[yi]e?:.-%]%]', '' )
date = date :gsub( '%b<>', '' )
:gsub( '%[%[([^%[%]|]*)|?([^%[%]]*)%]%]', function ( l, t ) return trim( t ) or l end )
(ajouté par Zebulon84 : dans ce diff)
Par ailleurs, cette question s'inscrit dans une réflexion générale de simplification du code de ce module. Si vous voyez des choses qui seraient allégeables, n'hésitez pas à en faire part.
od†n ↗blah 25 septembre 2017 à 02:59 (CEST)
- Od1n : J'ai ajouté ce code car je suis réellement tombé sur des cas ayant besoin de ces nettoyages.
:gsub( '%b<>', '' )
est si je me souviens bien esstentiellement lié au modèle {{1er}} (Diff #116428516)- Ce n'est probablement pas pour le modèle date employé directement, mais lorsqu'il est utilisé dans une infobox, ou pour les modèles {{ouvrage}}, {{article}}, {{lien web}}... qui utilisent cette fonction pour afficher les dates de publication et de consultation. Le paramètre date de ces modèles peut contenir des valeurs comme
{{1er}} juillet [[1958]]
, voire contenir un modèle date (par exemple sur (130) Électre), ou un ature modèle qui peut ajouter une catégorie s'il y a un problème. Comme j'ai introduis cette fonction sur des modèles comportant déjà des centaines de milliers d'utilisation, il fallait que ça marche dans tous les cas. - — Zebulon84 (discuter) 25 septembre 2017 à 09:29 (CEST)
Tri de « 1er »
[modifier le code]Bonjour, les dates contenant « 1er » ne sont pas triées correctement dans un tableau triable. Par exemple :
№ | Date |
---|---|
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 |
Quelqu’un saurait-il comment corriger cela ? Yzelf (discuter) 16 décembre 2017 à 15:23 (CET)
- Yzelf : {{tri date}} doit être ce qu'il te faut. od†n ↗blah 22 décembre 2017 à 05:09 (CET)
Changement du parametre âge par afficher_âge pour réduire la confusion
[modifier le code]Bonjour,
Suite à une discussion sur le bulletin des patrouilleurs ici, j'ai vu que d'autres (User:Nemoi par exemple) ont proposé la même idée notamment ici. Donc comme y a pas eu de réponse y a 8 ans je me permet de reposer la question, est ce que remplacer (en gardant la compatibilité descendante) de mettre afficher_âge au lieu de âge, afin de réduire la confusion chez les gens qui se trompent régulièrement et qui vont "corriger" le code. --Misc (discuter) 23 février 2019 à 11:58 (CET)
- Bonjour. À mon sens, il serait bien plus pratique de créer un filtre interdisant le remplacement de âge=oui par âge=xx. ›› Fugitron, le 23 février 2019 à 13:23 (CET)
- Cette solution n'empêchera pas l'utilisateur d'être induit en erreur à la base et de chercher à faire la modification, et de surcroît on lui bloque sa modification. Pas très sympa pour lui tout ça. Pour ma part favorable à un renommage du paramètre en
afficher âge
dans les différents modèles, avec une backwards compatibility pour le nomâge
, un peu obligé. od†n ↗blah 3 juin 2019 à 13:10 (CEST)
- Cette solution n'empêchera pas l'utilisateur d'être induit en erreur à la base et de chercher à faire la modification, et de surcroît on lui bloque sa modification. Pas très sympa pour lui tout ça. Pour ma part favorable à un renommage du paramètre en
Amélioration de l'efficacité?
[modifier le code](Je ne parle pas français d'habitude. Desolé!)
Sur la ligne 765, je pense que l'ordre des opérateurs peut améliorer l'efficacité un peu avec le changement à
lien or annee or existDate( dataQualificatif, annee ) or existDate( dataCat, annee )
Avec l'ordre courant, si annee
ou lien
evalué à vrai, il y a des exécutions inutiles vers l'API (par existDate puis mw.title.new), pour construire le titre.
Par example, {{date||décembre|1499|en arts plastiques}}
--Jc5732 (discuter) 9 mars 2021 à 18:22 (CET)
- Bonjour Jc5732
- Oui mais ce n'est pas réellement inutile. Ce n'est pas un booléen qui est attendue, mais une valeur, donc ce qui compte c'est la priorité de chaque valeur possible :
- dataQualificatif
- dataCat
- lien
- annee
- Une optimisation à tester pourrait être :
- — eru [Discuter] 9 mars 2021 à 18:42 (CET)
:local function existDate( dataQualificatif, annee, mois ) : local data : if mois then : data = dataQualificatif.mois : elseif annee then : data = dataQualificatif.annee : else : return : end :... :
- En faite je ne suis pas sûr d'avoir bien compris, l'appel à existDate permet d'éviter d'appeler mw.title.new si le qualificatif correspond à Module:Date/Data et donc normalement faire moins d'appel à l'API. — eru [Discuter] 9 mars 2021 à 18:52 (CET)
Problème avec la modif du 22/11/2021
[modifier le code]Epok : Bonjour. cette modif provoque une erreur sur toutes les références qui utilisent le modèle {{Lien web}} avec le champ "consulté le=" : Erreur Lua dans Module:Date à la ligne 530 : utilisation d'une variable globale, evenement. Cdlt Csar62 (discuter) 22 novembre 2021 à 07:10 (CET)
- Bonjour Csar62 la modification en cause a été annulé : Wikipédia:Requête aux administrateurs#Bogue dans le modèle Lien web.
- J'ai corrigé le problème d'origine mais j'attendrai d'avoir le temps de tous vérifier avant de redemander son application. — eru [Discuter] 22 novembre 2021 à 08:10 (CET)
- ps : but de la modification : Discussion modèle:Infobox Biographie2#date de disparition — eru [Discuter] 22 novembre 2021 à 08:13 (CET)
- Eru : OK merci, je n'avais pas vu que c'était déjà traité en RA. A+ Csar62 (discuter) 22 novembre 2021 à 08:14 (CET)
- ps : but de la modification : Discussion modèle:Infobox Biographie2#date de disparition — eru [Discuter] 22 novembre 2021 à 08:13 (CET)
Âge d'une personne née avant J.-C. et morte après
[modifier le code]Je pense que la fonction fun.age()
renvoie un résultat incorrect si l'année de naissance est avant J.-C. et l'année de calcul après J.-C., à cause de l'absence d'année 0.
Par exemple : {{date de décès-|1 janvier 1|1 janvier -1}}
affiche « 1er janvier 1 (à 2 ans) » (au lieu d'1 an). --Golmote (discuter) 2 novembre 2022 à 23:34 (CET)
- Golmote : Je viens d'ajouter cette rustine. od†n ↗blah 12 novembre 2022 à 04:30 (CET)
- Top, merci ! --Golmote (discuter) 12 novembre 2022 à 04:34 (CET)
Erreur Lua dans un cas de date intentionnellement invalide
[modifier le code]Suite à ce vandalisme. On peut reproduire l'erreur en faisant {{#invoke:Date|dateInfobox|naissance|{{date de naissance|13|octobre|-280947}}|{{date de décès|3|juin|1918|âge=oui|13|10|1867}}}}
. La date de naissance spécifiée est bien entendue complètement out-of-range.
On obtient actuellement ceci : « Erreur Lua dans Module:Date à la ligne 1011 : attempt to index field '?' (a nil value). »
voir ligne 1007 :
local jannee, jmois, jjour = fun.gregorianToJulian( r.annee, r.numMois, r.jour )
valeurs :
table "r" : { ["annee"] = -280952, ["jour"] = 3, ["mois"] = "janvier", ["numMois"] = 1, } jannee : -280945 jmois : -1 jjour : -15
On constate que dans le résultat de gregorianToJulian()
, le mois et le jour sont complètement tartés (carrément négatifs). Du coup ensuite ça bugge dans le listeMois[jmois].nom
.
Je poste ce message à toutes fins utiles, mais l'utilisation étant manifestement erronée, je pense que le mieux serait de laisser le module comme il est, au lieu de le complexifier (encore plus) en cherchant à ajouter une gestion du cas. En plus, ça permet de disposer d'une catégorisation.