Modulo:Esclusioni FileExport

Questo modulo viene utilizzato per categorizzare un file in base alla propria estensione. È possibile scegliere se farlo categorizzare in caso l'estensione scelta combaci con quella del file, oppure no.

Parametri da modulo

Questo modulo permette di poter scegliere i parametri da testare e il nome delle categorie che verranno utilizzate in uno o nell'altro caso.

  • CategoriaEsclusioneDefault: è il nome predefinito della categoria che il modulo utilizzerà se l'estensione del file combacia con quella scelta tramite la variabile extControl.  Attualmente la categoria predefinita è "File esclusi dall'esportazione"
  • CategoriaInclusioneDefault è il nome predefinito della categoria che il modulo utilizzerà se l'estensione scelta non combacia con quella del file. Attualmente è stata lasciata vuota.
  • extControl: L'entensione da ricercare specificata tramite "estensione" (vd. sotto), se non specificato diversamente verrà usata "pdf"


Parametri personabilizzabili

Per semplificare l'uso del modulo, e renderlo più versatile, è possibile specificare dei parametri per "sovrascrivere" quelli di default:

  • estensione: sovrascrive la variabile extControl
  • CategoriaEsclusione: il nome del parametro che è possibile usare per scegliere la categoria in cui verrà categorizzato il file se le due estensioni combaciano. Se non specificato il modulo utilizzerà il valore di CategoriaEsclusioneDefault
  • CategoriaInclusione: il nome del parametro che è possibile usare per scegliere la categoria in cui verrà categorizzato il file se le due estensioni non combaciano. Se non specificato il modulo utilizzerà il valore di CategoriaInclusioneDefault.

funzione isExportable

Questa funzione sfrutta soltanto il parametro estensione per confrontare le due estensioni. Il suo unico scopo è quello di essere utilizzata in un template con un if, infatti resituisce solo "yes" se le due estensioni combaciano, o "no" se non combaciano. Anche in questo caso il parametro "estensione", se non diversamente specificato assumerà "pdf" come valore.


local getArgs = require('Modulo:Arguments').getArgs
--[[ Valore di default per scegliere il nome delle categorie da utilizzare nei 
casi in cui l'estensione del file combaci (o meno) con quella voluta]]

local CategoriaEsclusioneDefault = "File esclusi dall'esportazione" -- corrispondente
local CategoriaInclusioneDefault = "" -- non corrispondente

local p = {}

local function _main(frame)
TitoloFile = tostring(mw.title.getCurrentTitle()) -- recupera il nome del file nel formato "NS:File.ext"
FileSplit = '(%a+):([%w%s]*)\.(%a+)' -- regex per dividere il  nome del file
Namespace, NomeFile, EstensioneFile = TitoloFile:match(FileSplit)

	return Namespace and NomeFile and EstensioneFile

end

function p.main(frame)
local args = getArgs(frame)

--[[Le due variabili sotto due variabili permettono di reperire i valori dei paramentri 
"CategoriaEsclusione" e "CategoriaInclusione" se specificati nel template, 
atrimenti usa i paramtri di default "CategoriaEsclusioneDefault" e 
"CategoriaInclusioneDefault" specificati in cima a questo modulo.]]

CategoriaEsclusione = args['CategoriaEsclusione'] or CategoriaEsclusioneDefault 
CategoriaInclusione = args['CategoriaInclusione'] or CategoriaInclusioneDefault 

ext = string.lower( _main(EstensioneFile) ) -- forzo in minuscolo per essere sicuri
extControl = frame.args['estensione'] or 'pdf' -- estensione da comparare con quella del file, se non specificato sarà "pdf"

	if  ext == extControl then
		if CategoriaEsclusione ~= "" then -- categorizza solo se il paramentro non è lasciato vuoto
			return  string.format('[[Category:%s]]', CategoriaEsclusione ) -- È l'estensione richiesta
		end
	else
		if CategoriaInclusione ~= "" then -- categorizza solo se il paramentro non è lasciato vuoto
			return  string.format('[[Category:%s]]', CategoriaInclusione ) -- È l'estensione richiesta
		end
	end

end

function p.isExportable(frame)
local args = getArgs(frame)

ext = string.lower( _main(EstensioneFile) ) -- forzo in minuscolo per essere sicuri
extControl = frame.args['estensione'] or 'pdf' -- estensione da comparare con quella del file, se non specificato sarà "pdf"

	if  ext == extControl then
		return  'yes'
	else
		return 'no'
	end

end
return p