Modulo:Interprogetto/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
con parametro notizia e in disambigua è inutile verificare/aggiungere collegamenti da wikidata
Moroboshi (discussione | contributi)
test ignorewikidata
Riga 27:
return ''
elseif mw.ustring.sub(s, -1) == "'" then
return s
else
return s .. ' '
Riga 53:
add_category(category)
else
add_category('Errori di compilazione del template interprogettoInterprogetto')
end
end
Riga 90:
local Wikidata_entity = {}
 
function Wikidata_entity:new(ignore_wikidata)
-- Carica i dati da Wikidata se esistono
local self = {}
self.entity = nil
if not(ignore_wikidata) and mw.wikibase then
self.entity = mw.wikibase.getEntityObject()
end
Riga 107:
-- Considera disambigua se la pagina su Wikidata ha la proprietà P31 ("Istance of", [[wikidata:Property:P31]])
-- con valore 4167410 ("Wikimedia disambiguation page", [[wikidata:Q4167410]])
self.disambigua = self:hasPropertyValue('P31', '4167410')
return self
end
Riga 126:
for key_progetto, progetto in pairs(cfg.automatic_link) do
-- Carica i collegamenti di un progetto solo se non disambigua o tipo di progetto abilitato in disambigua
if not self.disambigua or cfg.progetti[key_progetto].abilita_in_disambigua then
local sitelink = self.entity:getSitelink(progetto.interwiki)
if sitelink then
Riga 264:
function Collegamento:Link_text()
local default_progetto = cfg.parameters[self.key_progetto]
return "* [[File:", default_progetto.icona, "|link=", default_progetto.prefix, "|", default_progetto.dimensione_icona, "|Collabora a ",
default_progetto.nome_progetto, "]] '''[[", default_progetto.prefix, "|", default_progetto.nome_progetto, "]]''' contiene ",
self.oggetto, self.lingua, " ", add_space(self.preposizione), self.testo_prima, "'''[[", default_progetto.prefix,
self.collegamento, "|", self.etichetta, "]]'''", self.testo_dopo
Riga 285:
local default_progetto = cfg.parameters[self.key_progetto]
local main_page_link = tostring(mw.uri.fullUrl(default_progetto.prefix, {uselang='it'}))
return "* [[File:", default_progetto.icona, "|link=", main_page_link, "|", default_progetto.dimensione_icona, "|Collabora a ",
default_progetto.nome_progetto, "]] '''<span class=\"plainlinks\">[", main_page_link, " ", default_progetto.nome_progetto,
"]</span>''' contiene ", self.oggetto, " ", add_space(self.preposizione), self.testo_prima,
Riga 389:
end
-- Tabella con i parametri di default valorizzati
local default = {}
-- ========================================================================================================
-- Carica il nome della pagina corrente
Riga 406:
-- Carica i dati da Wikidata nell'oggetto "entity"
-- ========================================================================================================
local entityignore_wikidata = Wikidata_entity:new()false
if origArgs.nowikidata and origArgs.nowikidata:lower() == 's' then
ignore_wikidata = true
end
local entity = Wikidata_entity:new(ignore_wikidata)
-- ========================================================================================================
-- Calcola l'etichetta di default per i collegamenti, in ordine di priorità:
Line 477 ⟶ 481:
-- abilitati in disambigua che in ogni caso non devono essere aggiunti
-- ========================================================================================================
if not newArgs.notizia then
-- ====================================================================================================
-- Controlla il collegamento compilato manualmente e quello caricato da Wikidata
Line 483 ⟶ 487:
for key_progetto, collegamento in pairs(newArgs) do
if cfg.parameters[key_progetto] and cfg.automatic_link[key_progetto] and entity.entity then
if not entity.disambigua or cfg.parameters[key_progetto].abilita_in_disambigua then
local entity_collegamento = entity.collegamenti[key_progetto]
if not is_defined(entity_collegamento) then
if is_defined(collegamento) then
-- Segnala che è presente il collegamento compilato manualmente ma non quello in Wikidata
add_category(cfg.automatic_link[key_progetto].category_wikidata_missing)
Line 507 ⟶ 511:
add_category(cfg.automatic_link[key_progetto].category_wikidata)
end
end
end
end
-- ========================================================================================================
Line 516 ⟶ 520:
for key_progetto, collegamento in pairs(newArgs) do
if cfg.parameters[key_progetto] then
-- Salta i collegamenti a Wikidata per le voci nel namespasenamespace principale eccetto che per la Pagina principale
if key_progetto ~= 'wikidata' or current_namespace ~= 0 or current_pagename == 'Pagina principale' then
-- Se è disambigua registra solo i valori per i progetti abilitati in disambigua
Line 533 ⟶ 537:
-- Genera il codice html
-- ========================================================================================================
if newArgs.notizia#progetti == 0 then
add_error('Template interprogetto vuoto e senza dati da recuperare da Wikidata', 'Errori di compilazione del template interprogettoInterprogetto - template vuoto')
-- Gestisce il parametro "notizia" a parte
if #progetti > 1 then
add_error('Errore: il parametro \"notizia\" se presente deve essere unico')
elseif #progetti == 1 then
local news_progetto = progetti[1]
local news_default = cfg.parameters.notizia
root:wikitext("* [[File:", news_default.icona, "|link=", news_default.prefix, "|",
news_default.dimensione_icona, "|Collabora a ", news_default.nome_progetto,
"]]", " Articolo su '''[[", news_default.prefix, news_default.nome_progetto, "|",
news_default.nome_progetto, "]]''': ", "'''[[", news_default.prefix,
news_progetto.collegamento, "|", news_progetto.collegamento, "]]'''", news_progetto.testo_dopo)
end
else
if #RenderLeftBar(progetti == 0 then )
if #progettinot > 1nolink then
add_error('Template interprogetto vuoto e senza dati da recuperare da Wikidata', 'Errori di compilazione del template interprogetto - template vuoto')
else RenderLinksInText(progetti)
RenderLeftBar(progetti)
if not nolink then
RenderLinksInText(progetti)
end
end
end
Line 568 ⟶ 557:
-- =================================================================================================================================
if #errors_msg > 0 then
if #progetti > 0 then
root:wikitext('\n')
end