وحدة:بطاقة/بيانات
توثيق الوحدة [أنشئ] [محو الاختزان][استخدامات] [قوالب]
-- Credits:
-- Original from fr:Module:Infobox/Localdata
-- forked by وهراني @arwiki
-- Version: 20240603
local getArgs = require('Module:Arguments').getArgs
local localdata = {}
function localdata.getEntity( val )
if val == nil then
val = localdata.wikidata
end
if type(val) == 'table' then
return val
end
if val == '-' or val =='لا' then
return nil
end
if val == '' then
val = nil
end
if(type(val) == 'string' and mw.wikibase.isValidEntityId(val))
then return {id = val}
else return {id = mw.wikibase.getEntityIdForCurrentPage()}
end
end
function localdata.getValue(val, params)
if type(val) == 'string' then
return localdata[val:gsub('%s+','_')]
elseif type(val) == 'function' then
return val(localdata, localdata.item, params)
elseif type(val) == 'table' then
for i, j in pairs(val) do -- في حال وجود قيم لأكثر من وسيط : أخذ بعين الاعتبار أول قيمة
if type(j) == 'string' and localdata[j:gsub('%s+','_')] then
return localdata[j:gsub('%s+','_')]
end
end
end
return nil
end
local frame = mw.getCurrentFrame()
local modulename = frame.args.modulename or frame.args['وحدة'] or frame.args.name or frame.args['اسم']
local parent = frame:getParent() or frame
local templatename = parent:getTitle() -- في حال إذا كان يختلف عن اسم الوحدة
local params = getArgs(frame) --parent.args
localdata.wikidata = frame:getParent().args.wikidata
or frame:getParent().args['ويكي بيانات']
or frame:getParent().args['ويكي_بيانات']
or frame.args.wikidata
or frame.args['ويكي بيانات']
or frame.args['ويكي_بيانات']
-- fill-up global variable localdata using params
for i, j in pairs(params) do
if j and mw.text.trim(j) ~= '' then -- empty parameters are ignored
if(type(i) == 'string')
then localdata[i:gsub('%s+','_')] = j
else localdata[i] = j
end
end
end
-- mw.logObject(frame:getParent().args) mw.logObject(frame.args)
if localdata['name'] == frame.args['name'] then localdata['name']= nil end
if localdata['اسم'] == frame.args['اسم'] then localdata['اسم']= nil end
if localdata['وحدة'] == frame.args['وحدة'] then localdata['وحدة']= nil end
localdata['__templatename__'] = templatename
localdata['__modulename__'] = modulename
-- load wikidata item:
localdata.item = localdata.getEntity()
--mw.logObject(localdata)
return localdata