Saltar al conteníu

Módulu:Control d'autoridaes

De Wikipedia

La documentación pa esti módulu pue crease en Módulu:Control d'autoridaes/usu

require('strict')

local function cleanLink ( link, style )
	-- similar to mw.uri.encode
	local wikiLink = link
	if style == 'PATH' then
		wikiLink = mw.ustring.gsub( wikiLink, ' ', '%%%%20' )
	elseif style == 'WIKI' then
		wikiLink = mw.ustring.gsub( wikiLink, ' ', '_' )
		wikiLink = mw.ustring.gsub( wikiLink, '?', '%%%%3F')
	else -- if style == 'QUERY' then -- default
		wikiLink = mw.ustring.gsub( wikiLink, ' ', '+' )
	end
	wikiLink = mw.ustring.gsub( wikiLink, '%[', '%%5B' )
	wikiLink = mw.ustring.gsub( wikiLink, '%]', '%%5D' )
	wikiLink = mw.ustring.gsub( wikiLink, '%"', '%%%%22' )
	return wikiLink
end

local function generic ( id, link, parameter )
	local idlink = cleanLink( id, 'PATH' )
	link = mw.ustring.gsub( link, '$1', idlink )
	return '[' .. link .. ' ' .. id .. ']'
end

local function bncLink ( id, link, parameter )
	-- filtro local del BNC, para evadir multitud de identificadores de Wikidata que no se enlazan adecuadamente
	-- véase https://www.wikidata.org/wiki/Wikidata:Database_reports/Constraint_violations/P1890#%22Format%22_violations
	if ( string.match( id, '^%d%d%d%d%d%d%d%d%d$' ) ) then
		return generic ( id, link, parameter )
	end
	return false
end

local function bnfLink ( id, link, parameter )
	-- representación local del BNF, con doble enlace
	return generic( id, link, parameter ) .. ' [http://data.bnf.fr/ark:/12148/cb' .. id .. ' (data)]'
end

local function ineLink ( id, link, parameter )
	-- representación especial del INE, enlace no estándar con cinco parámetros utilizados
	local ineMainRE, ineTailRE = '^(%d%d)(%d%d%d)', '(%d%d)(%d%d)(%d%d)'
	local codProv, codMuni, codEC, codES, codNUC = string.match( id, ineMainRE .. ineTailRE .. '$' )
	if not codEC or not codES or not codNUC then
		codProv, codMuni = string.match( id, ineMainRE .. '$' )
		if codProv and codMuni then
			codEC, codES, codNUC = '00', '00', '00'
		else
			codProv, codMuni = string.match( id, ineMainRE )
			codEC, codES, codNUC = '', '', ''
		end
	end
	if codProv and codMuni then
		link = 'http://www.ine.es/nomen2/inicio_a.do?accion=busquedaAvanzada&inicio=inicio_a&subaccion=&botonBusquedaAvanzada=Consultar+selecci%C3%B3n&numPag=0&ordenAnios=ASC&comunidad=00&entidad_amb=no&poblacion_amb=T&poblacion_op=%3D&poblacion_txt=&denominacion_op=like&denominacion_txt=&codProv=$1&codMuni=$2&codEC=$3&codES=$4&codNUC=$5'
		link = link:gsub('$1', codProv):gsub('$2', codMuni):gsub('$3', codEC):gsub('$4', codES):gsub('$5', codNUC)
		return generic( id, link, parameter )
	end
	return id
end

local function commonscat ( id, link, parameter )
	-- representación especial del enlace a las categorías de Commons, para mantener el formato de enlace interwiki
	local idlink = cleanLink( id, 'WIKI' )
	link = mw.ustring.gsub( link, '$1', idlink )
	return '<span class="plainlinks">[' .. link .. ' ' .. id .. ']</span>'
end

local function sisterprojects ( id, link, parameter )
	-- enlaces interproyecto
	local prefix = {
		-- Ejemplo: -- enwiki = 'w:en',
		commonswiki = 'c',
		eswikivoyage = 'voy',
		eswiktionary = 'wikt',
		eswikibooks = 'b',
		eswikinews = 'n',
		eswikiversity = 'v',
		eswikiquote = 'q',
		eswikisource = 's',
		mediawikiwiki = 'mw',
		metawiki = 'm',
		specieswiki = 'species',
	}
	if prefix[ parameter ] then
		return '[['..prefix[ parameter ]..':'..id..'|'..id..']]'
	end
	return false
end

local conf = {}
--In this order: name of the parameter, label, propertyId in Wikidata, formatting function, category id
-- -- name of the parameter: unique name
-- -- label: internal link in wiki format
-- -- propertyId in Wikidata: number without 'P' suffix
-- -- formatting function: one of these four options
-- -- -- local function (like 'generic')
-- -- -- string 'y' (yes), to show a default identifier 'ID'
-- -- -- string 'n' (no), to show the real identifier
-- -- -- any other string, to show this string as identifier ('id', 'url', 'link', ...)
-- -- category id: one of these tree options
-- -- -- number 0, to not add category
-- -- -- number 1, to add a category based on the name of the parameter
-- -- -- any string, to add a category based on this string
conf.databases = {}
conf.databases[1] =	{}
conf.databases[1].name = '[[Ayuda:Control d\'autoridaes|Control d\'autoridaes]]'
conf.databases[1].list = {
	{
		title = 'Proyeutos Wikimedia',
		group = {
			{ 'Wikidata', '[[Ficheru:Wikidata-logo.svg|20px|link=Wikidata|alt=Wd|Wikidata]] Datos', 'Wikidata:$1', 'n', 0 },
			{ 'Commonscat', '[[Ficheru:Commons-logo.svg|15px|link=Wikimedia Commons|alt=Commonscat|Commonscat]] Multimedia', 373, commonscat, 0 },
			-- { 'Wikivoyage', '[[Ficheru:Wikivoyage-logo.svg|15px|link=Wikiviaxes|alt=Wikivoyage|Wikivoyage]] Viaxes', 'eswikivoyage', sisterprojects, 0 },
			{ 'Wiktionary', '[[Ficheru:Wiktionary-logo.svg|15px|link=Wikcionariu|alt=Wiktionary|Wiktionary]] Diccionariu', 'eswiktionary', sisterprojects, 0 },
			{ 'Wikibooks', '[[Ficheru:Wikibooks-logo.svg|15px|link=Wikillibros|alt=Wikibooks|Wikibooks]] Llibros', 'eswikibooks', sisterprojects, 0 },
			-- { 'Wikinews', '[[Ficheru:Wikinews-logo.svg|20px|link=Wikinoticies|alt=Wikinews|Wikinews]] Noticies', 'eswikinews', sisterprojects, 0 },
			{ 'Wikiversity', '[[Ficheru:Wikiversity-logo.svg|15px|link=Wikiversidá|alt=Wikiversity|Wikiversity]] Recursos didácticos', 'eswikiversity', sisterprojects, 0 },
			{ 'Wikiquote', '[[Ficheru:Wikiquote-logo.svg|15px|link=Wikiquote|alt=Wikiquote|Wikiquote]] Cites famoses', 'eswikiquote', sisterprojects, 0 },
			{ 'Wikisource', '[[Ficheru:Wikisource-logo.svg|15px|link=Wikisource|alt=Wikisource|Wikisource]] Testos', 'eswikisource', sisterprojects, 0 },
			{ 'MediaWiki', '[[Ficheru:MediaWiki-2020-icon.svg|20px|link=MediaWiki|alt=MediaWiki|MediaWiki]] MediaWiki', 'mediawikiwiki', sisterprojects, 0 },
			{ 'Meta-Wiki', '[[Ficheru:Wikimedia Community Logo.svg|15px|link=Wikimedia Meta-Wiki|alt=Meta-Wiki|Meta-Wiki]] Coordinación', 'metawiki', sisterprojects, 0 },
			{ 'Wikispecies', '[[Ficheru:Wikispecies-logo.svg|15px|link=Wikispecies|alt=Wikispecies|Wikispecies]] Especies', 'specieswiki', sisterprojects, 0 },
		},
	},
	{
		title = 'Identificadores',
		group = {
			{ 'ISSN', '[[ISSN]]', 236, 'n', 1 },
			{ 'VIAF', '[[Virtual International Authority File|VIAF]]', 214, 'n', 1 },
			{ 'ISNI', '[[International Standard Name Identifier|ISNI]]', 213, 'n', 1 },

			{ 'BCN', '[[Biblioteca del Congresu de la Nación Arxentina|BCN]]', 2879, 'n', 1 },
			{ 'BNA', '[[Biblioteca Nacional de la República Arxentina|BNA]]', 3788, 'n', 1 },
			{ 'BNE', '[[Biblioteca Nacional d\'España|BNE]]', 950, 'n', 1 },
			{ 'BNF', '[[Bibliothèque nationale de France|BNF]]', 268, bnfLink, 1 },
			{ 'BNM', '[[Biblioteca Nacional de Méxicu|BNM]]', 4440, 'n', 1 },
			{ 'BNC', '[[Biblioteca Nacional de Chile|BNC]]', 1890, bncLink, 1 },
			{ 'CANTIC', '[[Biblioteca de Cataluña|CANTIC]]', 1273, 'n', 1 },
			{ 'GND', '[[Integrated Authority File|GND]]', 227, 'n', 1 },
			{ 'LCCN', '[[Library of Congress Control Number|LCCN]]', 244, 'n', 1 },
			{ 'NCL', '[[National Central Library|NCL]]', 1048, 'n', 0 },
			{ 'NDL', '[[National Diet Library|NDL]]', 349, 'n', 0 },
			{ 'NKC', '[[National Library of the Czech Republic|NKC]]', 691, 'n', 0 },
			{ 'NLA', '[[National Library of Australia|NLA]]', 409, 'n', 1 },
			{ 'RLS', '[[Biblioteca del Estáu Rusu|BER]]', 947, 'n', 0 },

			{ 'CINII', '[[CiNii]]', 271, 'n', 0 },
			{ 'NARA', '[[National Archives and Records Administration|NARA]]', 1225, 'n', 0 },
			{ 'LCCNLCOC', '[[Library of Congress Control Number|LCCN]]', 1144, 'n', 0 },
			{ 'SNAC', '[[d:Q29861311|SNAC]]', 3430, 'n', 1 },
			{ 'S2', '[[:d:Q22908627|S2]]', 4012, 'n', 0 },
			{ 'SUDOC', '[[Système universitaire de documentation|SUDOC]]', 269, 'n', 0 },
			{ 'ULAN', '[[Union List of Artist Names|ULAN]]', 245, 'n', 1 },
			{ 'ORCID', '[[ORCID]]', 496, 'n', 1 },
			-- { 'SELIBR', '[[LIBRIS|SELIBR]]', 906, 'n', 1 },
			{ 'BIBSYS', '[[BIBSYS]]', 1015, 'n', 1 },
			{ 'UB', '[[Universidá de Barcelona|UB]]', 1580, 'n', 1 },
			{ 'IPNIaut', '[[Índiz Internacional de Nomes de les Plantes|IPNI]]', 586, 'n', 'IPNI' },
			{ 'MGP', '[[Mathematics Genealogy Project|MGP]]', 549, 'n', 0 },
			{ 'autores.uy', '[[autores.uy]]', 2558, 'n', 1 },
			{ 'Slovenska biografija', '[[:d:Q15975890|Slovenska biografija]]', 1254, 'n', 0 },
			{ 'SBN', '[[Istituto Centrale per il Catalogo Unico|ICCU]]', 396, 'n', 1 },

			{ 'CCBAE', '[[:d:Q61505171|CCBAE]]', 6493, 'n', 1 },
			-- { 'DIR3', '[[Direutoriu Común d'Unidaes Orgániques y Oficines|DIR3]]', 6222, 'n', 1 },
			{ 'CensoGuia', '[[Censu-Guía d\'Archivos d\'España ya Iberoamérica]]', 3998, 'n', 'Censu-Guía' },
			{ 'Libraries.org', '[[Libraries.org]]', 4848, 'n', 1 },
			{ 'Direutoriu de Museos y Coleiciones d\'España', '[[:d:Q56246649|Direutoriu de Museos y Coleiciones d\'España]]', 5763, 'n', 1 },
			{ 'SUCA', '[[SUCA]]', 5946, 'n', 1 },

			{ 'BOE', '[[Boletín Oficial del Estáu|BOE]]', 4256, 'n', 1 },

			{ 'RoyalSociety', '[[Royal Society]]', 2070, 'url', 'Royal Society' },
			{ 'HAW', '[[Academia de Ciencies y Humanidaes de Heidelberg|HAW]]', 2273, 'n', 1 },
			{ 'SAW', '[[Academia Saxona de Ciencies de Leipzig|SAW]]', 3411, 'n', 1 },
			{ 'KNAW', '[[Real Academia d\'Artes y Ciencies de los Países Baxos|KNAW]]', 2454, 'n', 1 },
			-- { 'KVAB', '[[Real Academia Flamenca de Ciencies y Artes de Bélxica|KVAB]]', 3887, 'n', 1 },
			{ 'Leopoldina', '[[Deutsche Akademie der Naturforscher Leopoldina|Leopoldina]]', 3413, 'n', 1 },
			{ 'CONICET', '[[CONICET]]', 3900, 'n', 1 },
			{ 'Grierson', '[[Direutoriu de científicos arxentinos Dra. Grierson|Grierson]]', 3946, 'n', 1 },
			{ 'RANM', '[[Real Academia Nacional de Medicina|RANM]]', 3945, 'n', 1 },
			-- { 'ANMF', '[[Académie Nationale de Médecine|ANMF]]', 3956, 'n', 1 },
			{ 'Léonore', '[[Base Léonore|Léonore]]', 640, 'n', 0 },
			{ 'USCongress', '[[Biographical Directory of the United States Congress|US Congress]]', 1157, 'n', 0 },
			{ 'BPN', '[[Biografisch Portaal|BPN]]', 651, 'n', 1 },

			-- { 'ISCO', '[[d:Q1233766|ISCO]]', 952, 'n', 1 },
			{ 'AAT', '[[Art & Architecture Thesaurus|AAT]]', 1014, 'n', 1 },
			{ 'OpenLibrary', '[[Open Library]]', 648, 'n', 'Open Library' },
			{ 'PARES', '[[PARES]]', 4813, 'n', 1 },
			{ 'SSRN', '[[Social Science Research Network|SSRN]]', 3747, 'n', 'SSRN autor' },
			{ 'SIKART', '[[SIKART]]', 781, 'n', 0 },
			{ 'KULTURNAV', '[[KulturNav]]', 1248, 'id', 0 },
			{ 'RKDartists', '[[Rijksbureau voor Kunsthistorische Documentatie|RKD]]', 650, 'n', 1 },
			{ 'GoogleScholar', '[[Google Académicu]]', 1960, 'n', 'Google Académicu' },
			{ 'RID', '[[ResearcherID]]', 1053, 'n', 1 },
			{ 'NLM', '[[Biblioteca Nacional de Medicina de los Estaos Xuníos|NLM]]', 1055, 'n', 1 },
			{ 'Latindex', '[[Latindex]]', 3127, 'n', 1 },
			{ 'ERIH PLUS', '[[ERIH PLUS]]', 3434, 'n', 1 },
			{ 'IPNIpub', '[[Índiz Internacional de Nomes de les Plantes|IPNI]]', 2008, 'n', 1 },
			{ 'SUDOCcat', '[[Système universitaire de documentation|SUDOC]]', 1025, 'n', 'SUDOC catálogu' },
			{ 'ZDB', '[[Zeitschriftendatenbank|ZDB]]', 1042, 'n', 1 },
			{ 'NorwegianRegister', '[[Norsk senter for forskningsdata|Norwegian Register]]', 1270, 'n', 'Norwegian Register' },
			{ 'DOAJ', '[[Directory of Open Access Journals|DOAJ]]', 5115, 'n', 1 },
			{ 'ACNP', '[[Archivio collettivo nazionale dei periodici|ACNP]]', 6981, 'n', 1 },
			{ 'DipFedBra', '[[Cámara de Diputaos de Brasil]]', 7480, 'n', 1 },			
			{ 'HCDN', '[[Cámara de Diputaos de la Nación Arxentina|Estadístiques HCDN]]', 4693, 'n', 1 },
			{ 'HCDNbio', '[[Cámara de Diputaos de la Nación Arxentina|Biografía HCDN]]', 5225, 'n', 1 },
			{ 'Direutoriu Llexislativu', 'Direutoriu Llexislativu', 6585, 'n', 0 },
			-- { 'Llexislatura CABA', '[[Llexislatura de la Ciudá de Buenos Aires|Llexislatura CABA]]', 4667, 'n', 1 },
			{ 'Asamblea de Madrid', '[[Asamblea de Madrid]]', 4797, 'n', 1 },
			{ 'BCNCL', '[[Biblioteca del Congresu Nacional de Chile|Biografíes BCN]]', 5442, 'url', 0 },
			{ 'RBD', '[[Ministeriu d\'Educación de Chile|RBD MINE|RBD MINEDUC]]', 1919, 'n', 0 },
			{ 'TA98', '[[Terminoloxía Anatómica|TA]]', 1323, 'n', 1 },
			{ 'CineChile', 'CineChile', 6750, 'url', 0 },
			{ 'Tebeosfera-autor', '[[Tebeosfera]]', 5562, 'n', 1 },
			{ 'DPRR', 'DPRR', 6863, 'n', 0},
		},
	},
	{
		title = 'Diccionarios y enciclopedies',
		group = {
			{ 'Auñamendi', '[[Enciclopedia Auñamendi|Auñamendi]]', 3218, 'n', 1 },
			{ 'GEA', '[[Gran Enciclopedia Aragonesa|GEA]]', 1807, 'n', 1 },
			{ 'DBSE', '[[Diccionariu biográficu del socialismu español|DBSE]]', 2985, 'url', 1 },
			{ 'DBE', '[[Diccionariu biográficu español|DBE]]', 4459, 'url', 1 },
			{ 'HDS', '[[Historical Dictionary of Switzerland|HDS]]', 902, 'n', 0 },
			{ 'LIR', '[[Diccionariu históricu de Suiza|LIR]]', 886, 'n', 0 },
			{ 'TLS', '[[Theaterlexikon der Schweiz|TLS]]', 1362, 'n', 0 },
			{ 'Britannica', '[[Enciclopedia Británica|Britannica]]', 1417, 'url', 0 },
		},
	},
	{
		title = 'Almacenes dixitales',
		group = {
			{ 'PerséeRevista', '[[Persée (portal)|Persée]]', 2733, 'n', 'Persée revista' },
			{ 'DialnetRevista', '[[Dialnet]]', 1609, 'n', 'Dialnet revista' },
			{ 'Redalyc', '[[Redalyc]]', 3131, 'n', 1 },
			-- { 'UNZrevista', '[[UNZ.org|UNZ]]', 2735, 'n', 0 },
			-- { 'JSTORrevista', '[[JSTOR]]', 1230, 'n', 'JSTOR revista' },
			{ 'HathiTrust', '[[HathiTrust]]', 1844, 'n', 1 },
			{ 'Galicianaobra', '[[Galiciana]]', 3004, 'n', 'Galiciana obra' },
			{ 'Trove', '[[Trove]]', 5603, 'n', 1 },
			{ 'BVMCobra', '[[Biblioteca Virtual Miguel de Cervantes|BVMC]]', 3976, 'n', 'BVMC obra' },
			{ 'BVMCpersona', '[[Biblioteca Virtual Miguel de Cervantes|BVMC]]', 2799, 'n', 'BVMC persona' },
			{ 'Persée', '[[Persée (portal)|Persée]]', 2732, 'n', 1 },
			{ 'Dialnet', '[[Dialnet]]', 1607, 'n', 1 },
			{ 'GutenbergAutor', '[[Proyeutu Gutenberg]]', 1938, 'n', 'Proyeutu Gutenberg autor' },
			{ 'BHL-bibliografia', '[[Biodiversity Heritage Library|BHL]]', 4327, 'n', 0 },			
			-- { 'UNZautor', '[[UNZ.org|UNZ]]', 2734, 'n', 'UNZ' },
			
			{ 'BDCYL', '[[Biblioteca Dixital de Castiella y Lleón|BDCYL]]', 3964, 'n', 1 },
			{ 'BVPB', '[[d:Q18596294|BVPB]]', 4802, 'n', 1 },
			{ 'BIDICAM', '[[d:Q61500710|BIDICAM]]', 6490, 'n', 1 },	
			{ 'BVANDALUCIA', '[[Biblioteca Virtual d\'Andalucía|BVA]]', 6496, 'n', 1 },				
			{ 'BVPHautoridad', '[[Biblioteca Virtual de Prensa Histórica|BVPH]]', 6492, 'n', 1 },					
			{ 'BivaldiAutor', '[[Biblioteca Valenciana Dixital|BiValDi]]', 3932, 'n', 'Bivaldi autor' },
			{ 'GalicianaAutor', '[[Galiciana]]', 3307, 'n', 'Galiciana autor' },
			
			{ 'Europeana', '[[Europeana]]', 727, 'url', 1 },
			{ 'DOI', '[[Identificador d\'oxetu dixital|DOI]]', 356, 'n', 1 },
			{ 'Handle', '[[Sistema Handle|Handle]]', 1184, 'url', 1 },
			{ 'MNCARS', '[[Muséu Nacional Centru d\'Arte Reina Sofía|MNCARS]]', 4439, 'url', 1 },
			{ 'MuseoDelPrado', '[[Muséu del Prado]]', 5321, 'n', 'Muséu del Prado' },
			{ 'Billboard', '[[Billboard]]', 4208, 'n', 0},
		},
	},
	{
		title = 'Hemeroteques dixitales',
		group = {
			{ 'HemBNE', '[[Hemeroteca Dixital de la Biblioteca Nacional d\'España|Hemeroteca dixital de la BNE]]', 2768, 'n', 1 },
			{ 'BVPH', '[[Biblioteca Virtual de Prensa Histórica]]', 2961, 'n', 1 },
			{ 'Memoriademadrid', '[[Memoriademadrid]]', 7372, 'n', 1 },
		},
	},
{
		title = 'Astronomía',
		group = {
			{ 'Simbad', '[[SIMBAD]]', 3083, 'n', 0 },
			{ 'JPL-Small-Body-Database', '[[JPL Small-Body Database|JPL]]', 716, 'n', 0 },
			{ 'MPC', '[[Centru de Planetes Menores|MPC]]', 5736, 'n', 0 },
			{ 'NASA-Exoplanet-Archive', '[[NASA Exoplanet Archive]]', 5667, 'n', 0 },			
			{ 'GazPlaNom', '[[Gazetteer of Planetary Nomenclature]]', 2824, 'n', 0 },
		},
	},
	{
		title = 'Llugares',
		group = {
			{ 'OSM', '[[OpenStreetMap|OSM]]', 402, 'n', 'Rellación OSM' },
			{ 'TGN', '[[Getty Thesaurus of Geographic Names|TGN]]', 1667, 'n', 1 },
			{ 'AtlasIR', '[[:d:Q24575107|Atles Dixital del Imperiu Romanu]]', 1936, 'n', 0 },
			{ 'Pleiades', '[[:d:Q24423804|Pleiades]]', 1584, 'n', 0 },
			{ 'TmGEO', '[[:d:Q22094624|Trismegistos GEO]]', 1958, 'n', 0 },
			{ 'SNCZI-IPE-EMBALSE', '[[Sistema Nacional de Cartografía de Zones Inundables|SNCZI]]-[[Inventariu de Preses y Banzaos d\'España|IPE]]', 4568, 'n', 'SNCZI-IPE banzáu' },
			{ 'SNCZI-IPE-PRESA', '[[Sistema Nacional de Cartografía de Zones Inundables|SNCZI]]-[[Inventariu de Preses y Banzaos d\'España|IPE]]', 4558, 'n', 'SNCZI-IPE presa' },
			{ 'NATURA2000', '[[Red Natura 2000|Natura 2000]]', 3425, 'n', 'Natura 2000' },
			{ 'WWF', '[[Fondu Mundial para la Naturaleza|WWF]]', 1294, 'n', 1 },
			{ 'IDESCAT', '[[Institutu d\'Estadística de Cataluña|IDESCAT]]', 4335, 'n', 1 },
			{ 'INE', '[[Institutu Nacional d\'Estadística (España)|INE]]', 772, ineLink, 1 },
			{ 'INE Portugal', '[[Institutu Nacional d\'Estadística (Portugal)|INE]]', 6324, 'n', 1 },
			{ 'IBGE', '[[Instituto Brasileiro de Geografia e Estatística|IBGE]]', 1585, 'n', 1 },
			{ 'INSEE-commune', '[[Institut National de la Statistique et des Études Économiques|INSEE]]', 374, 'n', 'INSEE (comuña)' },
		    { 'INSEE-departamento', '[[Institut National de la Statistique et des Études Économiques|INSEE]]', 2586, 'n', 'INSEE (departamentu)' },
			{ 'INSEE-region', '[[Institut National de la Statistique et des Études Économiques|INSEE]]', 2585, 'n', 'INSEE (rexón)' },
			{ 'INSEE-canton', '[[Institut National de la Statistique et des Études Économiques|INSEE]]', 2506, 'n', 'INSEE (cantón)' },
			{ 'SIRUTA', '[[SIRUTA]]', 843, 'n', 1 },
			{ 'LAU', '[[Unidá alministrativa llocal|LAU]]', 782, 'n', 1 },
			{ 'KSH', '[[Központi Statisztikai Hivatal|KSH]]', 939, 'n', 1 },
			{ 'OKATO', '[[OKATO]]', 721, 'n', 1 },
			{ 'OSTAT', '[[Statistik Austria|ÖSTAT]]', 964, 'n', 'ÖSTAT-Nr'},
		},
	},
	{
		title = 'Arquiteutura',
		group = {
			{ 'DocomomoIberico', '[[Fundación Docomomo Ibéricu|Docomomo Ibéricu]]', 3758, 'n', 'Docomomo Ibéricu' },
			{ 'COAMinmueble', '[[Colexu Oficial d\'Arquitectos de Madrid|COAM]]', 2917, 'n', 'COAM inmueble' },
			{ 'COAMpersona', '[[Colexu Oficial d\'Arquitectos de Madrid|COAM]]', 4488, 'n', 'COAM persona' },
		},
	},
	{
		title = 'Faros',
		group = {
			{ 'ARHLS', '[[Amateur Radio Lighthouse Society|ARHLS]]', 2980, 'n', 0 },
			{ 'NGA', '[[Axencia Nacional d\'Intelixencia-Xeoespacial|NGA]]', 3563, 'n', 0 },
			{ 'UKHO', '[[Institutu Hidrográficu del Reinu Xuníu|UKHO]]', 3562, 'n', 0 },
			{ 'MarineTraffic', '[[MarineTraffic]]', 3601, 'n', 0 },
			{ 'OnlineListofLights', '[[Online List of Lights]]', 3223, 'n', 0 },			
		},
	},
	{
		title = 'Patrimoniu históricu',
		group = {
			{ 'World Heritage Site', '[[Patrimoniu de la Humanidá]]', 757, 'n', 'Centru del Patrimoniu Mundial' },
			{ 'CNMLBH', '[[Comisión Nacional de Monumentos, de Llugares y de Bienes Históricos|CNMLBH]]', 4587, 'n', 'cnmlbh' },
			{ 'IGESPAR', '[[Instituto de Gestão do Património Arquitetónico e Arqueológico|IGESPAR]]', 1702, 'n', 1 },
			{ 'SIPA', '[[Sistema de Informação para o Património Arquitetónico|SIPA]]', 1700, 'n', 1 },
			{ 'Infopatrimonio', '[[Infopatrimônio]]', 4372, 'n', 'Infopatrimônio' },
			{ 'AustriaObjektID', '[[Austria ObjektID]]', 2951,  'n', 'Austria ObjektID' },
			{ 'FBBID', '[[Fredede og Bevaringsværdige Bygninger|FBB]]', 2783,  'n', 'FBB' },
			{ 'Fornminnesregistret', '[[Fornminnesregistret|FMIS]]', 1260,  'n', 'FMIS' },
			{ 'BerlinerKulturdenkmal', 'Berliner Kulturdenkmal', 2424, 'n', 'Berliner Kulturdenkmal' },
			{ 'NHLE', '[[National Heritage List for England|NHLE]]', 1216, 'n', 1 },
			{ 'NRHP', '[[Rexistru Nacional de Llugares Históricos|NRHP]]', 649, 'n', 1 },
			{ 'KULTURMINNE', '[[Riksantikvaren|Kulturminne]]', 758, 'n', 'Kulturminne' },
			{ 'CRHP', '[[Canadian Register of Historic Places|CRHP]]', 477, 'n', 1 },
			{ 'MERIMEE', '[[Base Mérimée|Mérimée]]', 380, 'n', 'Mérimée' },
			{ 'CADW', '[[Cadw]]', 1459, 'n', 'Cadw' },
			{ 'Památkový Katalog', '[[Památkový katalog]]', 762, 'n', 'Památkový katalog' },
			{ 'PatrimonioIran', 'Patrimoniu Nacional d\'Irán', 1369, 'n', 'Patrimoniu Nacional d\'Irán' },
			{ 'Rijksmonument', 'Rijksmonument', 359, 'n', 'Rijksmonument' },
			{ 'BIC', '[[Bien d\'Interés Cultural (España)|BIC]]', 808, 'n', 1 },
			{ 'BCIN', '[[Bien Cultural d\'Interés Nacional|BCIN]]', 1586, 'n', 1 },
			{ 'IPAC', '[[Inventariu del Patrimoniu Arquiteutónicu de Cataluña|IPAC]]', 1600, 'n', 1 },
			{ 'IGPCV', '[[Inventariu Xeneral del Patrimoniu Cultural Valencianu|IGPCV]]', 2473, 'n', 1 },
			{ 'BDI-IAPH', '[[Institutu Andaluz del Patrimoniu Históricu|IAPH]]', 3318, 'n', 1 },
			{ 'SIPCA', '[[SIPCA]]', 3580, 'n', 1 },
			{ 'PWJCYL', '[[Xunta de Castiella y Llión|Patrimoniy Web XCyL]]', 3177, 'n', 'Patrimoniu Web XCyL' },
			{ 'CPCCLM', '[[Catálogu de Patrimoniu Cultural de Castiella-La Mancha]]', 6539, 'n', 1 },			
			{ 'HispaniaNostra', '[[Llista roxa de patrimoniu en peligru|Llista Roxa Hispania Nostra]]', 4868, 'url', 'Llista Roxa Hispania Nostra' },
			{ 'HGC', '[[Heritage Gazetteer for Cyprus]]', 6916, 'n', 1 },	
			{ 'HGL', '[[Heritage Gazetteer of Libya]]', 6751, 'n', 1 },
		},
	},
	{
		title = 'Deportistes',
		group = {
			{ 'COI', '[[Comité Olímpicu Internacional|COI]]', 3171, 'n', 0 },
			{ 'IAAF', '[[Asociación Internacional de Federaciones d\'Atletismu|IAAF]]', 1146, 'n', 0 },
		},
	},
	{
		title = 'Bases de datos taxonómiques',
		group = {
			{ 'Algabase', '[[AlgaeBase]]', 1348, 'n', 0 },
			{ 'ADW', '[[Animal Diversity Web|ADW]]', 4024, 'n', 0 },
			{ 'AmphibiaWeb', '[[AmphibiaWeb]]', 5036, 'n', 0 },
			{ 'BOLD', '[[BOLD]]', 3606, 'n', 0 },
			{ 'APD', 'African Plant DB', 2036, 'n', 0 },
			{ 'Avibase', '[[Avibase]]', 2026, 'n', 0 },
			{ 'BHL', '[[Biodiversity Heritage Library|BHL]]', 687, 'n', 0 },
			{ 'BioLib', 'BioLib', 838, 'n', 0 },
			{ 'BirdLife', '[[BirdLife International|BirdLife]]', 5257, 'n', 0 },
			{ 'CatalogueOfLife', '[[Catalogue of Life]]', 3088, 'n', 0 },
			{ 'CONABIO', [[CONABIO]], 4902, 'n', 0 },
			{ 'Dyntaxa', 'Dyntaxa', 1939, 'n', 0 },
			{ 'eBird', '[[eBird]]', 3444, 'n', 0 },
			{ 'EOL', '[[Encyclopedia of life|EOL]]', 830, 'n', 0 },
			{ 'FaunaEuropaea', '[[Fauna Europaea]]', 1895, 'n', 0 },
			{ 'FishBase', '[[FishBase]]', 938, 'n', 0 },
			{ 'FOC', '[[Flora of China|Fl. China]]', 1747, 'n', 0 },
			{ 'GBIF', '[[Global Biodiversity Information Facility|GBIF]]', 846, 'n', 0 },
			{ 'GlobalSpecies', '[[GlobalSpecies]]', 6433, 'n', 0 },
			{ 'GRIN', '[[Germplasm Resources Information Network|GRIN]]', 1421, 'n', 0 },
			{ 'IBC', [[Internet Bird Collection|IBC]], 3099, 'n', 0 },
			{ 'IndexFungorum', '[[Index Fungorum]]', 1391, 'n', 0 },
			{ 'IOBIS', '[[OBIS]]', 6754, 'n', 0 },
			{ 'IPNI', '[[Índiz Internacional de Nomes de les Plantes|IPNI]]', 961, 'n', 0 },
			{ 'ITIS', '[[Sistema Integráu d\'Información Taxonómica|ITIS]]', 815, 'n', 0 },
			{ 'UICN', '[[Xunión Internacional pal Caltenimientu de la Naturaleza|UICN]]', 627, 'n', 0 },
			{ 'MSW', '[[Mammal Species of the World|MSW]]', 959, 'n', 0 },
			{ 'MycoBank', '[[MycoBank]]', 962, 'n', 0 },
			{ 'NCBI', '[[Centru Nacional pa la Información Bioteunolóxica|NCBI]]', 685, 'n', 0 },
			{ 'FossilWorks', '[[Paleobiology Database]]', 842, 'n', 0 },
			{ 'PlantList', '[[The Plant List|PlantList]]', 1070, 'n', 0 },
			{ 'SpeciesPlus', 'Species+', 2040, 'n', 0 },
			{ 'Taxonomicon', '[[Taxonomicon]]', 7066, 'n', 0 },
			{ 'Tropicos', 'W3TROPICOS', 960, 'n', 0 },
			{ 'USDAP', '[[Departamentu d\'Agricultura de los Estaos Xuníos|USDA Plants]]', 1772, 'n', 0 },
			{ 'VASCAN', 'VASCAN', 1745, 'n', 0 },
			{ 'WoRMS', '[[Rexistru Mundial d\'Especies Marines|WoRMS]]', 850, 'n', 0 },
			{ 'uBio', 'uBio', 4728, 'n', 0 },
			{ 'Xeno-canto', '[[Xeno-canto]]', 2426, 'n', 0 },
			{ 'Zoobank', '[[Zoobank]]', 1746, 'n', 0 },
		},
	},
	{
		title = 'Identificadores médicos',
		group = {
			{ 'DOID', '[[DOID]]', 699, 'n', 0 },
			{ 'CIE9', '[[CIE-9]]', 493, 'n', 0 },
			{ 'CIE10', '[[CIE-10]]', 494, 'n', 0 },
			{ 'CIE9MC', '[[CIE-9-MC]]', 1692, 'n', 0 },
			{ 'CIE10MC', '[[CIE-10-MC]]', 4229, 'n', 0 },
			{ 'CIEO', '[[CIE-O]]', 563, 'n', 0 },
			{ 'CIAP2', '[[Clasificación Internacional d\'Atención Primaria|CIAP-2]]', 667, 'n', 0 },
			{ 'OMIM', '[[Herencia Mendeliana nel Home|OMIM]]', 492, 'n', 0 },
			{ 'DSM IV', '[[Manual diagnósticu y estadísticu de los trestornos mentales|DSM IV]]', 663, 'n', 0 },
			{ 'DSM 5', '[[DSM 5|DSM-5]]', 1930, 'n', 0 },
			{ 'DiseasesDB', '[[Diseases Database|DiseasesDB]]', 557, 'n', 0 },
			{ 'MedlinePlus', '[[MedlinePlus]]', 604, 'n', 0 },
			{ 'eMedicine', '[[eMedicine]]', 673, 'n', 0 },
			{ 'MeSH', '[[Medical Subject Headings|MeSH]]', 486, 'n', 0 },
			{ 'Orphanet', '[[Orphanet]]', 1550, 'n', 0 },
			{ 'TA98', '[[Terminoloxía Anatómica|TA]]', 1323, 'n', 1 },
			{ 'FMA', '[[Foundational Model of Anatomy|FMA]]', 1402, 'n', 0 },
			{ 'UMLS', 'UMLS', 2892, 'n', 0 },
			{ 'GeneReviews', '[[GeneReviwes]]', 668, 'n', 0 },
		}
	},
	{
		title = 'Identificadores químicos',
		group = {
			{ 'CAS', '[[Númberu CAS]]', 231, 'n', 0 },
			{ 'ATC', '[[Códigu ATC]]', 267, 'n', 0 },
			{ 'RTECS', '[[RTECS]]', 657, 'n', 0 },
			{ 'ChEBI', '[[ChEBI]]', 683, 'n', 0 },
			{ 'ChEMBL', '[[ChEMBL]]', 592, 'n', 0 },
			{ 'ChemSpider', '[[ChemSpider]]', 661, 'n', 0 },
			{ 'DrugBank', '[[DrugBank]]', 715, 'n', 0 },
			{ 'PubChem', '[[PubChem]]', 662, 'n', 0 },
			{ 'UNII', '[[Unique Ingredient Identifier|UNII]]', 652, 'n', 0 },
			{ 'KEGG', '[[KEGG]]', 665, 'n', 0 },
			{ 'SMILES', '[[SMILES]]', 233, 'y', 0 },
			{ 'InChI', '[[International Chemical Identifier|InChI]]', 234, 'y', 0 },
			{ 'InChIKey', '[[InChI key]]', 235, 'y', 0 },
		}
	},
	{
		title = 'Identificadores biolóxicos',
		group = {
			{ 'MGI', '[[Mouse Genome Informatics|MGI]]', 231, 'n', 0 },
			{ 'HomoloGene', '[[HomoloGene]]', 593, 'n', 0 },
		}
	}
}
-- -- Example row: --
-- conf.databases[2] = {}
-- conf.databases[2].name = 'External links'
-- conf.databases[2].list = {
-- 	{
-- 		title = '',
-- 		group = {
-- 			{ 'Website', 'Website', 856, 'n', 0 },
-- 		},
-- 	},
-- }

--In this order: alternate name, name of parameter from databases table
conf.aliases = {
	{ 'Wd', 'Wikidata' },
	{ 'PND', 'GND' },
	{ 'Commonscat', 'Commons' },
}

local function getCatForId( parameter, category )
	local title = mw.title.getCurrentTitle()
	local namespace = title.namespace
	if category == 0 then
		return ''
	elseif category == 1 then
		category = parameter
	end
	if namespace == 0 then
		return '[[Categoría:Wikipedia:Artículos con identificadores ' .. category .. ']]\n'
	elseif namespace == 2 and not title.isSubpage then
		return '[[Categoría:Wikipedia:Páxines d\'usuariu con identificadores ' .. category .. ']]\n'
	else
		return '[[Categoría:Wikipedia:Páxines con identificadores ' .. category .. ']]\n'
	end
end

local function getIdsFromSitelinks( item, property )
	local ids = {}
	if item and item.sitelinks and item.sitelinks[ property ] then
		table.insert( ids, item.sitelinks[ property ].title )
	end
	return ids
end

local function getIdsFromWikidata( item, property )
	local ids = {}
	if not item.claims[property] then
		return ids
	end
	for _, statement in pairs( item:getBestStatements( property )) do
		if statement.mainsnak.datavalue then
			table.insert( ids, statement.mainsnak.datavalue.value )
		end
	end
	return ids
end

local function getLink( property, val, mask )
	local link = ''
	if mw.ustring.find( val, '//' ) then
		link = val
	else
		if type(property) == 'number' then
			local entityObject = mw.wikibase.getEntityObject('P'..property)
			local dataType = entityObject.datatype
			if dataType == 'external-id' then
				local allStatements = entityObject:getBestStatements('P1630')
				if allStatements then
					for pos = 1, #allStatements, 1 do
						local q = allStatements[pos].qualifiers
						if q and q.P407 and q.P407[1].datavalue and q.P407[1].datavalue.value.id == 'Q1321' then
							link = allStatements[pos].mainsnak.datavalue.value
						end
					end
				end
				if link == '' then
					local formatterURL = entityObject:getBestStatements('P1630')[1]
					if formatterURL then
						link = formatterURL.mainsnak.datavalue.value
					else
						local formatterURL = entityObject:getBestStatements('P3303')[1]
						if formatterURL then link = formatterURL.mainsnak.datavalue.value end
					end
				end
			elseif dataType == 'url' then
				local subjectItem = entityObject:getBestStatements('P1629')[1]
				if subjectItem then
					local officialWebsite = mw.wikibase.getBestStatements(subjectItem.mainsnak.datavalue.value.id, 'P856')[1]
					if officialWebsite then
						link = officialWebsite.mainsnak.datavalue.value 
					end
				end
			elseif dataType == 'string' then
				local formatterURL = entityObject:getBestStatements('P1630')[1]
				if formatterURL then
					link = formatterURL.mainsnak.datavalue.value
				else
					local formatterURL = entityObject:getBestStatements('P3303')[1]
					if formatterURL then
						link = formatterURL.mainsnak.datavalue.value
					else
						local subjectItem = entityObject:getBestStatements('P1629')[1]
						if subjectItem then
							local officialWebsite = mw.wikibase.getBestStatements(subjectItem.mainsnak.datavalue.value.id,'P856')[1]
							if officialWebsite then
								link = officialWebsite.mainsnak.datavalue.value
							end
						end
					end
				end
			end
		elseif type(property) == 'string' then
			link = property
		end
	end
	link = mw.ustring.gsub(link, '^[Hh][Tt][Tt][Pp]([Ss]?)&#58;//', 'http%1://') -- fix wikidata URL
	if type(mask) == 'function' then
		return mask( val, link, property )
	end
	link = mw.ustring.gsub(link, '$1', mw.ustring.gsub( mw.ustring.gsub( val, '%%', '%%%%' ), ' ', '%%%%20' ) or val )
	if mw.ustring.find( link, '//' ) then
		if type(mask) == 'string' then
			link = cleanLink( link, 'PATH' )
			if mask == 'y' then
				return '['..link..' ID]'
			elseif mask == 'n' then
				return '['..link..' '..val..']'
			end
			return '['..link..' '..mask..']'
		end
	elseif link == '' then
		return val
	else
		return '[['..link..'|'..val..']]'
	end
end

local function createRow( id, label, rawValue, link, withUid )
	if link then
		if label and label ~= '' then label = '<span style="white-space:nowrap;">'..label  .. ':</span> ' end
		if withUid then
			return '* ' .. label .. '<span class="uid">' .. link .. '</span>\n'
		else
			return '* ' .. label .. link .. '\n'
		end
	else
		return '* <span class="error">El ' .. id .. ' id ' .. rawValue .. ' nun ye válidu</span>[[Categoría:Wikipedia:Páxines con problemes nel control d\'autoridaes]]\n'
	end
end

local function copyTable(inTable)
	if type(inTable) ~= 'table' then return inTable end
	local outTable = setmetatable({}, getmetatable(inTable))
	for key, value in pairs (inTable) do outTable[copyTable(key)] = copyTable(value) end
	return outTable
end

local function splitLccn( id )
	if id:match( '^%l%l?%l?%d%d%d%d%d%d%d%d%d?%d?$' ) then
		id = id:gsub( '^(%l+)(%d+)(%d%d%d%d%d%d)$', '%1/%2/%3' )
	end
	if id:match( '^%l%l?%l?/%d%d%d?%d?/%d+$' ) then
		return mw.text.split( id, '/' )
	end
	return false
end

local p = {}

function p.authorityControl( frame )
	local parentArgs = copyTable(frame:getParent().args)
	local stringArgs = false
	local fromForCount, itemCount, rowCount = 1, 0, 0
	local mobileContent = ''
	--Cleanup args
	for k, v in pairs( frame:getParent().args ) do
		if type(k) == 'string' then
			--make args case insensitive
			local lowerk = mw.ustring.lower(k)
			if not parentArgs[lowerk] or parentArgs[lowerk] == '' then
				parentArgs[lowerk] = v
				parentArgs[k] = nil
			end
			--remap abc to abc1
			if not mw.ustring.find(lowerk, '%d$') then --if no number at end of param
				if not parentArgs[lowerk..'1'] or parentArgs[lowerk..'1'] == '' then
					parentArgs[lowerk..'1'] = v
					parentArgs[lowerk] = nil
				end
			end
			if v and v ~= '' then
				--find highest from param
				if mw.ustring.sub(lowerk,1,4) == 'from' then
					local fromNumber = tonumber(mw.ustring.sub(lowerk,5,-1))
					if fromNumber and fromNumber >= fromForCount then fromForCount = fromNumber end
				elseif mw.ustring.sub(lowerk,1,3) == 'for' then
					local forNumber = tonumber(mw.ustring.sub(lowerk,4,-1))
					if forNumber and forNumber >= fromForCount then fromForCount = forNumber end
				elseif mw.ustring.lower(v) ~= 'no' and lowerk ~= 'for' then
					stringArgs = true
				end
			end
		end
	end

	--Setup navbox
	local navboxParams = {
		name  = 'Control d\'autoridaes',
		bodyclass = 'hlist',
		groupstyle = 'width: 12%; text-align:center;',
	}
	for f = 1, fromForCount, 1 do
		local title = {}
		--cleanup parameters
		if parentArgs['from'..f] == '' then parentArgs['from'..f] = nil end
		if parentArgs['for'..f] == '' then parentArgs['for'..f] = nil end
		--remap aliases
		for _, a in pairs( conf.aliases ) do
			local alias, name = mw.ustring.lower(a[1]), mw.ustring.lower(a[2])
			if parentArgs[alias..f] and not parentArgs[name..f] then
				parentArgs[name..f] = parentArgs[alias..f]
				parentArgs[alias..f] = nil
			end
		end

		--Fetch Wikidata item
		local item = mw.wikibase.getEntity(parentArgs['from'..f])
		local label = item and item:getLabel()
		if label and label ~= '' then
			title = mw.title.new(label)
			if not title then title = mw.title.getCurrentTitle() end
		else
			title = mw.title.getCurrentTitle()
		end

		if (not parentArgs['wikidata'..f] or parentArgs['wikidata'..f] == '') and (title.namespace == 0) then
			parentArgs['wikidata'..f] = parentArgs['from'..f] or (item and item.id) or ''
		end
		if title.namespace == 0 or stringArgs then --Only in the main namespace or if there are manual overrides

			if fromForCount > 1 and #conf.databases > 1 then
				if parentArgs['for'..f] and parentArgs['for'..f] ~= '' then
					navboxParams['list'..(rowCount + 1)] = "'''" .. parentArgs['for'..f] .. "'''"
				else
					navboxParams['list'..(rowCount + 1)] = "'''" .. title.text .. "'''"
				end
				navboxParams['list'..(rowCount + 1)..'style'] = 'background-color: #ddf;'
				rowCount = rowCount + 1
			end
			for _, db in pairs( conf.databases ) do
				if db.list and #db.list > 0 then
					local listElements = {}
					for n, gr in pairs( db.list ) do
						local groupElements = {}
						if gr.group and #gr.group > 0 then
							for _, params in pairs( gr.group ) do
								local id = mw.ustring.lower( params[1] )
								-- Wikidata fallback if requested
								if (item ~= nil and item.claims ~= nil) and params[3] ~= 0 and (not parentArgs[id..f] or parentArgs[id..f] == '') then
									local wikidataIds = {}
									if type( params[3] ) == 'string' then
										wikidataIds = getIdsFromSitelinks( item, params[3] )
									else
										wikidataIds = getIdsFromWikidata( item, 'P' .. params[3] )
									end
									if wikidataIds[1] then
										parentArgs[id..f] = wikidataIds[1]
									end
								end
								-- Worldcat
								if id == 'issn' and parentArgs['worldcatid'..f] and parentArgs['worldcatid'..f] ~= '' then -- 'issn' is the first element following the 'wikidata' item
									table.insert( groupElements, createRow( id, '', parentArgs['worldcatid'..f], '[//www.worldcat.org/identities/' .. parentArgs['worldcatid'..f] .. ' WorldCat]', false ) ) --Validation?
								elseif id == 'viaf' and parentArgs[id..f] and string.match( parentArgs[id..f], '^%d+$' ) and not parentArgs['worldcatid'..f] then -- Hackishly copy the validation code; this should go away when we move to using P1793 and P1630
									table.insert( groupElements, createRow( id, '', parentArgs[id..f], '[//www.worldcat.org/identities/containsVIAFID/' .. parentArgs[id..f] .. ' WorldCat]', false ) )
								elseif id == 'lccn' and parentArgs[id..f] and parentArgs[id..f] ~= '' and not parentArgs['viaf'..f] and not parentArgs['worldcatid'..f] then
									local lccnParts = splitLccn( parentArgs[id..f] )
									if lccnParts and lccnParts[1] ~= 'sh' then
										table.insert( groupElements, createRow( id, '', parentArgs[id..f], '[//www.worldcat.org/identities/lccn-' .. lccnParts[1] .. lccnParts[2] .. '-' .. lccnParts[3] .. ' WorldCat]', false ) )
									end
								end

								local val = parentArgs[id..f]
								if val and val ~= '' and mw.ustring.lower(val) ~= 'no' and params[3] ~= 0 then
									local link = getLink( params[3], val, params[4] )
									if link and link ~= '' then
										table.insert( groupElements, createRow( id, params[2], val, link, true ) .. getCatForId( params[1], params[5] or 0 ) )
										itemCount = itemCount + 1
									end
								end
							end
							if #groupElements > 0 then
								if gr.title and gr.title ~= '' then
									table.insert( listElements, "* '''"..gr.title.."'''\n" )
								end
								table.insert( listElements, table.concat( groupElements ) )
								if n == 1 and #groupElements > 1 then
									table.insert( listElements, "\n----\n" )
								end
								-- mobile version
								if n == 1 then
									mobileContent = table.concat( groupElements )
								end
							end
						end
					end
					-- Generate navbox title
					if #listElements > 0 then
						if fromForCount > 1 and #conf.databases == 1 then
							if parentArgs['for'..f] and parentArgs['for'..f] ~= '' then
								navboxParams['group'..(rowCount + 1)] = "''" .. parentArgs['for'..f] .. "''"
							else
								navboxParams['group'..(rowCount + 1)] = "''" .. title.text .. "''"
							end
						else
							navboxParams['group'..(rowCount + 1)] = db.name or ''
						end
						navboxParams['list'..(rowCount + 1)] = table.concat( listElements )
						rowCount = rowCount + 1
					end
				end
			end
		end
	end
	if rowCount > 0 then
		local Navbox = require('Módulu:Navbox')
		if fromForCount > 1 then
			navboxParams['title'] = '[[Ayuda:Control d\'autoridaes|Control d\'autoridaes]]'
			--add missing names
			for r = 1, rowCount, 1 do
				if navboxParams['group'..r] == '' then
					navboxParams['group'..r] = "''" .. mw.wikibase.getEntity(parentArgs['wikidata'..r]):getLabel().."''"
				end
			end
			if fromForCount > 2 then
				navboxParams['navbar'] = 'plain'
			else
				navboxParams['state'] = 'off'
				navboxParams['navbar'] = 'off'
			end
		end
		local mainCategories = ''
		if stringArgs then
			mainCategories = mainCategories .. '[[Categoría:Wikipedia:Páxines qu\'usen control d\'autoridaes con parámetros]]\n'
		end
		--if itemCount > 13 then
		--	if itemCount > 30 then
		--		itemCount = 'más de 30'
		--	end
		--	mainCategories = mainCategories .. '[[Categoría:Wikipedia:Control d\'autoridaes con ' .. itemCount .. ' elementos]]\n'
		--end
		return frame:extensionTag{ name = 'templatestyles', args = { src = 'Plantía:Control d\'autoridaes/styles.css' } }
			.. tostring(
				mw.html.create( 'div' )
					:addClass( 'mw-authority-control navigation-not-searchable' )
					:wikitext( Navbox._navbox( navboxParams ) )
					:done()
				:tag('div')
					:addClass( 'mw-mf-linked-projects' )
					:addClass( 'hlist' )
					:newline()
					:wikitext( mobileContent )
					:done()
				:done()
			)
			.. mainCategories
	else
		return ''
	end
end

return p
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy