Modulo:Sito ufficiale: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m è Wikipedia, non è un blog umoristico
ritornato alla versione gennaio 2017 e spostate categorie nel template
Riga 1:
--[[
* Modulo che implementa ili template {{Sito ufficiale}} ede altriBlog template molto similiufficiale.
]]--
require('Modulo:No globals')
 
local mWikidata = require('Modulo:Wikidata')
local mEditAtWikidata = require('Modulo:Modifica su Wikidata').showMessage
 
-- Titolo predefinito per il {{Cita web}}
local defaultTitle = 'Sito ufficiale'
 
-- Categoria adattata. ↓ Valore identico al {{Controllo Wikidata}}
local wdCategory = '[[Categoria:%s letto da Wikidata]]'
 
-- Categoria adattata. ↓ Titolo del template corrente
local errorCategory = '[[Categoria:Voci con template %s e senza dati da recuperare da Wikidata]]'
 
-- Quanti byte occupa la parola "Template:" + 1
local STRIP_BYTES = 10
 
local p = {}
 
local function formatWebsite(website, titolotitle)
return mw.getCurrentFrame():expandTemplate {
title = 'Cita web',
args = {
url = website.url,
titolo = titolotitle,
lingua = table.concat(website.langs, ' ')
}
Line 33 ⟶ 19:
end
 
local function getWebsites(pid, from)
--[[
* @param int pid Wikidata Property ID
]]
local function getWebsites(pid, from)
local claims
local websites = {}
 
claims = mWikidata._getClaims(pid, {from = from}) or {}
for idx, claim in ipairs(claims) do
local langs = mWikidata._formatQualifiers(claim, 'P407', { formatting = 'raw' }, true)
Line 56 ⟶ 39:
end
 
* Entry-point- Funzione per ili template {{Sito ufficiale}} e {{Blog ufficiale}}
--[[
* Entry-point per il template {{Sito ufficiale}}
]]
function p.main(frame)
local parentwebsites = frame:getParentgetWebsites(frame.args.pid or 'P856')
 
-- Proprietà generica (è letta da mEditAtWikidata):
frame.args.pid = frame.args and frame.args.pid or 'P856'
 
-- Elemento Wikidata generico (sempre nil, usato solo nel /man) (è letto da mEditAtWikidata):
frame.args.qid = parent and parent.args and parent.args.qid
 
local template_title = string.sub(parent:getTitle(), STRIP_BYTES)
 
-- Titolo per il cita web
local title = frame.args and frame.args.title or template_title
 
-- Categoria adattata al titolo del template padre
errorCategory = string.format(errorCategory, template_title)
 
-- Categoria adattata per essere identica a quella del Template:Controllo Wikidata
wdCategory = string.format(wdCategory, frame.args.catpart or template_title)
 
local websites = getWebsites(frame.args.pid, frame.args.qid)
for idx, website in ipairs(websites) do
-- P856 èe P1581 sono di tipo "valore singolo", aggiunge l'elenco puntato solo per le eccezioni
websites[idx] = (idx > 1 and '*' or '') .. formatWebsite(website, title) frame.args.title mEditAtWikidata(frameor 'Sito ufficiale')
end
return #websites > 0 and table.concat(websites, '\n') or ''
(table.concat(websites, '\n') .. wdCategory) or
(mw.title.getCurrentTitle().namespace == 0 and errorCategory or nil)
end