Diferencia entre revisiones de «Módulo:Enlace externo»
wikitves>LuchoCR m (Cambió la configuración de protección de «Módulo:Enlace externo»: Módulo o plantilla muy utilizado/sensible ([Editar=Permitir solo editores de plantillas y administradores] (indefinido))) |
m (1 revisión importada) |
(Sin diferencias)
|
Revisión actual - 22:03 10 mar 2023
La documentación para este módulo puede ser creada en Módulo:Enlace externo/doc
local p = {} local ModuloArgumentos = require('Módulo:Arguments') local ModuloWikidata = require('Module:Wikidata') local ModuloPaginas = require('Módulo:Páginas') local argumentos local Entidad function p.Plantilla(frame) argumentos = ModuloArgumentos.getArgs(frame, { trim = true }) Entidad = mw.wikibase.getEntityObject(argumentos.id) or mw.wikibase.getEntityObject(argumentos.entidad) or {} local Titulo = argumentos['título'] or argumentos['titulo'] or obtenerEtiquetaWikidata() or ModuloPaginas.nombrePagina({desambiguar='sí'}) local Imagen if not argumentos['imagen'] or argumentos['imagen'] == 'no' or argumentos['imagen'] == '' then Imagen = '' elseif argumentos['imagen'] == 'sí' or argumentos['imagen'] == 'defecto' then Imagen = '[[File:Internet-web-browser.svg|16px|link=|alt=Icono]] ' elseif argumentos['imagen'] then Imagen = '[[File:' .. argumentos['imagen'] .. '|16px|link=|alt=Icono]] ' end local Nombre if argumentos['nombre'] and argumentos['enlacenombre'] then Nombre = ' en [[' .. frame:preprocess('{{desenlazar|' .. argumentos['enlacenombre'] .. '}}') .. '|' .. frame:preprocess('{{desenlazar|' .. argumentos['nombre'] .. '}}') ..']]' elseif argumentos['nombre'] then Nombre = ' en ' .. argumentos['nombre'] else Nombre = '' end -- Definición de URL local URL local Patron = argumentos['patrón'] or argumentos['patron'] local Propiedad = argumentos['propiedad'] local Id = argumentos['identificador'] local Nota = argumentos['nota'] if Nota then Nota = ' (' .. Nota .. ')' else Nota = '' end if Patron then URL = Patron elseif Propiedad then local EntidadPropiedad = mw.wikibase.getEntityObject(Propiedad) or {} local PatronWikidata = EntidadPropiedad.claims.P1630[1].mainsnak.datavalue.value if PatronWikidata then URL = PatronWikidata else return '<span class="error">Error: sin patrón en la propiedad de Wikidata ' .. Propiedad .. '.</span>' end else return '<span class="error">Error: debe pasar una propiedad o un patrón como parámetro.</span>' end if Id then URL = mw.ustring.gsub(URL, '%$1', Id) elseif Propiedad then local IdWikidata = propiedad(Propiedad, {['linkback']='no', ['uno']='sí'}) or '' if IdWikidata and IdWikidata ~= '' then URL = mw.ustring.gsub(URL, '%$1', IdWikidata) else return '<span class="error">Error: sin identificador en la propiedad de Wikidata ' .. Propiedad .. '.</span>' end else return '<span class="error">Error: debe pasar al menos un identificador o una propiedad como parámetro junto al patrón.</span>' end local Prefijo = argumentos['prefijo'] or '' if Prefijo ~= '' then Prefijo = Prefijo .. ' ' end local Sufijo = argumentos['sufijo'] or '' if Sufijo ~= '' then Sufijo = ' ' .. Sufijo end return Imagen .. Prefijo .. '['.. URL .. ' ' .. Titulo .. ']' .. Sufijo .. Nombre .. Nota end function obtenerEtiquetaWikidata() if Entidad and Entidad.labels and Entidad.labels.es then return Entidad.labels.es.value end end function propiedad(idPropiedad,opciones) if Entidad and Entidad.claims and Entidad.claims[idPropiedad] then if not opciones then opciones = {['linkback']='sí'} end opciones.entityId = Entidad.id opciones.propiedad = idPropiedad valorPropiedad = ModuloWikidata.getPropiedad(opciones,Entidad.claims[idPropiedad]) return valorPropiedad end end return p