Modulo:Categoria per anno

Versione del 6 giu 2017 alle 00:14 di Valerio Bozzolan (discussione | contributi) (controlloWikidataGenere)
Info Istruzioni per l'uso
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Categoria per anno/man (modifica · cronologia)
Sandbox: Modulo:Categoria per anno/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:Categoria per anno/test (modifica · cronologia · esegui)

Il Modulo:Categoria per anno categorizza una pagina in base ad un certo anno ricavabile da una certa proprietà Wikidata come la data di fondazione o creazione (P571).

Uso

local s = require('Modulo:Categoria per anno')._main( {'Software del %d'} )

Parametri

1|cat
Parte della categoria (obbligatoria) come ad esempio Software del %d.
prop
Proprietà Wikidata nel caso non sia la P571 (data di fondazione o creazione (P571)).
value
Valore dell'anno fornito dalla voce invece che da Wikidata come ad esempio 1984 o 28 marzo 1984 ecc.
checkCat
Categoria relativa al {{Controllo Wikidata}} nel caso sia diversa da Data di fondazione o creazione.
checkGenre
Vedi genere nel {{Controllo Wikidata}}.
ns
Vedi ns nel {{Controllo Wikidata}}.
from
Elemento Wikidata come ad esempio Q1431 da cui leggerne la proprietà. Da utilizzare solo se si è consci del contatore delle funzioni dispendiose.
raw
Impostare a true per avere solo il nome della categoria ed evitare il {{Controllo Wikidata}} (utile ad esempio nei test).


Pagine correlate



local p = {}

function err(msg)
	string.format('<span class="error">msg</span>', msg)
end

function p._main(args)
	local s = ''

	if not args.catPart then
		return err('richiesto parametro catPart')
	end

	if not args.wikidataProp then
		args.wikidataProp = 'P571'
	end

	local wikidataValue = require('Modulo:Wikidata')._getProperty( {
		args.wikidataProp,
		args.localValue,
		from = args.from
	} )

	if wikidataValue then
		local year = require('Modulo:String')._match( {
			s = wikidataValue,
			pattern = '%d%d%d%d',
			nomatch = ''
		} )

		if year and year ~= '' then
			s = s .. string.format(
				'[[Categoria:%s]]',
				string.format(args.catPart, year)
			)
		end
	end

	if args.controlloWikidataCat then
		local check = require('Modulo:Controllo Wikidata')._main( {
			args.wikidataProp,
			args.localValue,
			args.controlloWikidataCat,
			genere = args.controlloWikidataGenere or 'fs'
		} )
		if check then
			s = s .. check
		end
	end

	return s
end

function p.main(frame)
	local getArgs = require('Modulo:Arguments').getArgs
	return p._main( getArgs(frame) )
end

return p