« Module:Infobox/Localdata » : différence entre les versions
Apparence
Modèle:Infobox>Od1n optimisation (surtout que ce module est chargé plusieurs fois par infobox et qu'il peut y avoir de nombreux paramètres) : mw.text.trim() coûteux seulement pour les paramètres non-nommés, et apparemment il n'y en a jamais ; remarquer que maintenant c'est la valeur trimmée qui est stockée dans localdata |
Modèle:Infobox>Zebulon84 localdata.item : utilisation de l'id plutôt que l'élément entier |
||
| Ligne 1 : | Ligne 1 : | ||
local localdata = {} | local localdata = {} | ||
local frame = mw.getCurrentFrame() | local frame = mw.getCurrentFrame() | ||
local modulename = frame.args.nom | local modulename = frame.args.nom | ||
| Ligne 21 : | Ligne 20 : | ||
-- load wikidata item: | -- load wikidata item: | ||
localdata. | if localdata.wikidata | ||
and mw.wikibase.isValidEntityId( localdata.wikidata ) | |||
and mw.wikibase.entityExists( localdata.wikidata ) | |||
then | |||
localdata.item = localdata.wikidata | |||
else | |||
localdata.item = mw.wikibase.getEntityIdForCurrentPage() | |||
end | |||
return localdata | return localdata | ||
Version du 1 mai 2022 à 20:45
La documentation pour ce module peut être créée à Module:Infobox/Localdata/doc
local localdata = {}
local frame = mw.getCurrentFrame()
local modulename = frame.args.nom
local parent = frame:getParent() or frame
local templatename = parent:getTitle() -- au cas où il soit différent du nom du module
local params = parent.args
-- fill-up table localdata using params
for k, v in pairs(params) do
if type(k) == number then
v = mw.text.trim(v)
end
if v ~= '' then -- empty parameters are ignored
localdata[k] = v
end
end
localdata.templatename = templatename
localdata.modulename = modulename
-- load wikidata item:
if localdata.wikidata
and mw.wikibase.isValidEntityId( localdata.wikidata )
and mw.wikibase.entityExists( localdata.wikidata )
then
localdata.item = localdata.wikidata
else
localdata.item = mw.wikibase.getEntityIdForCurrentPage()
end
return localdata