[editar] [purgar]

Documentación del módulo

Version check

Designación de la versión en Wikidata: 2022-04-25 Ok!
Esta documentación es transcluida desde Módulo:Failsafe/doc.
Los editores pueden experimentar en la zona de pruebas de la plantilla.
Por favor, añade las categorías a la subpágina de documentación. Subpáginas de esta plantilla.

-- module interface local Failsafe = { 	suite  = 'Failsafe', 	serial = '2022-04-25', 	item   = 65306115 }  local strings = { 	docPage           = 'doc', 	ok                = '[[File:Artículo bueno.svg|16px|text-bottom|Ok!]]', 	notOk             = "[[File:Symbol oppose vote.svg|15px|text-bottom|Contra]] '''Este módulo está desactualizado/obsoleto'''[[Category:Diferente versión del módulo en Wikidata]]", 	versionText       = 'Designación de la versión en Wikidata:', 	noVersion         = 'no hay versión disponible' }  -- modul variable and administration local fs = { 	moduleInterface = Failsafe }  -- possible vaules of version --  nil, false: no version required --  string:     string of version required --  table:      frame table (template, #invoke) -- aModuleInterface --  table  function fs._failsafe( version, aModuleInterface ) 	if type( aModuleInterface ) ~= 'table' then 		return false 	end  	local i, s, v  	-- check if version is a frame table 	if type( version ) == 'table' and type( version.args ) == 'table' then 		s = version.args[ 1 ] 		if not s and type( version.getParent ) == 'function' then 			i = version:getParent() 			if i then 				s = i.args[ 1 ] 			end 		end 		version = s 	end 	-- version should be a string 	if type( version ) == 'string' then 		-- check if empty string 		version = mw.text.trim( version ) 		if version == '' then 			version = nil 		end 	else 		version = nil 	end  	-- getting version from Wikidata 	if version == 'wikidata' then 		version = nil 		i = aModuleInterface.item 		if type( i ) == 'number' and i > 0 then 			s = mw.wikibase.getBestStatements( 'Q' .. i, 'P348' ) 			for i = 1, #s, 1 do 				if s[ i ].mainsnak.snaktype == 'value' then 					v = s[ i ].mainsnak.datavalue.value 					if v ~= '' then 						return v:gsub( '%.', '-' ) 					end 				end 			end 		end 	end  	if not aModuleInterface.serial then 		return false 	elseif not version or version <= aModuleInterface.serial then 		return aModuleInterface.serial 	else 		return false 	end end  local function getModule( title ) 	return require( 'Module:' .. title ) end  function fs.getModuleVersion( frame ) 	local result = strings.versionText .. ' ' .. strings.noVersion 	local fromModule, fromWikidata, m, success  	local title = mw.ustring.gsub( mw.title.getCurrentTitle().text, '/' .. strings.docPage, '' ) 	if title == 'Failsafe' then -- the module itself 		success = true 		m = fs 	else 		success, m = pcall( getModule, title ) 	end 	if success then 		if m.moduleInterface then 			fromModule = m.moduleInterface.serial 			fromWikidata = fs._failsafe( 'wikidata', m.moduleInterface ) 		end 		if fromWikidata or fromModule then 			result = strings.versionText .. ' <code>' 				.. ( fromWikidata or fromModule ) .. '</code>' 			if fromWikidata and fromModule then 				result = result .. ' ' .. 					( fromWikidata == fromModule and strings.ok or strings.notOk ) 			end 		end 	end  	return result end  return fs