Módulo:Clasificaciónvj
Esta documentación explica el funcionamiento del módulo en un contexto técnico. Para instrucciones sobre el uso de la plantilla asociada, véase la documentación de la misma en Plantilla:Tl.
Este módulo implementa la plantilla Plantilla:Tl. Su propósito es obtener las clasificasciones de contenido tanto desde parámetros locales como desde Wikidata, así como también facilitar la ampliación de la lista de clasificaciones a través de un módulo separado (además der hacer el módulo principal más eficiente).
Funciones
- Plantilla:Code, la función pública destinada obtener los parámetros desde la plantilla y pasarlos a Plantilla:Code.
- Plantilla:Code, la función destinada a ser usada (o importada) en este u otros módulos. Analiza los parámetros y los formatea a través de las siguientes funciones.
- Plantilla:Code la función para concatetar el valor-imagen y establecer el formato.
- Plantilla:Code copia de la función [[Módulo:Formato texto|Plantilla:Code]], modificado para satisfacer las listas con estilo CSS en tablas (Plantilla:Code, Plantilla:Code y Plantilla:Code).
- Plantilla:Code función envoltura para [[Módulo:Tablas|Plantilla:Code]], para obtener el valor de la propiedades de clasificaciones.
Agregar clasificaciones
Véase la documentación de Módulo:Clasificaciónvj/datos.
Notas
- Datos adicionales
Se había considerado agregar (P7367) y (P8428) dentro de los valores de clasificación de contenido, por ejemplo:
Luego de debatirlo en el IRC, se decidió prescindir de dichas propiedades, por lo que solo se mostrará la clasificación.
- Cantidad de valores por cada descriptor
Hay casos en los que se puede llegar a haber más de un valor (almacenado en Wikidata), dependiendo de las clasificaciones asignadas a lo largo de la historia. Los íconos de descripciones se mostrarán uno al lado del otro, pero no se proveerá más información; se está debatiendo si es pertinente obtenerlo (un ejemplo)
local p = {} local ModuloArgumentos = require('Módulo:Argumentos') local argumentos = ModuloArgumentos.obtenerValorDeArgumentos local elementoTabla = require('Módulo:Tablas').elemento local Datos = mw.loadData('Módulo:Clasificaciónvj/datos') local ObjWD -- Función pública para ser llamada desde la plantilla {{clasificaciónvj}} function p.clasificacionvj(frame) ModuloArgumentos.obtenerTablaDeArgumentos(frame) ObjWD = elementoTabla(mw.wikibase.getEntity(argumentos{'entidad', 'id'}), 'claims') or {} return p.main(ObjWD) end -- Función pública para ser incluída dentro de otros módulos function p.main(objwd) if not ObjWD then ObjWD = objwd end local Salida = {} for k, v in pairs(Datos) do if v then table.insert(Salida, evaluar(v)) end end local resultado local copia={} require('Módulo:Tablas').insertarElementosConValor(Salida, copia) if copia[1] then return '<div style="display:table">' .. table.concat(copia) .. '</div>' end end function evaluar(datos) if not datos then datos = {} end local Valor = (function() local Valor = argumentos{datos[1], {obtenerClasif, datos[3]}} or {} if type(Valor) == 'string' then Valor = {Valor} end return Valor end)() if #Valor == 0 then return '' end local Salida = {} table.insert(Salida, '<div style="display:table-row">') table.insert(Salida, '<div style="display:table-cell;font-weight:bold;padding-right:0.2em">[[' .. datos[2] .. '|' .. datos[1] .. ']]</div>') local Clasificador for k, v in pairs(Valor) do Clasificador = v if datos[4][Clasificador] then table.insert(Salida, '<div style="display:table-cell;">[[Archivo:' .. datos[4][Clasificador][1] .. '|' .. datos[4][Clasificador][2] .. '|25x30px|link=]]</div>') else table.insert(Salida, '<div style="display:table-cell;">' .. Clasificador .. '</div>') end end table.insert(Salida, '</div>') return table.concat(Salida) end function obtenerClasif(idPropiedad) local Obj = elementoTabla(ObjWD, idPropiedad) local Salida = {} local Valor, Ultimo = '' if Obj then for k, v in pairs(Obj) do Valor = elementoTabla(v, 'mainsnak', 'datavalue', 'value', 'id') if Valor == Ultimo then break end Ultimo = Valor table.insert(Salida, Valor) end end return Salida end return p