Modulo:Sito ufficiale
Istruzioni per l'uso
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Sito ufficiale/man (modifica · cronologia)
Sandbox: Modulo:Sito ufficiale/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:Sito ufficiale/test (modifica · cronologia · Esegui)
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Sito ufficiale/man (modifica · cronologia)
Sandbox: Modulo:Sito ufficiale/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:Sito ufficiale/test (modifica · cronologia · Esegui)
Modulo che implementa il template {{Sito ufficiale}} (verifica).
Uso
Il modulo non va utilizzato direttamente, ma per implementare un template per i collegamenti esterni che debba ottenere il collegamento esterno esclusivamente da una proprietà Wikidata di tipo URL e di tipo "valore singolo". Possono esserci eccezioni che sono gestite automaticamente dal template visualizzando una lista. Se su Wikidata è stato utilizzato il qualificatore lingua dell'opera o del nome (P407) sarà anche indicata la lingua del sito web. Se il qualificatore ha più valori verrà visualizzata ciascuna lingua.
{{#invoke:Sito ufficiale|main|pid=|title=}}
- pid: identificativo della proprietà Wikidata, il valore di default è "P856"
- title: titolo del {{Cita web}}, il valore di default è "Sito ufficiale"
--[[
* Modulo che implementa il template Sito ufficiale.
]]--
require('Modulo:No globals')
local mWikidata = require('Modulo:Wikidata')
local errorCategory = '[[Categoria:Voci con template Sito ufficiale e senza dati da recuperare da Wikidata]]'
local p = {}
local function formatList(values)
return string.format('<ul><li>%s</li></ul>', mw.text.listToText(values, '</li><li>', '</li><li>'))
end
local function formatWebsite(website)
return mw.getCurrentFrame():expandTemplate {
title = 'Cita web',
args = {
url = website.url,
titolo = 'Sito ufficiale',
lingua = table.concat(website.langs, ' ')
}
}
end
local function getWebsites()
local claims
local websites = {}
claims = mWikidata._getClaims('P856') or {}
for _, claim in ipairs(claims) do
local langs = mWikidata._formatQualifiers(claim, 'P407', { formatting = 'raw' }, true)
langs = (#langs == 1 and langs[1] == 'Q652') and {} or langs
for i, lang in ipairs(langs) do
langs[i] = mWikidata._getLabel({ lang })
end
websites[#websites + 1] = {
url = mWikidata._formatStatement(claim),
langs = langs
}
end
return websites
end
-- Entry-point per il template {{Sito ufficiale}}
function p.main(frame)
local websites = getWebsites()
for i, website in ipairs(websites) do
websites[i] = formatWebsite(website)
end
return #websites > 0 and formatList(websites) or
(mw.title.getCurrentTitle().namespace == 0 and errorCategory or nil)
end
return p