Modulo:Interprogetto: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Moroboshi (discussione | contributi)
Implemento con ritardo una serie di miglioramenti di FRacco, vedi Discussioni_modulo:Interprogetto#Suggerimenti_da_Quote, Discussioni_template:Interprogetto#Etichetta_wikt e Discussioni_template:Interprogetto#interprogetto_per_voci_in_vetrina]]
Moroboshi (discussione | contributi)
inserisco alcuni fix di FRacco, vedi discussione
Riga 87:
tostring(mw.uri.localUrl( p.collegamento[pos] )), "'''" })
else
main_page_link=tostring(mw.uri.fullUrl(p.prefix[pos] .. 'Pagina principale', {uselang='it'}))
text = table.concat({'* [[File:', p.icona[pos], '|link=', main_page_link, '|',
p.dimensione_icona[pos], '|Collabora a ', p.nome_progetto[pos],
Riga 215:
q= {interwiki='itwikiquote', category=nil },
n= {interwiki='itwikinews', category=nil }
}
 
local automatic_link_bis = {
-- Tabella delle corrispondenze tra i "codici progetto" (come compaiono nella tabella sopra).
-- Evita che wikidata aggiunga il link automatico se esiste già un link a uno di questi progetti
testo = 's'
}
 
Riga 277 ⟶ 283:
origArgs = frame:getParent().args
else
origArgs = frame.args
end
 
Riga 287 ⟶ 293:
-- Carico i parametri
local current_page = mw.title.getCurrentTitle()
local current_titlecurrent_namespace = current_page.fullTextnamespace
local current_pagename = current_page.text
local current_fullpagename = ''
-- Per i namespace uso il nome canonico (inglese) per non avere differenze tra progetti:
-- esempio: Utente/User, Categoria/Category, ma anche Wikiquote/Wikipedia (Project), ecc.
if current_namespace ~= 0 then
current_fullpagename = mw.site.namespaces[current_namespace].canonicalName .. ':' .. current_pagename
endelse
current_fullpagename = current_pagename
end
local etichetta = origArgs.etichetta
-- carico i dati da wikidata se esistono
Riga 300 ⟶ 315:
etichetta = mw.ustring.gsub(entity.labels.it.value, '^Categoria:', '') -- Elimino un eventuale "Categoria:" in fronte del nome
else
etichetta = mw.ustring.gsub(current_page.textcurrent_pagename, ' %(.*%)$', '') -- Elimino un'eventuale disambigua dal nome
if current_namespace == 0 then
etichetta_lower = etichetta:gsub("^%l", string.lower)
end -- converto l'iniziale dell'etichetta in minuscolo
end
end
Riga 309 ⟶ 326:
-- se preposizione e oggetto non sono definiti cambio il valore di default
if current_page.namespacecurrent_namespace == 14 then
preposizione = preposizione or "sull'argomento"
oggetto = oggetto or "una categoria"
Riga 361 ⟶ 378:
local newArgs = {}
for k, value in pairs(origArgs) do
-- Disabilito i link a wikidata per le voci (ns0), escludendo la Pagina principale
if not(k == 'wikidata' or value == 'wikidata')
or current_namespace ~= 0 or current_pagename == 'Pagina principale' then
-- Se è disambigua registro solo i valori per i link al wikizionario
if k == 'wikt' or value == 'wikt' or not(is_disambigua) then
newArgs[k] = value
end
end
if automatic_link[k] then
automatic_found[k] = true
elseif automatic_link_bis[k] then
automatic_found[automatic_link_bis[k]] = true
elseif (tonumber(k) and automatic_link[mw.text.trim(value)]) then
automatic_found[mw.text.trim(value)] = true
elseif tonumber(k) and automatic_link_bis[mw.text.trim(value)] then
end
automatic_found[automatic_link_bis[mw.text.trim(value)]] = true
-- Se è disambigua registro solo i valori i link al wikizionario
if k == 'wikt' or value=='wikt' or not(is_disambigua) then
newArgs[k] = value
end
if not(is_disambigua) or mw.ustring.gsub( k, '_%w*$', '' ) == 'wikt' or value == 'wikt' then
newArgs[k] = value
end
end
for key, found in pairs(automatic_found) do
if not (found) then
if not (is_disambigua) and entity then
if entity.sitelinks and entity.sitelinks[automatic_link[key].interwiki] then
newArgs[key] = entity.sitelinks[automatic_link[key].interwiki].title
Riga 383 ⟶ 405:
end
elseif check_property[key] and entity.claims and entity.claims[check_property[key]]
and entity.claims[check_property[key]][1]
and entity.claims[check_property[key]][1].mainsnak
and entity.claims[check_property[key]][1].mainsnak.datavalue
and entity.claims[check_property[key]][1].mainsnak.datavalue.type == 'string' then
newArgs[key] = 'Category:' .. entity.claims[check_property[key]][1].mainsnak.datavalue.value
end
end
Riga 408 ⟶ 430:
end
end
 
-- se sono in ns0 o ns14 elimino un eventuale link a wikidata (è già visualizzato in cima alla pagina)
if (current_page.namespace == 0 or current_page.namespace == 14) and newArgs['wikidata'] then
newArgs['wikidata'] = nil
end
 
-- Scandisco tutti gli argomenti per costruire una tabella in cui ad ogni riga corrisponde un link
-- a un altro progetto con le opzioni che sono state settate per quel progetto
Riga 427 ⟶ 443:
else
if k == 'wikt' or k =='wiktionary' then -- di default il collegamento a wikizionario è in minuscolo
collegamento = current_fullpagename:gsub("^%u", string.lower(current_title)
else
collegamento = current_titlecurrent_fullpagename
end
end
end
if collegamento == '' then collegamento = current_titlecurrent_fullpagename end
-- se k corrisponde a un progetto inserito in default_parameter aggiungo una riga alla tabella
-- progetti con i parametri da usare per visualizzare i collegamenti