Modulo:Navbox: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
aggiornato stile documentazione a quello usato in Mediawiki per Lua, utilizzo di Modulo:Controllo parametri sconosciuti, successivo a questo modulo |
navbar obbligatorio, v. Discussioni_template:Navbox#Barra_navigazione_Template. è disabilitato senza valido motivo in oltre 700 template, mentre gli usi in portali/progetti sono 7 e risolvibili in altri modi |
||
(7 versioni intermedie di 2 utenti non mostrate) | |||
Riga 3:
]]--
require('
local getArgs = require('Modulo:Arguments').getArgs
Riga 23:
local ret, ids = {}, {}
for key, _ in pairs(args) do
if type(key) == 'string' then
if id and tonumber(id) <= (withGroup and MAX_LIST_NAVBOX or MAX_LIST_NAVBOX_SUBGROUP) then
ids[tonumber(id)] = true
end
end
Line 46 ⟶ 48:
-- Con il debug ridefinisce il metodo mw.html:css,
-- permettendo di eseguire i test senza controllare anche
--
-- @param {table} tableNode
Line 52 ⟶ 54:
local mt = getmetatable(tableNode)
mt.__index.css = function(t, name, val) return t end
end
-- Verifica se il template è elaborato nella sua pagina
local function isTemplatePage(name)
local title = mw.title.getCurrentTitle().prefixedText
name = 'Template:' .. (name or '')
return name == title and true or false
end
-- Carica il CSS via TemplateStyles quando opportuno
local function loadCSS(name)
local prefix = isTemplatePage(name) and 'mobile-' or ''
local styles = 'Modulo:Navbox/' .. prefix .. 'styles.css'
return mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = {src = styles}
}
end
Line 67 ⟶ 86:
local self = {}
local thNode
setmetatable(self, { __index = Navbox })
Line 86 ⟶ 99:
:tag('th')
:attr('colspan', self.args.image and '3' or '2')
:cssText(self.args.titlestyle)
▲ self:_addTnavbar(thNode)
▲ end
if self.args.title then
self:_addTitle(thNode)
Line 117 ⟶ 127:
-- Configura gli stili CSS della tabella
function Navbox:_setupTableNode()
self.tableNode
:addClass(isTemplatePage(self.args.name) and 'navbox_mobile' or 'navbox')
:addClass('mw-collapsible')
:addClass(isTemplatePage(self.args.
not self.args.state and 'autocollapse' or nil)
:addClass('nowraplinks')▼
:addClass('noprint metadata')
:attr('id', 'navbox-' .. (self.args.name or ''))
:cssText(self.args.style)
:cssText(self.args.bodystyle)
Line 142 ⟶ 144:
-- @param {table} node
function Navbox:_addTnavbar(node)
local tnavbar = mw.getCurrentFrame():expandTemplate {
title = 'Tnavbar',
Line 156 ⟶ 151:
}
}
node:tag('div'):
end
Line 163 ⟶ 158:
-- @param {table} node
function Navbox:_addTitle(node)
node:tag('span'):
end
Line 171 ⟶ 166:
-- @param {string} argStyle
function Navbox:_addAboveOrBelow(arg, argStyle)
self.tableNode
:tag('tr')
:tag('
:attr('colspan', self.args.image and '3' or '2')
:
:cssText(argStyle)
:wikitext(arg)
Line 190 ⟶ 180:
-- @param {number} rowspan
function Navbox:_addImage(trNode, rowspan)
trNode
:tag('td')
:attr('rowspan', rowspan)
:
:cssText(self.args.imagestyle)
:wikitext(self.args.image)
Line 206 ⟶ 191:
function Navbox:_addLists()
local rowIds, altStyle, altBackground
-- crea una riga per ogni groupN/listN
rowIds = getIds(self.args, true)
for
local trNode = self.tableNode:tag('tr')
-- groupN
Line 220 ⟶ 199:
trNode:tag('th')
:attr('colspan', self.args['list' .. id] and '1' or '2')
:
:cssText(self.args.groupstyle)
:cssText(self.args['group' .. id .. 'style'])
Line 228 ⟶ 207:
if self.args['list' .. id] then
local list = trimSep(self.args['list' .. id])
if (
altStyle = self.args.evenstyle
altBackground = '
else
altStyle = self.args.oddstyle
altBackground =
end
trNode:tag('td')
:attr('colspan', self.args['group' .. id] and '1' or '2')
:
▲ :css('text-align', self.args['group' .. id] and 'left' or 'center')
:cssText(self.args.liststyle)
:cssText(altStyle)
Line 287 ⟶ 265:
-- Configura gli stili CSS della tabella.
function NavboxSubgroup:_setupTableNode()
self.tableNode
:addClass('
:cssText(self.args.bodystyle)
end
Line 305 ⟶ 273:
function NavboxSubgroup:_addLists()
local listIds, altStyle
-- crea una row per ogni listN
listIds = getIds(self.args)
Line 317 ⟶ 281:
if self.args['group' .. id] then
trNode:tag('th')
:
:cssText(self.args.groupstyle)
:wikitext(self.args['group' .. id])
Line 328 ⟶ 292:
trNode:tag('td')
:attr('colspan', self.args['group' .. id] and '1' or '2')
:
:cssText(self.args.liststyle)
:cssText(altStyle)
Line 343 ⟶ 307:
-- Funzione per l'utilizzo da un altro modulo.
function p._navbox(args)
return loadCSS(args.name) .. Navbox:new(args):getHTML()
end
|