Modulo:Image/sandbox
Aspetto
La documentazione per questo modulo può essere creata in Modulo:Image/sandbox/man
local mWikibase = require('Modulo:Wikibase')
local default = "Pagebanner default.jpg"
local entityId = ''
local WDBanner = ''
local WDFoto = ''
local WDTitolo = ''
local function _isempty(s)
return s == nil or s == ''
end
local function _getID(frame)
entityId = frame.args[1] or frame.args.da or frame.args.from
if _isempty(entityId) then
entityId = mw.wikibase.getEntityIdForCurrentPage()
end
end
local function _getWDTitle()
WDTitolo = mw.wikibase.getLabel( entityId )
end
local function _getWDBanner()
WDBanner = mw.wikibase.getBestStatements( entityId, 'P948')
WDBanner = WDBanner[1] and WDBanner[1].mainsnak and WDBanner[1].mainsnak.datavalue and WDBanner[1].mainsnak.datavalue.value or nil
end
local function _getWDFoto()
WDFoto = mw.wikibase.getBestStatements( entityId, 'P18')
WDFoto = WDFoto[1] and WDFoto[1].mainsnak and WDFoto[1].mainsnak.datavalue and WDFoto[1].mainsnak.datavalue.value or nil
end
local function _fetchWD(frame)
_getID(frame)
_getWDBanner()
_getWDFoto()
_getWDTitle()
end
local function _getImage(frame)
local foto = WDFoto
local fotodesc = frame.args.fotodesc
if _isempty(fotodesc) then
fotodesc = frame.args.desc
if _isempty(fotodesc) then
fotodesc = (not _isempty(WDTitolo) and (WDTitolo..' ') or '').. '(immagine)'
end
end
local fotopx = '100px'
if not _isempty(frame.args.fotopx) then
fotopx = frame.args.fotopx
end
return string.format('[[File:%s|%s|%s]]', foto, fotopx, fotodesc)
end
local function _getBanner(frame)
local banner = WDBanner or default
local bannerdesc = frame.args.bannerdesc
if _isempty(bannerdesc) then
bannerdesc = frame.args.desc
if _isempty(bannerdesc) then
bannerdesc = (not _isempty(WDTitolo) and (WDTitolo..' ') or '').. '(banner)'
end
end
local bannerpx = '300px'
if not _isempty(frame.args.bannerpx) then
bannerpx = frame.args.bannerpx
end
return string.format('[[File:%s|%s|%s]]', banner, bannerpx, bannerdesc)
end
local p = {}
function p.getImage(frame)
_getID(frame)
_getWDFoto()
_getWDTitle()
return _getImage(frame)
end
function p.getBanner(frame)
_getID(frame)
_getWDBanner()
_getWDTitle()
return _getBanner(frame)
end
function p.getAllImages(frame)
_fetchWD(frame)
return p.getBanner(frame) .. p.getImage(frame)
end
function p.getBestImage(frame)
_getID(frame)
_getWDBanner()
_getWDTitle()
if WDBanner ~= nil then
return _getBanner(frame)
else
_getWDFoto()
if WDFoto ~= nil then
return _getImage(frame)
else
return _getBanner(frame)
end
end
end
return p