Modulo:Interprogetto/sandbox: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
semplifico |
use require('strict') instead of require('Module:No globals') |
||
(7 versioni intermedie di un altro utente non mostrate) | |||
Riga 1:
-- Modulo per implementare le funzionalità di template:Interprogetto
require('
local p = {} -- per l'esportazione delle funzioni del modulo
Riga 124:
if self.entity.claims and
self.entity.claims[property_id] and
self.entity.claims[property_id][1].mainsnak.datavalue and
self.entity.claims[property_id][1].mainsnak.datavalue.type == 'string' then
return self.entity.claims[property_id][1].mainsnak.datavalue.value
Line 133 ⟶ 134:
function Wikidata_entity:getInterwiki(project, property_language)
local interwiki = { project }
if property_language and self.entity.claims and self.entity.claims[property_language] then
project = project:sub(3)
for
if claim.mainsnak.datavalue.type == 'wikibase-entityid' then
local entityId = 'Q' .. claim.mainsnak.datavalue.value['numeric-id']
Line 141 ⟶ 143:
local language_code = claims[1] and claims[1].mainsnak.datavalue.value
if language_code then
end▼
table.insert(interwiki, language_code .. project)
self.lingua[language_code .. project] = language_code
end
end
Line 176 ⟶ 181:
if self.from_property_category[key_progetto] then
self.article_link[key_progetto] = sitelink
elseif
local lingua = self.lingua[interwiki]
key_progetto = string.format('%s_%s', key_progetto, lingua)
Line 184 ⟶ 189:
self.collegamenti[key_progetto] = sitelink
end
if i == 1 and self.entity.sitelinks[interwiki].badges
local badge_class = {}
local badge_title = {}
Line 213 ⟶ 218:
function Wikidata_entity:hasPropertyValue(propertyId, values)
if self.entity.claims and self.entity.claims[propertyId] then
▲ if claim and claim.mainsnak and claim.mainsnak.datavalue and claim.mainsnak.datavalue.value then
local datavalue = claim.mainsnak.datavalue
if datavalue.type == 'wikibase-entityid'
▲ end
end
end
Line 260 ⟶ 259:
return nil
else
self.default_progetto = default_progetto
self.ordine = default_progetto.ordine
self.badge_leftbar = {}
Line 286 ⟶ 285:
self.testo_dopo = ' <small>' .. args.data .. '</small>'
end
local lingua = key_progetto == 's_el' and 'lingua greca' or
entity.lingua[key_progetto] and require('Modulo:Linguaggi').get_voce(entity.lingua[key_progetto]) or args[key_progetto .. '_lingua'] and 'lingua ' .. args[key_progetto .. '_lingua']
if default_progetto.lingua and lingua then
Riga 298:
function Collegamento:Link()
local default_progetto = self.default_progetto
if default_progetto.link == 'Link' then
return self:Link_text()
elseif default_progetto.link == 'LinkWithLanguage' then
return self:Link_language()
add_error('Errore interno modulo Interprogetto:' .. self.key_progetto)▼
elseif default_progetto.link == 'LinkRicette' then
return self:Link_ricette()
elseif default_progetto.link == 'LinkIncubator' then
return self:Link_incubator()
return ''
end
function Collegamento:Link_lb()
local default_progetto = self.default_progetto
if default_progetto.link == 'Link' then
elseif default_progetto.link == 'LinkWithLanguage' then
return self:Link_language_lb()
add_error('Errore interno modulo Interprogetto:' .. self.key_progetto)▼
elseif default_progetto.link == 'LinkRicette' then
return self:Link_text_lb()
elseif default_progetto.link == 'LinkIncubator' then
return self:Link_incubator_lb()
end
return ''
end
function Collegamento:Link_text()
local default_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 ",
Line 324 ⟶ 336:
function Collegamento:Link_text_lb()
local default_progetto =
return "[[", default_progetto.prefix, self.collegamento, "|", default_progetto.nome_leftbar or default_progetto.nome_progetto, "]]"
end
function Collegamento:Link_ricette()
local default_progetto =
return "* [[File:", default_progetto.icona, "|link=", default_progetto.prefix, "|", default_progetto.dimensione_icona,
"|Collabora a ", default_progetto.nome_progetto, "]] Il ''[[b:Libro di cucina|Libro di cucina]]'' di [[b:|Wikibooks]] contiene '''[[",
Line 336 ⟶ 348:
function Collegamento:Link_language()
local default_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 ",
Line 346 ⟶ 358:
function Collegamento:Link_language_lb()
local default_progetto =
return "<span class=\"plainlinks\" title=\"", default_progetto.prefix , self.collegamento, "\">[",
tostring(mw.uri.fullUrl(default_progetto.prefix .. self.collegamento, {uselang='it'})), " ",
Line 353 ⟶ 365:
function Collegamento:Link_incubator()
local default_progetto =
local oggetto = self.oggetto
if not cfg.prefix_incubator[oggetto] then
Line 388 ⟶ 400:
-- ============================================================================================================
-- Scandisce la tabella progetti e produce il codice html per l'elenco dei collegamenti nella barra di sinistra
-- Imposta il tag div id="interProject" (vedi accessorio [[MediaWiki:Gadget-InterProject
-- ============================================================================================================
local function RenderLeftBar(progetti)
local leftbar = mw.html.create('ul')
for _, progetto in ipairs(progetti) do
leftbar
:addClass(progetto.badge_leftbar.class)
if cfg.parameters[progetto.key_progetto].nome_leftbar then▼
leftbar:wikitext('<br />(', progetto.default_progetto.nome_progetto, ')')
end
end
root
:tag('div') :attr('id', 'interProject')
:
▲ :tag('p')
:node(leftbar)
end
Line 531 ⟶ 536:
if entity.etichetta then
-- Elimina un eventuale "Categoria:" in fronte del nome
default.etichetta = mw.ustring.gsub(
else
-- Elimina un'eventuale disambigua dal nome
Line 541 ⟶ 546:
if entity.corsivo then
default.etichetta = '<span style=\"font-style:italic;\">' .. default.etichetta .. '</span>'
default.etichetta_lower =
end
end
Line 601 ⟶ 606:
end
-- ====================================================================================================
-- Aggiunge il collegamento da Wikidata se non è presente quello compilato manualmente o se rinvia a
-- un progetto in lingua non italiana che non è registrato nella configurazione e non va sovrascritto
-- ====================================================================================================
for key_progetto, collegamento in pairs(entity.collegamenti) do
if not
newArgs[key_progetto] = collegamento
-- Segnala che il collegamento è stato aggiunto da Wikidata
Line 617 ⟶ 623:
local collegamento_found = false
for key_progetto, collegamento in pairs(newArgs) do
if cfg.parameters[key_progetto
-- Salta i collegamenti a Wikidata per le voci nel namespace principale eccetto che per la Pagina principale
if key_progetto ~= 'wikidata' or current_namespace ~= 0 or current_pagename == 'Pagina principale' then
Line 623 ⟶ 629:
if progetto then
collegamento_found = true
-- Se è disambigua registra solo i valori per i progetti abilitati in disambigua▼
▲ end
if not entity.disambigua or cfg.parameters[key_progetto] and cfg.parameters[key_progetto].abilita_in_disambigua then▼
▲ -- Se è disambigua registra solo i valori per i progetti abilitati in disambigua
▲ if not entity.disambigua or cfg.parameters[key_progetto].abilita_in_disambigua then
progetti[#progetti+1] = progetto
end
|