وحدة:Wikidata/تتبع

من موسوعة المزرعة
اذهب إلى التنقل اذهب إلى البحث

هذه الوحدة أنشئت لتعرض التصنيف المناسب عند استخدام قيم خواص ويكي بيانات، وكذلك تعرض أيقونة التعديل في ويكي بيانات.

تستخدم هذه الوحدة بواسطة وحدة:wikidata2 و{{قيمة ويكي بيانات/إيقونة وتصنيف}}.


local p = {}

function trim(s)
		--Removes leading zeroes from value
		if s:sub(1,1)=="P" then return s:sub(2)
		else return s
		end
	end
local function category(propertyid,q,nocate)
        main = '[[تصنيف:صفحات بها بيانات ويكي بيانات|'.. trim(propertyid) ..']]'
	if nocate and nocate  ~= ''  
		then -- to hide the category
	 		return ''
	 	elseif q and q  ~= ''  
		then 
	 		return q..''..main 
	end
	d = mw.text.trim(propertyid)
	s = list(d)
	if s then
		return '[[تصنيف:'.. s ..']]'..main  -- linktext(s)
	end
end

local function icons(u,id,noicon,icon2)
	if noicon and noicon  ~= ''  
		then -- to hide the icon
	 		return ''
	end
	local label = ""--mw.wikibase.label(u) --{{#invoke:Wikibase|label| u }}
	--if label ==nil or not label  then label ='' else end

	local temp =  label .. ' ('.. u ..')'
	local ico =  'Twemoji_270f.svg|13px'
		if icon2 and icon2 ~='' then 
			ico = 'Wikidata-logo.svg|20px' 
			size = '20px' 
			end
	local so = 'تعديل قيمة خاصية ' .. temp ..' في ويكي بيانات'
	local im =' [[File:'.. ico .. '|baseline|link=d:'.. (id or '') .. '#'.. u ..'|'.. so .. ']]'
	local noprint=  '<span class="noprint">'.. im ..'</span>'
	local sup=  '<sup>'.. noprint ..'</sup>'
	if u then
		return noprint
	end
end

local function xt(e)
		return  'صفحات تستخدم خاصية '.. e
end

local function wd(e)
		return e .. ' من ويكي بيانات'
end

function list(s)
	local I = trim(s)
	return xt(s)
end

function p.pageId(frame)
	return mw.wikibase.getEntityIdForCurrentPage()
end

function p.makecategory1(options)  --Main function
	page_title_object = mw.title.getCurrentTitle()
	ns = page_title_object.namespace	
	title = page_title_object.text
	-- ############################
	prop = options['property']
	prop2 = options['justthisqual']
	noicon = options['noicon'] -- options to hide the icon.
	nocate = options['nocate']  -- options to hide the category.
	q = options['category']
	iid = options['entityId'] or options['id']
	icon2 = options['icon2']
	-- ############################
	if iid == '' or not iid then
             id = p.pageId()
             else id = iid 
      end
	-- ############################
	if prop  == '' or not prop then
		return nil -- don't do anything if no options property.
	end
	-- ############################
	propertyid = mw.ustring.gsub(prop:upper(), " ", "")

	icon = icons(propertyid,id,noicon,icon2)   -- function to display the icon.
	cate = category(propertyid,q,nocate) -- function to display the category.
	-- ############################
	if prop2 and prop2 ~= "" then 
		cate = cate .. category( mw.ustring.gsub(prop2:upper(), " ", "") , q , nocate) 
	end
	-- ############################
	last = cate ..''.. icon
	--mw.log("Module:Wikidata/تتبع:" .. title)
	if title == "ويكي بيانات/ملعب ويكي بيانات" then
		last = icon
	end	
	if ns == 2 then -- to hide category in user pages
		 last = icon
	end
	return last
end

function p.makecategory(frame)  --Main function
	local final = p.makecategory1(frame.args)
	return final
end

function p.make1(prop,id)  --Main function
	if id == '' or not id then
             id = p.pageId()
             else id = iid 
      end
	if prop  == '' or not prop then
		return nil -- don't do anything if no args property.
	end
	propertyid = mw.ustring.gsub(prop:upper(), " ", "")

	icon = icons(propertyid,id,noicon)   -- function to display the icon.
	cate = category(propertyid,q,nocate) -- function to display the category.
	
	last = cate ..''.. icon
		return last
end


function p.SS(frame) --testing function
	s = mw.ustring.gsub(frame.args['property']:upper(), " ", "")
	s = list(s)
	s = mw.text.trim(s)
	if s  == '' or not s then
		return  nil
	end
	q = frame.args['category']
	if q  == '' or not q then
		return category(s)
        else return q
	end
	
end

return p