وحدة:بطاقة/بيانات

مراجعة ٢٢:٣٢، ٢٧ أبريل ٢٠٢١ بواسطة ar>وهراني
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يمكن إنشاء صفحة توثيق الوحدة في وحدة:بطاقة/بيانات/شرح

local localdata = {}


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 = parent.args
localdata.wikidata = frame:getParent().args.wikidata 
						or frame:getParent().args['ويكي بيانات']
						or frame.args.wikidata  
						or frame.args['ويكي بيانات']

function localdata.getEntity( val ) 
	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
-- 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
		localdata[i] = j
	end
end
localdata.templatename = templatename
localdata.modulename = modulename

-- load wikidata item:
localdata.item = localdata.getEntity(localdata.wikidata or localdata['ويكي بيانات'])

return localdata