Modulo:Avviso

Da Wikivoyage.
Jump to navigation Jump to search
Info Istruzioni per l'uso
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Avviso/man (modifica · cronologia)
Sandbox: Modulo:Avviso/sandbox (modifica · cronologia) · Test: Modulo:Avviso/test (modifica · cronologia · Esegui)

Vedi anche


--[[
	Source script:	https://it.wikivoyage.org/wiki/Modulo:Avviso
	Maintainer:		Andyrom75
]]
local function _isempty(s)
	return s == nil or s == ''
end

local function _avviso(frame)
	local args = frame.args
	local avviso = {
		tipo = {
			importante = 'avviso-importante',
			contenuto = 'avviso-contenuto',
			stile = 'avviso-stile',
			statico = 'avviso-statico',
			struttura = 'avviso-struttura',
			avviso = 'avviso-informazioni',
			disambigua = 'avviso-disambigua',
			protezione = 'avviso-generico',
			disclaimer = 'avviso-disclaimer',
			default = 'avviso-informazioni'
		},
		immagine = {
			importante = '[[File:Stop hand nuvola.svg|40px|link=]]',
			contenuto = '[[File:Emblem-important.svg|40px|link=]]',
			stile = '[[File:Broom icon.svg|40px|link=]]',
			statico = '[[File:Gnome globe current event.svg|40px|link=]]',
			struttura = '[[File:Merge-split-transwiki default.svg|40px|link=]]',
			avviso = '[[File:Info non-talk.png|40px|link=]]',
			disambigua = '[[File:Info non-talk.png|40px|link=]]',
			protezione = '[[File:Padlock.svg|40px|link=]]',
			disclaimer = '[[File:Nuvola_apps_important.svg|40px|link=]]',
			trasparente = '[[File:No image.svg|link=]]',
			default = args['2'] or args.immagine or '[[File:Info non-talk.png|40px|link=]]'
		}
	}
	local output = '<div style="' .. (args.stile or '')
		.. '" class="plainlinks noprint avviso ' .. (avviso.tipo[args.tipo] or avviso.tipo.default) .. '">'
		.. '<div class="avviso-immagine">'
	if (args['2'] == 'nessuna') or (args.immagine == 'nessuna') then
		output = output .. '&nbsp;'
	else
		output = output .. '<div style="width:' .. (args.imageboxsize or '52px') .. ';">'
			.. (avviso.immagine[args['2']]
				or (_isempty(args['2']) and avviso.immagine[args.immagine])
				or (_isempty(args['2']) and _isempty(args.immagine) and avviso.immagine[args.tipo])
				or avviso.immagine.default)
			.. '</div>'
	end
	output = output .. '</div><div class="avviso-testo" style="' .. (args['stile testo'] or '') .. '">' .. (args['1'] or args.testo or '') .. '</div>'

	if args['immagine a destra'] then
		output = output .. '<div class="avviso-immaginedestra"><div style="width:' .. (args.imageboxsize or '52px') .. ';"> ' .. args['immagine a destra'] .. ' </div></div>'
	end
	output = output .. '</div>'

	if mw.title.getCurrentTitle().namespace == '8' then --MediaWiki
		output = output .. '[[Categoria:Messaggi di sistema con avviso|' .. mw.title.getCurrentTitle().text .. ']]'
	elseif mw.title.getCurrentTitle().namespace == '0' then
		if (args.tipo == 'avviso') or (args.tipo == 'importante') then
			output = output .. '[[Categoria:Articoli con avviso]]'
		end
	end

	return output
end

--Interfacce del modulo
local p = {}

function p.avvisoTemplate(frame)
	return _avviso(frame:getParent())
end

function p.avviso(frame)
	return _avviso(frame)
end

return p