Módulu:Ficha de hardware
La documentación pa esti módulu pue crease en Módulu:Ficha de hardware/usu
local p = {}
local ModuloArgumentos = require('Módulu:Argumentos')
local ModuloFicha = require('Módulu:Ficha')
local ModuloWikidata = require('Módulu:Wikidata')
local ModuloPaginas = require('Módulu:Páxines')
local elementoTabla = require('Módulu:Tables').elemento
local numeroUnidad = require('Módulu:Wikidata/Units').numeroUnidad
local formatoNumero = require('Módulu:Wikidata/Formatos').formatoNumero2
local Entidades = mw.loadData('Módulu:Ficha de hardware/datos')
local argumentos
local Entidad
local InstanciaDe
local SubclaseDe
function p.Ficha(frame)
argumentos = ModuloArgumentos.obtenerArgumentosConValor(frame)
Entidad = mw.wikibase.getEntity(argumentos.id) or {}
--InstanciaDe = elementoTabla(Entidad, 'claims', 'P31', 1, 'mainsnak', 'datavalue', 'value', 'id')
InstanciaDe = propiedad('P31', {['formato'] = 'entidadID'})
SubclaseDe = propiedad('P279', {['formato'] = 'entidadID'})
local Titulo = argumentos['nombre'] or ModuloWikidata.obtenerEtiquetaWikidata() or ModuloPaginas.nombrePagina({desambiguar='sí'})
local ClaseTitulo = Entidades[SubclaseDe] or Entidades[InstanciaDe] or 'hardware'
local NombreCompleto = argumentos['nombre completo'] or ''
local Serie
if argumentos['serie'] then
Serie = 'Parte de ' .. argumentos['serie']
else
Serie = ''
end
-- :: Imagen
local Imagen = argumentos['imagen']
local Pie
if Imagen then
Pie = argumentos['pie de imagen']
else
Imagen, Pie = ModuloWikidata.obtenerImagenWikidata('P18')
end
local Logo = argumentos['logo'] or ModuloWikidata.obtenerImagenWikidata('P154')
local Imagen2 = argumentos['imagen2'] or ''
local Pie2 = argumentos['pie de imagen2'] or ''
local TamanoLogo = argumentos['tamaño de logo'] or '250px'
local Tamano = argumentos['tamaño'] or argumentos['tamaño de imagen'] or '250px'
local Tamano2 = argumentos['tamaño de imagen2']
-- :: General
local Tipo = argumentos['tipo'] or propiedad('P31', {['lista'] = 'nobullet', ['linkback'] = 'sí'}) or '' -- Crear switch con varios tipos
local Generacion = argumentos['generación'] or ''
local Codigo = argumentos['código'] or propiedad('P1638',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local Creacion = argumentos['fecha de creación'] or propiedad('P571') or ''
local Desarrollador = argumentos['desarrollador'] or propiedad('P178',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local Fabricantes = argumentos['fabricante'] or (function()
local Fabricantes = {}
for i = 1, 9, 1 do
if argumentos['manuf' .. i] then table.insert(Fabricantes, argumentos['manuf' .. i]) end
end
if #Fabricantes > 0 then return listaHTML(Fabricantes) end
end)() or propiedad('P176', {['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
-- :: Fechas y comisión
local Ubicacion = argumentos['ubicación'] or propiedad('P276',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local Instalacion = argumentos['fecha de instalación'] or ''
local Lanzamiento = argumentos['lanzamiento'] or propiedad('P5204') or ''
local Descontinuacion = argumentos['descontinuación'] or argumentos['discontinuación'] or propiedad('P2669') or propiedad('P730') or ''
local Costo = argumentos['costo'] or propiedad('P2130', {['formato'] = 'moneda'}) or ''
local ComercializadoPor = argumentos['comercializadores'] or propiedad('P750',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local UnidadesProducidas = argumentos['unidades producidas'] or propiedad('P1092') or ''
local UnidadesVendidas = argumentos['unidades vendidas'] or propiedad('P2664') or ''
-- :: Medidas
local Dimensiones = argumentos['dimensiones'] or ''
local Peso = argumentos['peso'] or propiedad('P2067', {['formato'] = 'unidad'}) or ''
local Volumen = argumentos['volumen'] or propiedad('P2234', {['formato'] = 'unidad'}) or ''
local Superficie = argumentos['superficie'] or propiedad('P2046', {['formato'] = 'unidad'}) or ''
local Nodos = argumentos['nodos'] or ''
local Alimentacion = argumentos['alimentación'] or propiedad('P2791', {['formato'] = 'unidad'}) or ''
-- :: Almacenamiento
local Codificacion = argumentos['codificación'] or ''
local Lectura = argumentos['lectura'] or ''
local Escritura = argumentos['escritura']
local LecturaEtiqueta = (function()
if Escritura then return 'Mecanismo de lectura' end
return 'Mecanismo de lectura/<wbr/>escritura'
end)() or ''
-- Computadoras
local Plataforma = argumentos['plataforma'] or propiedad('P400',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local Cliente = argumentos['cliente'] or propiedad('P2360',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local Procesador = argumentos['procesador'] or propiedad('P880',{['lista'] = 'nobullet', ['linkback']='sí', ['calificador']='P2149'}) or ''
local Frecuencia = argumentos['frecuencia'] or propiedad('P2144',{['formato'] = 'unidad'}) or ''
local Memoria = argumentos['memoria'] or propiedad('P2928',{['formato'] = 'unidad'}) or ''
local Almacenamiento= argumentos['almacenamiento'] or propiedad('P3559', {['formato'] = 'unidad'}) or ''
local TarjetaGrafica= argumentos['gpu'] or propiedad('P2560',{['lista'] = 'nobullet', ['linkback'] = 'sí', ['calificador'] = 'P2149'}) or ''
local Coprocesador = argumentos['coprocesador'] or ''
local SoC = argumentos['soc'] or ''
local Bus = argumentos['bus'] or propiedad('P8107', {['lista'] = 'nobullet'})
local BusTitulo = '[[Bus (informática)|Buses]]'
local Conectividad = argumentos['conectividad'] or argumentos['puertos'] or propiedad('P2935',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local Video = argumentos['vídeo'] or propiedad('P6948',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local Audio = argumentos['audio'] or propiedad('P7501',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local Entrada = argumentos['entrada'] or argumentos['control'] or propiedad('P479',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local NumeroProcesadores = argumentos['número de procesadores'] or ''
local Rendimiento = argumentos['rendimiento'] or propiedad('P7256', {['formato'] = 'unidad'}) or '' -- Hacer función para importar según RMAX y RPEAK y según fecha más reciente
local ArquitecturaGPGPU = argumentos['arquitectura gpgpu'] or ''
local ProcesadoresGPGPU = argumentos['procesadores gpgpu'] or ''
local ProcesadorGPGPU = argumentos['procesador gpgpu'] or ''
local MemoriaGPGPU = argumentos['memoria gpgpu'] or ''
local MemoriaExterna = argumentos['memoria externa'] or ''
-- :: Laptops
local Bateria = argumentos['batería'] or propiedad('P618') or ''
local Touchpad = argumentos['touchpad'] or ''
local Bandas = argumentos['bandas'] or propiedad('P8097') or ''
local TAE = argumentos['sar'] or propiedad('P7080') or ''
local Soporte = argumentos['soporte'] or ''
local Resolucion = argumentos['resolución'] or ''
-- :: Cámaras
local Camara = argumentos['cámara'] or ''
local Videocamara = argumentos['videocámara'] or ''
local VideocamaraTrasera = argumentos['videocamara trasera'] or ''
local PantallaExterna = argumentos['pantalla externa'] or ''
local Sensores = argumentos['sensores'] or ''
local Lente = argumentos['lente'] or ''
local Obturador = argumentos['obturador'] or ''
local VelocidadObturacion = argumentos['velocidad de obturación'] or ''
local Medicion = argumentos['medición'] or ''
local ModosExposicion = argumentos['modos de exposición'] or ''
local ModosMedicion = argumentos['modos de medición'] or ''
local AreasEnfoque = argumentos['áreas de enfoque'] or ''
local ModosEnfoque = argumentos['modos de enfoque'] or ''
local DisparoContinuo = argumentos['disparo continuo'] or ''
local Visor = argumentos['visor'] or ''
local Sensibilidad = argumentos['sensibilidad'] or ''
local Flash = argumentos['flash'] or ''
local FabricanteExif = argumentos['fabricante exif'] or propiedad('P2010',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local ModeloExif = argumentos['modelo exif'] or propiedad('P2009',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local TipoMontura = argumentos['tipo de montura'] or ''
local DiametroExterno = argumentos['diámetro externo'] or ''
local DiametroInterno = argumentos['diámetro interno'] or ''
local Pestanas = argumentos['pestañas'] or ''
local Brida = argumentos['brida'] or ''
-- :: Procesadores
local FrecuenciaReloj = checkParParam('frecuencia mínima', 'frecuencia máxima', propiedad('P2149',{['formato'] = 'unidad'})) -- Usar getUnit()
local Zocalos = argumentos['zócalos'] or propiedad('P1041')
local FSB = checkParParam('velocidad fsb mínima', 'velocidad fsb máxima', propiedad('P2150')) or argumentos['frecuencia fsb'] -- Usar getUnit()
local HyperTransport = checkParParam('velocidad hypertransport mínima', 'velocidad hypertransport máxima', '')
local QPI = checkParParam('velocidad qpi mínima', 'velocidad qpi máxima', '')
local DMI = checkParParam('velocidad dmi mínima', 'velocidad dmi máxima', '')
local MOSFET = checkParParam('longitud mosfet mínima', 'longitud mosfet máxima', '')
local ConjuntoInstrucciones = argumentos['arquitectura'] or propiedad('P1068',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local Microarquitectura = argumentos['microarquitectura'] or propiedad('P6889',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local CPUID = argumentos['cpuid'] or propiedad('P7289') or ''
local NumNucleos = argumentos['número de núcleos'] or propiedad('P1141') or ''
local L1 = argumentos['caché l1'] or (function()
local Obj = obtenerValor(Entidad, 'P527', 'Q28972913')[1]
if Obj then return numeroUnidad(elementoTabla(Obj, 'qualifiers', 'P2928', 1, 'datavalue')) end
end)() or ''
local L2 = argumentos['caché l2'] or (function()
local Obj = obtenerValor(Entidad, 'P527', 'Q12635161')[1]
if Obj then return numeroUnidad(elementoTabla(Obj, 'qualifiers', 'P2928', 1, 'datavalue')) end
end)() or ''
local L3 = argumentos['caché l3'] or (function()
local Obj = obtenerValor(Entidad, 'P527', 'Q28972917')[1]
if Obj then return numeroUnidad(elementoTabla(Obj, 'qualifiers', 'P2928', 1, 'datavalue')) end
end)() or ''
local L4 = argumentos['caché l4'] or (function()
local Obj = obtenerValor(Entidad, 'P527', 'Q76683717')[1]
if Obj then return numeroUnidad(elementoTabla(Obj, 'qualifiers', 'P2928', 1, 'datavalue')) end
end)() or ''
local TipoZocalo = argumentos['tipo de zócalo'] or propiedad('P1041', {['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local FactorForma = argumentos['factor de forma'] or ''
local Contactos = argumentos['contactos'] or ''
local ProtocoloFSB = argumentos['protocolo fsb'] or ''
local Tension = argumentos['tensión'] or propiedad('P2436', {['formato'] = 'unidad'}) or ''
-- :: Buses
local AnchoBits = argumentos['ancho en bits'] or ''
local NumeroDispositivos = argumentos['número de dispositivos'] or ''
local VelocidadTransferencia = argumentos['velocidad de transferencia'] or propiedad('P6711',{['formato'] = 'unidad'}) or ''
local TipoBus = (function()
if argumentos['tipo de bus'] == 's' then return '[[Comunicación serie|Serie]]' end
if argumentos['tipo de bus'] == 'p' then return '[[Comunicación paralela|Paralelo]]' end
end)() or argumentos['tipo de bus'] or ''
local ConexionCaliente = argumentos['conexión caliente'] or ''
-- :: Software
local InterfazExterna = argumentos['interfaz externa'] or ''
local SistemaOperativo = argumentos['sistema operativo'] or propiedad('P306',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local Interfaz = argumentos['interfaz'] or ''
local Java = argumentos['java'] or ''
local Ringtones = argumentos['tonos de llamada'] or ''
local Multimedia = argumentos['multimedia'] or ''
local ServicioEnLinea = argumentos['servicio en línea'] or propiedad('P2361',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
local ProgramaMasVendido = argumentos['programa más vendido'] or argumentos['juego más vendido'] or argumentos['videojuego más vendido'] or ''
local Root = argumentos['rooteado'] or ''
local Bootloader = argumentos['bootloader'] or ''
local PosicionTOP = argumentos['posición top500'] or ''
local MejorTOP = argumentos['mejor top500'] or ''
local ListasTOP = argumentos['listas top500'] or ''
local EmpaquetadosTitulo, Empaquetados, NucleosTitulo, Nucleos, SeConectaTitulo, SeConecta1, SeConecta2, SeConecta3, ClasesTitulo, Clases, MarcasComercialesTitulo, MarcasComerciales
if argumentos['pack1'] then
EmpaquetadosTitulo = 'Empaquetados'
Empaquetados = listaHTML({argumentos['pack1'] or '', argumentos['pack2'] or '', argumentos['pack3'] or '', argumentos['pack4'] or '', argumentos['pack5'] or '', argumentos['pack6'] or '', argumentos['pack7'] or '', argumentos['pack8'] or '', argumentos['pack9'] or ''})
end
if argumentos['core1'] then
NucleosTitulo = 'Núcleos'
Nucleos = listaHTML({argumentos['core1'] or '', argumentos['core2'] or '', argumentos['core3'] or '', argumentos['core4'] or '', argumentos['core5'] or '', argumentos['core6'] or '', argumentos['core7'] or '', argumentos['core8'] or '', argumentos['core9'] or ''})
end
if argumentos['conn1'] then
SeConectaTitulo = 'Se conecta a'
SeConecta1 = listaHTML({argumentos['via1_1'] or '', argumentos['via1_2'] or '', argumentos['via1_3'] or '', argumentos['via1_4'] or '', argumentos['via1_5'] or '', argumentos['via1_6'] or '', argumentos['via1_7'] or '', argumentos['via1_8'] or '', argumentos['via1_9'] or ''})
end
if argumentos['conn2'] then
SeConecta2 = listaHTML({argumentos['via2_1'] or '', argumentos['via2_2'] or '', argumentos['via2_3'] or '', argumentos['via2_4'] or '', argumentos['via2_5'] or '', argumentos['via2_6'] or '', argumentos['via2_7'] or '', argumentos['via2_8'] or '', argumentos['via2_9'] or ''})
end
if argumentos['conn3'] then
SeConecta3 = listaHTML({argumentos['via3_1'] or '', argumentos['via3_2'] or '', argumentos['via3_3'] or '', argumentos['via3_4'] or '', argumentos['via3_5'] or '', argumentos['via3_6'] or '', argumentos['via3_7'] or '', argumentos['via3_8'] or '', argumentos['via3_9'] or ''})
end
if argumentos['clase1'] then
ClasesTitulo = argumentos['clase título'] or 'Clases'
Clases = listaHTML({argumentos['clase1'] or '', argumentos['clase2'] or '', argumentos['clase3'] or '', argumentos['clase4'] or '', argumentos['clase5'] or '', argumentos['clase6'] or '', argumentos['clase7'] or '', argumentos['clase8'] or '', argumentos['clase9'] or ''})
end
if argumentos['marca1'] then
MarcasComercialesTitulo = 'Marcas comerciales'
MarcasComerciales = listaHTML({argumentos['marca1'] or '', argumentos['marca2'] or '', argumentos['marca3'] or '', argumentos['marca4'] or '', argumentos['marca5'] or '', argumentos['marca6'] or '', argumentos['marca7'] or '', argumentos['marca8'] or '', argumentos['marca9'] or ''})
end
-- :: Adopción
local ttUsadoEn = argumentos['usado en título'] or 'Usado en'
local UsadoEn = argumentos['usado en'] or ''
local Estandar = argumentos['estándar'] or propiedad('P503') or ''
local Compatibilidad = argumentos['compatibilidad'] or ''
local Retrocompatibilidad = argumentos['retrocompatibilidad'] or ''
local Uso = argumentos['uso'] or propiedad('P366') or ''
local FormatosCompetidores = argumentos['formatos competidores'] or ''
-- :: Cronología
local PrecedidoPor = argumentos['precedido por'] or propiedad('P1365') or propiedad('P155') or ''
local SucedidoPor = argumentos['sucedido por'] or propiedad('P1366') or propiedad('P156') or ''
local CronologiaTitulo, CronologiaActual
if PrecedidoPor ~= '' or SucedidoPor ~= '' then
CronologiaTitulo = argumentos['criterio sucesión'] or 'Cronología'
CronologiaActual = Titulo
end
-- :: Otros
local ImagendeTarjeta = argumentos['imagen de tarjeta'] or ''
local TamanoImagendeTarjeta, PieImagendeTarjeta, ImagendeTarjetaTitulo
if ImagendeTarjeta ~= '' then
TamanoImagendeTarjeta = argumentos['tamaño imagen de tarjeta'] or '250px'
PieImagendeTarjeta = argumentos['pie imagen de tarjeta'] or ''
ImagendeTarjetaTitulo = 'Tarjeta ' .. Titulo
end
local OtrosDatosTitulo = argumentos['otros datos título'] or 'Otros datos'
local OtrosDatos = argumentos['otros datos'] or ''
local SitioWeb = argumentos['sitio web'] or propiedad('P856',{['lista'] = 'nobullet', ['linkback'] = 'sí'}) or ''
-- :: La ficha
local TablaFicha = {
entidad = argumentos.id,
titulo = Titulo,
titulo2 = NombreCompleto,
subtitulo = Serie,
clasetitulo = ClaseTitulo,
estilotitulo = 'background-color: #ccccff; color:#000',
estilosubtitulo = 'font-style: italic',
estiloseccion = 'background-color: #ccccff; color:#000',
estiloetiqueta = 'background-color: #ddddff; width:35%',
estilodatos = 'width:65%',
imagen = Logo,
['tamañoimagen'] = TamanoLogo,
imagen2 = Imagen,
['tamañoimagen2'] = Tamano,
pie2 = Pie,
estilopie2 = 'font-size:88%',
imagen3 = Imagen2,
['tamañoimagen3'] = Tamano2,
pie3 = Pie2,
{tipo='sección',
titulo = 'Información',
{'Tipo', Tipo},
{'Generación', Generacion},
{'Código', Codigo},
{'Fecha de creación', Creacion},
{'Fecha de instalación', Instalacion},
{'Desarrollador', Desarrollador},
{'Fabricante', Fabricantes},
-- Para supercomputadoras
{'Cliente(s)', Cliente},
{'Ubicación', Ubicacion},
-- --
{'Fecha de lanzamiento', Lanzamiento},
{'Descontinuación', Descontinuacion},
{'Costo', Costo},
{'Comercializado por', ComercializadoPor},
{'Unidades producidas', UnidadesProducidas},
{'Unidades vendidas', UnidadesVendidas},
},
{tipo='sección',
titulo = 'Datos técnicos',
-- Datos generales
{'Plataforma', Plataforma},
{'Dimensiones', Dimensiones},
{'Peso', Peso},
{'Volumen', Volumen},
{'Superficie', Superficie},
{'Alimentación', Alimentacion},
-- Medios de almacenamiento
{'Codificación', Codificacion},
{LecturaEtiqueta, Lectura},
{'Mecanismo de escritura', Escritura},
-- Computadoras / hardware con procesador/memoria
{'Número de nodos', Nodos},
{'Procesador', Procesador},
{'Frecuencia', Frecuencia},
{'Memoria', Memoria},
{'Almacenamiento', Almacenamiento},
{'[[Unidad de procesamiento gráfico|GPU]]', TarjetaGrafica},
{'Coprocesador', Coprocesador},
{'[[System on a chip|SoC]]', SoC},
{'Conectividad', Conectividad},
{'Vídeo', Video},
{'Audio', Audio},
{'Métodos de entrada', Entrada},
-- Supercomputadoras
{'Número de procesadores', NumeroProcesadores},
{'Rendimiento', Rendimiento},
{'Arquitectura [[GPGPU]]', ArquitecturaGPGPU},
{'Número de procesadores GPGPU', ProcesadoresGPGPU},
{'Procesadores GPGPU', ProcesadorGPGPU},
{'Memoria GPGPU', MemoriaGPGPU},
--{'',},
-- Dispositivos móviles
{'Memoria externa', MemoriaExterna},
{'Cámara', Camara},
{'Videocámara', Videocamara},
{'Videocámara trasera', VideocamaraTrasera},
{'Pantalla externa', PantallaExterna},
{'Batería', Bateria},
{'Touchpad', Touchpad},
{'Bandas', Bandas},
{'[[Tasa de absorción específica]]', TAE},
-- Consolas
{'[[Controlador de videojuego|Controles]]', Controles},
{'Soporte', Soporte},
-- Cámaras fotográficas
{'[[Sensor de imagen|Sensor]]', Sensor},
{'[[Resolución de imagen|Resolución máxima]]', Resolucion},
{'[[Lente]]', Lente},
{'[[Obturador]]', Obturador},
{'Velocidad de obturación', VelocidadObturacion},
{'Medición', Medicion},
{'Modos de exposición', ModosExposicion},
{'Modos de medición', ModosMedicion},
{'Áreas de enfoque', AreasEnfoque},
{'Modos de enfoque', ModosEnfoque},
{'Disparo continuo', DisparoContinuo},
{'[[Visor (fotografía)|Visor]]', Visor},
{'[[Escala de sensibilidad fotográfica|Sensibilidad ISO/ASA]]', Sensibilidad},
{'Flash', Flash},
{'Etiqueta [[Exif]] de fabricante', FabricanteExif},
{'Etiqueta [[Exif]] de modelo', ModeloExif},
-- Monturas de cámaras
{'Tipo de montura', TipoMontura},
{'Diámetro externo', DiametroExterno},
{'Diámetro interno', DiametroInterno},
{'Pestañas', Pestanas},
{'[[Distancia de registro]]', Brida},
-- Microprocesadores
{'[[Frecuencia de reloj]] de CPU', FrecuenciaReloj},
{'Zócalos compatibles', Zocalos},
{'Velocidad de [[Bus de datos|FSB]]', FSB},
{'Velocidad [[HyperTransport]]', HyperTransport},
{'Velocidad [[Intel QuickPath Interconnect|QPI]]', QPI},
{'Velocidad [[Direct Media Interface|DMI]]', DMI},
{'Longitud del canal [[MOSFET]]', MOSFET},
{'[[Conjunto de instrucciones]]', ConjuntoInstrucciones},
{'[[Microarquitectura]]', Microarquitectura},
{'Código CPUID', CPUID},
{'Número de núcleos', NumNucleos},
{'Caché L1', L1},
{'Caché L2', L2},
{'Caché L3', L3},
{'Caché L4', L4},
-- Zócalos de procesador
{'Tipo de zócalo', TipoZocalo},
{'Factor de forma', FactorForma},
{'Contactos', Contactos},
{'Protocolo del [[Bus frontal|FSB]]', ProtocoloFSB},
{'Tensión', Tension},
-- Buses
{'Ancho en bits', AnchoBits},
{'Número de dispositivos', NumeroDispositivos},
{'[[Tasa de bits|Velocidad]] de transferencia', VelocidadTransferencia},
{'Tipo de [[bus (informática)|bus]]', TipoBus},
{'Interfaz de [[conexión en caliente]]', ConexionCaliente},
{'Interfaz externa', InterfazExterna},
},
{tipo='sección',
titulo = 'Software',
{'Sistema operativo', SistemaOperativo},
{'Interfaz', Interfaz},
{'Java', Java},
{'Tonos de llamada', Ringtones},
{'Multimedia', Multimedia},
{'Servicio en línea', ServicioEnLinea},
{'Programa más vendido', ProgramaMasVendido},
{'Acceso root', Root},
{'Bootloader desbloqueado', Bootloader},
},
{tipo='sección',
titulo = '[[TOP500]]',
{'Actual', PosicionTOP},
{'Mejor', MejorTOP},
{'Listas', ListasTOP},
},
{tipo='sección',
titulo = EmpaquetadosTitulo,
{'', Empaquetados or ''},
},
{tipo='sección',
titulo = NucleosTitulo,
{'', Nucleos or ''},
},
{tipo='sección',
titulo = ClasesTitulo,
{'', Clases or ''},
},
{tipo='sección',
titulo = SeConectaTitulo,
{argumentos['conn1'] or '', SeConecta1 or ''},
{argumentos['conn2'] or '', SeConecta2 or ''},
{argumentos['conn3'] or '', SeConecta3 or ''},
},
{tipo='sección',
titulo = MarcasComercialesTitulo,
{'', MarcasComerciales or ''},
},
{tipo='sección',
titulo = ttUsadoEn,
{'', UsadoEn},
},
{tipo='sección',
titulo = 'Estandarización',
{'[[Estándar internacional|Estándar]]', Estandar},
{'Compatibilidad', Compatibilidad},
{'Retrocompatibilidad', Retrocompatibilidad},
{'Uso', Uso},
{'Formatos competidores', FormatosCompetidores},
},
{tipo = 'sección',
titulo = CronologiaTitulo,
{tipo='sucesión',
anterior = PrecedidoPor or '',
actual = CronologiaActual or '',
siguiente = SucedidoPor or '',
},
},
-- Sección hipotética, las imágenes inferiores no se muestran dentro de una sección
{'',
ImagendeTarjetaTitulo or '',
estilodatos = 'text-align: center; font-weight: bold; background-color: #ccccff',
},
imageninferior = ImagendeTarjeta,
['tamañoimageninferior'] = TamanoImagendeTarjeta,
pieinferior = PieImagendeTarjeta,
{tipo='sección',
titulo = OtrosDatosTitulo,
{'', OtrosDatos},
},
piedetabla = SitioWeb,
estilopiedetabla = 'background:#ddf; font-size: smaller',
}
return ModuloFicha.infobox(TablaFicha)
end
function listaHTML(ElementosLista)
local i = 1
local j = 1
local TempTable = {}
while ElementosLista[i] do
if ElementosLista[i] then
TempTable[j] = '<li>' .. ElementosLista[i] .. '</li>'
j = j + 1
end
i = i + 1
end
return '<ul>' .. table.concat(TempTable) .. '</ul>'
end
function checkParParam(minimo, maximo, wikidata)
local valore
if argumentos[minimo] then
valore = argumentos[minimo]
if argumentos[maximo] then
valore = valore .. ' — ' .. argumentos[maximo]
end
elseif wikidata then
valore = wikidata
else
valore = ''
end
return valore
end
function obtenerValor(entidad, idPropiedad, idValor)
local valor = {}
if not entidad or not idPropiedad or not idValor then
return valor
end
local declaracion = elementoTabla(entidad, 'claims', idPropiedad)
if declaracion then
for k, v in pairs(declaracion) do
local propBuscado = elementoTabla(v, 'mainsnak', 'datavalue', 'value', 'id')
if propBuscado == idValor then
table.insert(valor, v)
end
end
end
return valor
end
-- Función, propiedad() personalizada
function propiedad(idPropiedad, opciones, entidad)
if not entidad then entidad = Entidad end
if entidad and entidad.claims and entidad.claims[idPropiedad] then
if not opciones then
opciones = {['linkback']='sí'}
end
opciones['idioma'] = 'es'
local ValorPosicional = 1
if type(opciones['valor_posicional']) == 'number' then ValorPosicional = opciones['valor_posicional'] end
local ValorPosicionalCalif = 1
if type(opciones['valor_posicional_calif']) == 'number' then ValorPosicional = opciones['valor_posicional_calif'] end
local Calificador = opciones['calificador']
local Obj = elementoTabla(Entidad, 'claims', idPropiedad, ValorPosicional)
if Calificador then
Obj = elementoTabla(Obj, 'qualifiers', Calificador, ValorPosicionalCalif)
else
Obj = elementoTabla(Obj, 'mainsnak')
end
if opciones['formato'] == 'número' then
if elementoTabla(Obj, 'datavalue', 'type') == 'quantity' then
return formatoNumero(elementoTabla(Obj, 'mainsnak', 'datavalue', 'value', 'amount'))
end
-- Valores cuya unidad deba ir a la derecha, separada de un espacio
elseif opciones['formato'] == 'unidad' then
if elementoTabla(Entidad, 'claims', idPropiedad, 2, 'mainsnak', 'datavalue') then
return formatoNumero(elementoTabla(Entidad, 'claims', idPropiedad, 1, 'mainsnak', 'datavalue', 'value', 'amount')) .. ' - ' .. numeroUnidad(elementoTabla(Entidad, 'claims', idPropiedad, 2, 'mainsnak', 'datavalue'))
else
return numeroUnidad(elementoTabla(Entidad, 'claims', idPropiedad, 1, 'mainsnak', 'datavalue'))
end
-- Valores cuya unidad deba ir a la izquierda (ej, las monedas o divisas)
elseif opciones['formato'] == 'moneda' then
if elementoTabla(Entidad, 'claims', idPropiedad, 2, 'mainsnak', 'datavalue') then
return numeroUnidad(elementoTabla(Entidad, 'claims', idPropiedad, 1, 'mainsnak', 'datavalue'), false) .. ' - ' .. numeroUnidad(elementoTabla(Entidad, 'claims', idPropiedad, 2, 'mainsnak', 'datavalue'), false)
else
return numeroUnidad(elementoTabla(Entidad, 'claims', idPropiedad, 1, 'mainsnak', 'datavalue'), false)
end
-- Devolver el ID de la entidad, para propiedades de entidad
elseif opciones['formato'] == 'entidadID' then
return elementoTabla(Obj, 'datavalue', 'value', 'id')
end
-- Invocar a la función fallback si no se cumplen las condiciones anteriores
opciones.entityId = entidad.id
opciones.propiedad = idPropiedad
return ModuloWikidata.getPropiedad(opciones, entidad.claims[idPropiedad])
end
end
return p