הלימוד באתר מוקדש
לעילוי נשמת פרופ' חכם יעקב שוויקה זצ"ל

שבין שאר מפעליו הרבים לריבוי והפצת התורה דרך מיחשוב
עודד, תמך וסייע גם לאתר זה לגדול ולהתפתח.

פרסם כאן או הקדש את הלימוד באתר >>

יחידה:פרמטרים

מתוך ויקיסוגיה
גרסה מ־12:33, 22 במרץ 2017 מאת אלישיב (שיחה | תרומות) (גרסה אחת יובאה)
(הבדל) → הגרסה הקודמת | הגרסה האחרונה (הבדל) | הגרסה הבאה ← (הבדל)
קפיצה לניווט קפיצה לחיפוש

ניתן ליצור תיעוד על היחידה הזאת בדף יחידה:פרמטרים/תיעוד

-- This function is used for תבנית:הערה parameters control
function equal(frame)
	local pframe = frame:getParent()
	type = mw.ustring.sub(pframe:getTitle(), 7)
	oldargs = pframe.args
	local newargs = {}
	local kinds = frame.args
	local stop
	for p, pp in pairs(oldargs) do
		stop = false
		if tostring(p) == tostring(kinds[1]) and newargs[p] == nil then
			newargs[p] = pp
			stop = true
		elseif tostring(p) == tostring(kinds[1]) then
			equalerror("תוכן כפול: " .. newargs[p] .. " וגם " .. pp)
			stop = true
		else 
			for z, zz in ipairs(kinds) do
				if tostring(p) == tostring(zz) then
					newargs[p] = pp
					stop = true
					do
						break
					end
				end
			end
		end
		if not stop then
			local kind = newargs[kinds[1]] or newargs[tonumber(kinds[1])]
			if kind ~= nil then
				equalerror("תוכן כפול: " .. kind .. " וגם " .. p .. "=" .. pp)
			else newargs[kinds[1]] = p .. "=" .. pp
			end
		end
	end
	return frame:expandTemplate({title = frame.args["קוד"], args = newargs})
end

function short(frame)
	local pframe = frame:getParent()
	type = mw.ustring.sub(pframe:getTitle(), 7)
	local found
	for p, pp in pairs(pframe.args) do
		found = false
		for z, zz in ipairs(frame.args) do
			if tostring(p) == tostring(zz) then
				found = true
			end
		end
		if not found and not (p == 1 and pp == "") then
			equalerror("פרמטר לא ידוע: " .. p .. " = '" .. pp ..  "'")
		end
	end
end

function equalerror(message)
	error("[[קטגוריה:שגיאות קריאה לתבנית " .. type .. "]] (בקריאה ל[[תבנית:" .. type .. "]]) " .. message, 0)
end

function decode(frame)
	return mw.uri.decode(frame.args[1])
end

function biur(frame)
	pframe = frame:getParent()
	local newargs = {}
	for a, aa in pairs(pframe.args) do
		if a == "קבוצה" then
			error('פרמטר "קבוצה" כפול[[category:' ..
				tostring(mw.message.new("Cite-tracking-category-cite-error")) .. ']]', 0)
		end
		newargs[a] = aa
	end
	newargs["קבוצה"] = frame.args[1] or "hebrew"
	return frame:expandTemplate{title = "הערה", args = newargs}
end

function biurim(frame)
	pframe = frame:getParent()
	local newargs = {}
	for a, aa in pairs(pframe.args) do
		if a == "קבוצה" then
			error('פרמטר "קבוצה" כפול[[category:' ..
				tostring(mw.message.new("Cite-tracking-category-cite-error")) .. ']]', 0)
		end
		newargs[a] = aa
	end
	newargs["קבוצה"] = frame.args[1] or "hebrew"
	return frame:expandTemplate{title = "הערות שוליים", args = newargs}
end

--[[
	this is a list of pages to be excluded from param validation test, because they are too heavy.
]]

local verboten = {
	['פיגועי הטרור הפלסטיני (2015–2016)'] = '',
	['בוסטון סלטיקס'] = '',
	['המדינה האסלאמית'] = '',
	['ליגת ה-NBA'] ='',
	['מבצע עופרת יצוקה'] = '',
	['רב חסדא'] = '',
	
	}

function validateParameters( frame )
	local pageName = mw.title.getCurrentTitle().text
	return verboten[pageName] or require('Module:ParamValidator').validateparams( frame )
end

return {
	main = validateParameters, 
	equal = equal, 
	decode = decode, 
	short = short, 
	biur = biur,
	biurim = biurim,
}