לדלג לתוכן

יחידה:Sister project links – הבדלי גרסאות

מתוך חב"דפדיה, אנציקלופדיה חב"דית חופשית
מ שוחזר מעריכות של יוסף בן מלמד (שיחה) לעריכה האחרונה של Men770
תגיות: שחזור שוחזרה
מ. רובין (שיחה | תרומות)
אין תקציר עריכה
 
(13 גרסאות ביניים של 3 משתמשים אינן מוצגות)
שורה 8: שורה 8:
},
},
['chabadtext'] = {
['chabadtext'] = {
['logo']='סמל ב"ה.png',
['logo']='חבדטקסט.png',
['projectName'] = 'חב"דטקסט',
['projectName'] = 'חב"דטקסט',
['description']='טקסט',
['description']='טקסט',
שורה 15: שורה 15:
},
},
['chabadquote'] = {
['chabadquote'] = {
['logo']='סמל ב"ה.png',
['logo']='חבדציטוט.png',
['projectName'] = 'חב"דציטוט',
['projectName'] = 'חב"דציטוט',
['description']='ציטוטים',
['description']='ציטוטים',
שורה 24: שורה 24:


function render(frame)
function render(frame)
local args = require('Module:Arguments').getArgs(frame)
local args = require('Module:Arguments').getArgs(frame)
local title = mw.title.getCurrentTitle().text
local title = mw.title.getCurrentTitle().text
local projectLinks = {}
local projectLinks = {}
local entity = mw.wikibase and mw.wikibase.getEntityObject()
if args['חב"דפדיה'] then
local t = mw.clone(projectsTemplate['cphe'])
t['projectPrefix'] = args['חב"דפדיה']
t['pageName'] = args['חב"דפדיה']
t['pageDisplay'] = args['שם חב"דפדיה'] or title
table.insert(projectLinks, t)
end
local projects = {
local projects = {
{
{
arg='חב"דציטוט',
arg='חב"דציטוט',
template='wikiquote',
template='chabadquote',
name='chabadzitut'
name='chabadquote'
},
},
{
{
arg='חב"דטקסט',
arg='חב"דטקסט',
template='wikisource',
template='chabadtext',
name='chabadtext'
name='chabadtext'
}
}
שורה 42: שורה 51:


for i, proj in ipairs(projects) do
for i, proj in ipairs(projects) do
if entity~=nil and (not args[proj['arg']] or args[proj['arg']]==nil) and proj['name'] then
args[proj['arg']] = mw.wikibase.sitelink(entity, proj['name'])
args['שם ' .. proj['arg']] = title
end
if args[proj['arg']] then
if args[proj['arg']] then
local t = projectsTemplate[proj['template']]
local t = mw.clone(projectsTemplate[proj['template']])
local defaultDisplayName = args[proj['arg']]
t['pageName'] = args[proj['arg']]
t['pageName'] = args[proj['arg']]
t['pageDisplay'] = args['שם ' .. proj['arg']] or defaultDisplayName
t['pageDisplay'] = args['שם ' .. proj['arg']] or t['pageName']
table.insert(projectLinks, t)
table.insert(projectLinks, t)
else
end
end


שורה 56: שורה 65:
local additionalArg = mw.ustring.format('%s %i', proj['arg'], i)
local additionalArg = mw.ustring.format('%s %i', proj['arg'], i)
while args[additionalArg] do
while args[additionalArg] do
local t = mw.clone( projectsTemplate[proj['template']] )
local t = mw.clone(projectsTemplate[proj['template']])
t['pageName'] = args[additionalArg]
t['pageName'] = args[additionalArg]
t['pageDisplay'] = args[mw.ustring.format('שם %s %i', proj['arg'], i)] or t['pageName']
t['pageDisplay'] = args[mw.ustring.format('שם %s %i', proj['arg'], i)] or t['pageName']
שורה 63: שורה 72:
additionalArg = mw.ustring.format('%s %i', proj['arg'], i)
additionalArg = mw.ustring.format('%s %i', proj['arg'], i)
end
end
end
end


local float = 'float: left;'
local float = 'float: left;'
if args['1'] == 'ימין' then
if args['1'] == 'ימין' then
float = ''
float = ''
end
end


local templatestyles = frame:extensionTag{
local templatestyles = frame:extensionTag{
name = 'templatestyles', args = { src = 'יחידה:Sister project links/styles.css' }
name = 'templatestyles',
}
args = { src = 'יחידה:Sister project links/styles.css' }
}


local root = mw.html.create('table')
local root = mw.html.create('table')
שורה 81: שורה 90:
:addClass('noprint')
:addClass('noprint')
:cssText('margin: 0 1em 0.5em 0;' .. float)
:cssText('margin: 0 1em 0.5em 0;' .. float)
root:tag('tr'):tag('th'):css('text-align', 'center'):wikitext('מיזמי חב"דפדיה')
root:tag('tr'):tag('th'):css('text-align', 'center'):wikitext('מיזמי חב"דמדיה')
 
local cat = ''
local cat = ''
if not next(projectLinks) then
if not next(projectLinks) then
שורה 88: שורה 97:
cat = '[[קטגוריה:שגיאות פרמטריות בתבנית מיזמים]]'
cat = '[[קטגוריה:שגיאות פרמטריות בתבנית מיזמים]]'
else
else
for k,v in pairs(projectLinks) do
for _, v in ipairs(projectLinks) do
root:tag('tr'):tag('td'):node(renderProject(v))
root:tag('tr'):tag('td'):node(renderProject(v))
end
end
end
end
 
return tostring(root) .. templatestyles .. cat
return tostring(root) .. templatestyles .. cat
end
end
שורה 99: שורה 108:
return mw.html.create('div')
return mw.html.create('div')
:addClass('sisterwikilinkT')
:addClass('sisterwikilinkT')
:wikitext(mw.ustring.format("[[File:%s|20px|link=|%s]] %s ב%s: '''[[:%s:%s|%s]]'''",  
:wikitext(mw.ustring.format(
projectTemplate['logo'], projectTemplate['projectName'],  
"[[File:%s|20px|link=|%s]] %s ב%s: '''[[:%s:%s|%s]]'''",
projectTemplate['description'], projectTemplate['display'],
projectTemplate['logo'],
projectTemplate['projectPrefix'], projectTemplate['pageName'], projectTemplate['pageDisplay']))
projectTemplate['projectName'],
 
projectTemplate['description'],
projectTemplate['display'],
projectTemplate['projectPrefix'],
projectTemplate['pageName'],
projectTemplate['pageDisplay']
))
end
end


return {
return {
render=render
render = render
}
}

גרסה אחרונה מ־23:43, 29 בספטמבר 2025

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

local projectsTemplate = {
	['cphe'] = {
		['logo']='סמל ב"ה.png',
		['projectName'] = 'חב"דפדיה',
		['description']='[[חב"דפדיה]]',
		['display']='שפה זו',
		['pageName'] = ''
	},
	['chabadtext'] = {
		['logo']='חבדטקסט.png',
		['projectName'] = 'חב"דטקסט',
		['description']='טקסט',
		['display']='חב"דטקסט',
		['projectPrefix']='text'
	},
	['chabadquote'] = {
		['logo']='חבדציטוט.png',
		['projectName'] = 'חב"דציטוט',
		['description']='ציטוטים',
		['display']='חב"דציטוט',
		['projectPrefix']='zitut'
	}
}

function render(frame)
	local args = require('Module:Arguments').getArgs(frame)
	local title = mw.title.getCurrentTitle().text
	local projectLinks = {}
	local entity = mw.wikibase and mw.wikibase.getEntityObject()

	if args['חב"דפדיה'] then
		local t = mw.clone(projectsTemplate['cphe'])
		t['projectPrefix'] = args['חב"דפדיה']
		t['pageName'] = args['חב"דפדיה']
		t['pageDisplay'] = args['שם חב"דפדיה'] or title
		table.insert(projectLinks, t)
	end

	local projects = {
		{
			arg='חב"דציטוט',
			template='chabadquote',
			name='chabadquote'
		},
		{
			arg='חב"דטקסט',
			template='chabadtext',
			name='chabadtext'
		}
	}

	for i, proj in ipairs(projects) do
		if entity~=nil and (not args[proj['arg']] or args[proj['arg']]==nil) and proj['name'] then
			args[proj['arg']] = mw.wikibase.sitelink(entity, proj['name'])
			args['שם ' .. proj['arg']] = title
		end
		if args[proj['arg']] then
			local t = mw.clone(projectsTemplate[proj['template']])
			t['pageName'] = args[proj['arg']]
			t['pageDisplay'] = args['שם ' .. proj['arg']] or t['pageName']
			table.insert(projectLinks, t)
		end	

		local i = 2
		local additionalArg = mw.ustring.format('%s %i', proj['arg'], i)
		while args[additionalArg] do
			local t = mw.clone(projectsTemplate[proj['template']])
			t['pageName'] = args[additionalArg]
			t['pageDisplay'] = args[mw.ustring.format('שם %s %i', proj['arg'], i)] or t['pageName']
			table.insert(projectLinks, t)
			i=i+1
			additionalArg = mw.ustring.format('%s %i', proj['arg'], i)
		end
	end

	local float = 'float: left;'
	if args['1'] == 'ימין' then
		float = ''
	end

	local templatestyles = frame:extensionTag{
		name = 'templatestyles',
		args = { src = 'יחידה:Sister project links/styles.css' }
	}

	local root = mw.html.create('table')
	root
		:addClass('sistersitebox')
		:addClass('plainlinks')
		:addClass('noprint')
		:cssText('margin: 0 1em 0.5em 0;' .. float)
	root:tag('tr'):tag('th'):css('text-align', 'center'):wikitext('מיזמי חב"דמדיה')

	local cat = ''
	if not next(projectLinks) then
		mw.log('Category added: קטגוריה:שגיאות פרמטריות בתבנית מיזמים')
		cat = '[[קטגוריה:שגיאות פרמטריות בתבנית מיזמים]]'
	else
		for _, v in ipairs(projectLinks) do
			root:tag('tr'):tag('td'):node(renderProject(v))
		end
	end

	return tostring(root) .. templatestyles .. cat
end

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

return {
	render = render
}