Modulo:Categoria per anno

Versione del 5 giu 2017 alle 23:57 di Valerio Bozzolan (discussione | contributi) (+Controllo Wikidata)
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 = ''

	local mWikidata, mString, mControlloWd = require('Modulo:Wikidata'), require('Modulo:String'), require('Modulo:Controllo Wikidata')
	local from, localValue, catPart, wikidataLabel = args.from, args.localValue, args.catPart, args.wikidataLabel

	local wikidataProp        = args.wikidataProp        or 'P571'
	local wikidataLabelGenere = args.wikidataLabelGenere or 'fs'

	local wikidataValue = mWikidata._getProperty( { wikidataProp, localValue, from = from } )

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

	if wikidataValue then
		-- @TODO mString.match does not work out of a frame
		local year = mString._match( {
			s = wikidataValue,
			pattern = '%d%d%d%d',
			nomatch = ''
		} )

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

	s = s .. mControlloWd._main( {wikidataProp, localValue, wikidataLabel, genere = wikidataLabelGenere} )

	return s
end

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

return p