¡Vikidia te necesita!
Actualmente tenemos 6582 artículos. ¡Anímate! a crear los artículos solicitados |
Módulo:Navegación
Ir a la navegación
Ir a la búsqueda
Este módulo permite crear plantillas de navegación con un estilo unificado.
Funciones
Crea una lista HTML, con los valores pasados en la secuencia args. La estructura de dicha tabla es la siguiente:
Parámetro | Descripción |
---|---|
string pc | Una cadena RGB válida, para especificar el color principal, y la base del color terciario. |
string sc | Una cadena RGB válida, para especificar el color secundario. |
string título | Una cadena, para especificar el título. |
string img | Una cadena, que se mostrará a la derecha en un recuadro. |
table cabecera | Una secuencia, donde cada elemento formará parte de una lista provista por el módulo Lista, y se mostrará justo después del título. |
table pie | Ídem del anterior, con la diferencia de que la lista se mostrará al final de la tabla. |
table lista | Una secuencia de tablas, que representan cada fila de la navegación. Su estructura se muestra en la siguiente tabla. |
Parámetro | Descripción |
---|---|
string título | Una cadena, que contendrá el título de la fila. |
table elementos | Una secuencia de cadenas, donde cada cadena representa un elemento de la lista. |
Retorna una cadena HTML con un elemento <div class="navbox">
.
Interfaz wikitexto. Es usada por {{Navegación}}
. Retorna lo devuelto por Navegacion.
Esta documentación se encuentra en la subpágina Módulo:Navegación/doc ( | historial)
Por favor, incluye las categorías a la subpágina /doc. Subpáginas de este módulo.
local z = {}
local modUtilidades = require('Módulo:Utilidades')
local modLista = require('Módulo:Lista')
function z.Navegacion(args)
if not (args['título'] and args['título'] ~= '') then
return ''
end
local navb = mw.html.create('div')
navb
:addClass('navbox')
:attr('role', 'navigation')
:css('--pc', args.pc)
:css('--sc', args.sc)
:css('--tc', args.pc..'70')
:css('--img', args.img and '3' or '4')
local navbtitle = navb:tag('div')
navbtitle:wikitext(args['título'])
local num = 0
local lista = {}
for k, v in ipairs(args.lista) do
num = num + 1
local navbrow = mw.html.create('div')
navbrow
:addClass('navb-fila')
:css('--n', tostring(2 + num))
local navbrowt = navbrow:tag('div')
navbrowt:wikitext('<span>'..v['título']..'</span>')
local navbrowc = navbrow:tag('div')
navbrowc:wikitext(modLista.Lista({'h',' • ', ' • ', v['elementos']}))
table.insert(lista, navbrow)
end
navb:css('--nl', num)
if args.img then
local navbimg = navb:tag('div')
navbimg
:addClass('navb-img')
:css('--n', tostring(3 + num))
:wikitext(args.img)
end
if args.cabecera and #args.cabecera ~= 0 then
local navbhead = navb:tag('div')
navbhead
:addClass('navb-cabecera')
:wikitext(modLista.Lista({'h',' • ', ' • ', args.cabecera}))
end
for i, v in ipairs(lista) do
navb:node(v)
end
if args.pie and #args.pie ~= 0 then
local navbfoot = navb:tag('div')
navbfoot
:addClass('navb-pie')
:wikitext(modLista.Lista({'h',' • ', ' • ', args.pie}))
end
return tostring(navb)
end
function z._Navegacion(frame)
local argumentos = modUtilidades.eliminarArgSinValor(mw.getCurrentFrame():getParent().args)
local estilo = modUtilidades.esquemasColores[argumentos.estilo or 'indigo']
local params = {
['pc'] = estilo[1],
['sc'] = estilo[2],
['título'] = argumentos['título'],
['img'] = argumentos.imagen,
['cabecera'] = {},
['pie'] = {},
['lista'] = {}
}
local pos
for k, v in pairs(argumentos) do
if string.find(k,'^arriba%d+$') then
params.cabecera[tonumber(string.match(k,'%d+$'))] = v
elseif string.find(k,'^abajo%d+$') then
params.pie[tonumber(string.match(k,'%d+$'))] = v
elseif string.find(k,'^grupo%d+$') then
pos = tonumber(string.match(k,'%d+$'))
local listaObj = {['título'] = '', ['elementos'] = {}}
listaObj['título'] = v
local i = 0
repeat
i = i + 1
local p = 'lista'..tostring(pos)..'-'..tostring(i)
if argumentos[p] then
table.insert(listaObj['elementos'], argumentos[p])
else
break
end
until false
params.lista[pos] = listaObj
end
end
return z.Navegacion(params)
end
return z