Перейти к содержанию

Амодуль:SDcat

Аматериал Авикипедиа аҟынтә - зхы иақәиҭу аенциклопедиа

Для документации этого модуля может быть создана страница Амодуль:SDcat/doc

--[[
SDcat
Аҭыԥантәи ахҳәаа кьаҿ Викидата аҟны иҟоу иақәшәо-иақәымшәо агәаҭаразы амодуль
--]]

local p = {}

-------------------------------------------------------------------------------
--[[
setCat иамоуп qid Викидата ахаҭара ииасуеит |qid=
(иааныжьзар уажәтәи астатиа иадҳәалоу қьид ахь иҟоуп)
насгьы аҭыԥантәи ахҳәаа кьаҿ ииасит |sd=
Уи акатегориа шьҭнахуеит, иадҳәалоу Викидата ыҟазар.
Иара иаҳнаҭоит ашьҭаҵаратә категориақәа руак, иахәҭоу ала:
* Акатегориа:Ахҳәаа кьаҿ Викидыррақәа ирықәшәоит (реиҳау еилымкаауа)
* Акатегории:Ахҳәаа кьаҿ Викидыррақәа иреиԥшым
* Акатегории:Ахҳәаа кьаҿ иҭацәу Викидата ахҳәаа ацны
Аԥышәара азы, азхьарԥш аԥхьарба |lp= еиқәыршәазар ҟалоит ":" акатегориақәа 
рбарҭахарц азы.
--]]

-- афункциа егьырҭ амодульқәа рҿы ахархәаразы аекспорт азууп
-- (аҭыԥантәи ахҳәаа кьаҿ, Авикидыррақәа ахаҭара-ID, азхьарԥш аԥхьарба)
p._setCat = function(sdesc, itemID, lp)
	if not mw.wikibase then return nil end
	if itemID == "" then itemID = nil end
	-- Авикидыррақәа рыхҳәаа аҭыԥ
	local wdesc = (mw.wikibase.getDescription(itemID) or ""):lower()
	if wdesc == "" then
		return "[[" .. lp .. "Акатегориа:Ахҳәаа кьаҿ иҭацәу Викидыррақәа рыхҳәаа ацны]]"
	elseif wdesc == sdesc then
		return "[[" .. lp .. "Акатегориа:Ахҳәаа кьаҿ Авикидыррақәа ирықәшәоит]]"
	else
		return "[[" .. lp .. "Акатегориа:Ахҳәаа кьаҿ Викидыррақәа иреиԥшым]]"
	end
end

-- #invoke аҟынтәи ааԥхьаразы афункциа аекспорт ҟаҵоуп
p.setCat = function(frame)
	local args
	if frame.args.sd then
		args = frame.args
	else
		args = frame:getParent().args
	end
	-- Аҭыԥантәи ахҳәаа кьаҿ
	local sdesc = mw.text.trim(args.sd or ""):lower()
	-- Авикидыррақәа ахаҭара-ID
	local itemID = mw.text.trim(args.qid or "")
	-- азхьарԥш аԥхьарба, ацәаҳәа ацәаҳәақәа
	local lp = mw.text.trim(args.lp or ""):gsub('"', '')
	return p._setCat(sdesc, itemID, lp)
end

return p