לדלג לתוכן

יחידה:Sister project links

מתוך צפונות ויקי
גרסה מ־21:16, 5 בפברואר 2020 מאת wikipedia:he>ערן (יצירת דף עם התוכן "local projectsTemplate = { ['wikipedia'] = { ['logo']='Wikipedia-logo-v2.svg', ['projectName'] = 'ויקיפדיה', ['description']='ויקיפדיה...")
(הבדל) → הגרסה הקודמת | הגרסה האחרונה (הבדל) | הגרסה הבאה ← (הבדל)

ניתן ליצור תיעוד על היחידה הזאת בדף יחידה:Sister project links/תיעוד

local projectsTemplate = {
	['wikipedia'] = {
		['logo']='Wikipedia-logo-v2.svg',
		['projectName'] = 'ויקיפדיה',
		['description']='[[ויקיפדיה]]',
		['display']='שפה זו',
		['pageName'] = ''
	},
	['wiktionary'] = {
		['logo']='Wiktionary-logo-he.png',
		['projectName'] = 'ויקימילון',
		['description']='ערך מילוני',
		['display']='וויקימילון',
		['projectPrefix']='wikt'
	},
	['wikiquote'] = {
		['logo']='Wiktionary-logo-he.png',
		['projectName'] = 'ויקיציטוט',
		['description']='ציטוטים',
		['display']='ויקיציטוט',
		['projectPrefix']='q'
	},
	['wikibooks'] = {
		['logo']='Wiktionary-logo-he.png',
		['projectName'] = 'ויקיספר',
		['description']='ספר לימוד',
		['display']='וויקיספר',
		['projectPrefix']='b'
	}	
}

function render(frame)
	local args = frame:getParent().args
	local args = args['ימין']
	
	local projectLinks = {}
	local entity = wikibase.getEntityIdForCurrentPage()
	
	if args['ויקיפדיה'] then
		local t = projectsTemplate['wikipedia']
		t['projectPrefix'] = args['ויקיפדיה']
		t['pageDisplay'] = args['שם ויקיפדיה'] or frame:getTitle()
		table.insert(projectLinks, t)
	end
	if args['ויקיפדיה 2'] then
		local t = projectsTemplate['wikipedia']
		t['projectPrefix'] = args['ויקיפדיה 2']
		t['pageDisplay'] = args['שם ויקיפדיה 2'] or frame:getTitle()
		table.insert(projectLinks, t)
	end	
	local projects = {
		{
			arg='ויקימילון',
			template='wiktionary',
			name='hewiktionary'
		},
		{
			arg='ויקיציטוט',
			template='wikiquote',
			name='hewikiquote'
		},
		{
			arg='ויקיספר',
			template='wikibooks',
			name='hewikibooks'
		}
	}
	for i, proj in ipairs(projects) do
		if not args[proj['arg']] then
			args[proj['arg']] = mw.wikibase.sitelink(entity, proj['name'])
			args[proj['arg']] = args[proj['arg']] and args[proj['arg']]['title']
		end
		if args[proj['arg']] then
			local t = projectsTemplate[proj['template']]
			t['pageName'] = args[proj['arg']]
			t['pageDisplay'] = args['שם ' .. proj['arg']] or args[proj['arg']]
			table.insert(projectLinks, t)
		else
			
		end	
		local i = 2
		while args[proj['arg'] .. ' ' .. i] do
			local t = projectsTemplate['wiktionary']
			t['pageName'] = args[proj['arg'] .. ' ' .. i]
			t['pageDisplay'] = args['שם ' .. proj['arg'] .. i] or args[proj['arg']]
			table.insert(projectLinks, t)
			i=i+1
		end
	end

	local root = mw.html.create('table')
	root:addClass('toccolours')
		:addClass('sistersitebox')
		:addClass('plainlinks')
		:addClass('noprint')
		:cssText('width: margin: 0 1em 0.5em 0;')
	root:tag('tr'):tag('th'):css('text-align', 'center'):wikiText('מיזמי [[קרן ויקימדיה]]')

	for k,v in pairs(projectLinks) do
		root:tag('tr'):tag('td'):node(renderProject(v))
	end
	return root
end

function renderProject(projectTemplate)
	return mw.html.create('table')('div')
		:addClass('sisterwikilinkT')
		:wikitext(mw.ustring.format("[[File:{{{%s}}}|20px|nolink|%s]] %s ב%s: '''[[:%s:%s|%s]]'''", 
			projectTemplate['logo'], projectTemplate['projectName'], 
			projectTemplate['description'], projectTemplate['display'],
			projectTemplate['projectPrefix'], projectTemplate['pageName'], projectTemplate['pageDisplay']))

end

return 	{
	render=render
}