Modulo:Pn

Hello, you have come here looking for the meaning of the word Modulo:Pn. In DICTIOUS you will not only get to know all the dictionary meanings for the word Modulo:Pn, but we will also tell you about its etymology, its characteristics and you will know how to say Modulo:Pn in singular and plural. Everything you need to know about the word Modulo:Pn you have here. The definition of the word Modulo:Pn will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModulo:Pn, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.

La documentazione per questo modulo può essere creata in Modulo:Pn/man

local getArgs = require('Modulo:Arguments').getArgs
local args = getArgs(frame)
local titolo = mw.title.getCurrentTitle().subpageText
local pRegex = "^" -- Regex per i progetti accettati


prog_etichetta = { -- testo da visualizzare nel link
	b = "testi",
	n = "news",
	q = "citazioni",
	s = "opere",
	v = "corsi",
	w = "approfondimento",
	voy = "itinerari",
}

prog_img = { -- titolo dell'immagine per progetto (senza la parte "-logo.ext")
	b = "Wikibooks",
	n = "Wikinews",
	q = "Wikiquote",
	s = "Wikisource",
	v = "Wikiversity",
	w = "Wikipedia",
	voy = "Wikivoyage",
}

progetti = { -- per adesso non serve ma in futuro potrebbe essere motivo di update
	prog_etichetta = {},
	prog_img = {},
}

-- Funzione per confrontare una regex con il parametro passato
 local function pPattern (par)
 	return string.match ( pRegex , par)
 end
 
-- FUNZIONE PER CATEGORIZZARE IN CASO DI APPENDICE NON ESISTENTE
local function categorizza(pagina,lingua)
	if mw.title.new(pagina).exists == false then
		return string.format(']', 'Appendici in '.. lingua:lower() ..' da scrivere') 
	else
		return ''
	end
end

--[[ FUNZIONE PER GESTIRE CATEGORIZZAZIONE E MESSAGGIO DI ERRORE
(LE VARIE CONDIZIONI NECESSARIE AL FUNZIONAMENTO SONO SPECIFICATE ALL'INTERNO
DELLA FUNZIONE Errore(), QUESTA FUNZIONE GESTISCE SOLTANTO IL RISULTATO) ]]--

local function ErroreMSG (ErrParametro)
	local ErrMessaggio = '&nbsp;<strong class="error">Parametro "<u>'.. ErrParametro ..'</u>" non riconosciuto</strong>'
	local ErrCategoria = ']'
		return ErrMessaggio .. '' .. ErrCategoria
	end


-- FUNZIONE PER GESTIRE LA SCELTA DELL'EVENTUALE MESSAGGIO DI ERRORE PER
-- "CODICE PROGETTO ERRATO"

local function Errore (frame)
local args = getArgs(frame)
local tErr = ''	

	for i, j in pairs(args) do
		-- MESSAGGIO DI ERRORE (E CATEGORIZZAZIONE) PER CODICE PROGETTO ERRATO
		if (i ~= pPattern (i) and i ~= 'lin' and i ~= 'c' and j ~= pPattern (j)  and j ~= 'lin' and j ~= 'c') then		
			if type(i) ~= 'number' then
				tErr = ErroreMSG(i)
			else
				tErr = ErroreMSG(j)
			end
		end
	end
	
	return tErr
end

-- FUNZIONE PER GESTIRE IL TESTO E IL LINK AL PROGETTO WMF
local function LinkProgetto(frame)
	local args = getArgs(frame)
	local tProg = ''	

	for i, j in pairs(args) do
		-- Valore specificato per il parametro
		if type(i) ~= 'number' and i ~= 'c' or args ~= nil then
			local img = (mw.ustring.gsub(i, '^+', prog_img))
			local etichetta = (mw.ustring.gsub(i, '^+', prog_etichetta))
			
			if i == pPattern (i) then -- Testo per un valore "pagina - progetto" diverso da quello di default
				tProg = "&nbsp;(] ''']''')"
			end
		end
		
		-- Valore NON specificato per il parametro
		if j ~= nil and j ~= 'c' or  args ~= nil then
			local img = (mw.ustring.gsub(j, '^+', prog_img))
			local etichetta = (mw.ustring.gsub(j, '^+', prog_etichetta))
			
			if j == pPattern (j) then -- Testo per un valore "pagina - progetto" uguale a quello di default
				tProg = "&nbsp;(] ''']''')"
			end
		end
	end
	
	return tProg
end

-- FUNZIONE PER GESTIRE IL TESTO E IL LINK ALLA CONIUGAZIONE
local function LinkConiugazione(frame)
	local args = getArgs(frame)
	local coniugazione = ''
	local cat_coniugazione = ''
	local tCong = ''
	local SwitchLang = mw.language.fetchLanguageName( (args or args or 'it'), 'it' )
	
		--[[ controlla che la funzione "mw.language.fetchLanguageName" non dia un 
		parametro vuoto. in caso affermativo vuol dire che il codice ISO 
		della lingua non è stato riconosciuto e quindi lo script salta del tutto
		la visualizzazione del link alla coniugazione e va direttamente al messaggio
		di errore con relativa categoria--]]
		
			for i, j in pairs(args) do
				 -- Controlla se è stato specificato il parametro "c"…
				if i == 'c' or j == 'c' or args ~= nil then
					-- … e che se è stato specificato la lingua non sia quella di default
					if args ~= nil  or args ~= nil then 
						lingua = SwitchLang:gsub("^%l", string.upper)
					else
						lingua = 'Italiano'
					end
					
					link_coniugazione = 'Appendice:Coniugazioni/'..lingua..'/'.. titolo
					tCong = '&nbsp;(])'..categorizza(link_coniugazione,lingua)
				end
			end
	return tCong
end

local p = {}
--[[
Funzione per creare il testo; Funziona assemblando il titolo con le due funzioni locali:
1) LinkProgetto
2) LinkConiugazione
3) Errore
--]]

	function p.pn(frame)
		local args = getArgs(frame)
		lProg = LinkProgetto(frame)
		lCong = LinkConiugazione(frame)
		Err = Errore(frame)
		
		if lProg ~= nil then
			tProg = lProg
		end
		
		if Err ~= nil then
			tErr = Err
		end
		
		if lCong ~= nil then
			tCong = lCong
		end
		
		return "'''"..titolo.."'''<small>"	.. tProg .. "" .. tCong .. "</small>" .. tErr
	end

return p