Questa pagina è semiprotetta. Può essere modificata solo da utenti registrati

Modulo:Sito ufficiale: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
m Protetto "Modulo:Sito ufficiale": Template o modulo usato in maniera estensiva ([Modifica=Consentito solo agli amministratori] (infinito) [Spostamento=Consentito solo agli amministratori] (infinito))
m +categoria
Riga 6: Riga 6:


local mWikidata = require('Modulo:Wikidata')
local mWikidata = require('Modulo:Wikidata')
local wdCategory = '[[Categoria:Sito web ufficiale letto da Wikidata]]'
local errorCategory = '[[Categoria:Voci con template Sito ufficiale e senza dati da recuperare da Wikidata]]'
local errorCategory = '[[Categoria:Voci con template Sito ufficiale e senza dati da recuperare da Wikidata]]'
local p = {}
local p = {}
Riga 47: Riga 48:
websites[idx] = (idx > 1 and '*' or '') .. formatWebsite(website)
websites[idx] = (idx > 1 and '*' or '') .. formatWebsite(website)
end
end
return #websites > 0 and table.concat(websites, '\n') or
return #websites > 0 and
(table.concat(websites, '\n') .. wdCategory) or
(mw.title.getCurrentTitle().namespace == 0 and errorCategory or nil)
(mw.title.getCurrentTitle().namespace == 0 and errorCategory or nil)
end
end



Versione delle 15:27, 9 gen 2017

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 wdCategory = '[[Categoria:Sito web ufficiale letto da Wikidata]]'
local errorCategory = '[[Categoria:Voci con template Sito ufficiale e senza dati da recuperare da Wikidata]]'
local p = {}

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 idx, 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[idx] = {
			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 idx, website in ipairs(websites) do
		-- P856 è di tipo "valore singolo", aggiunge l'elenco puntato solo per le eccezioni
		websites[idx] = (idx > 1 and '*' or '') .. formatWebsite(website)
	end
	return #websites > 0 and
		   (table.concat(websites, '\n') .. wdCategory) or
		   (mw.title.getCurrentTitle().namespace == 0 and errorCategory or nil)
end

return p