יחידה:Sister project links
ניתן ליצור תיעוד על היחידה הזאת בדף יחידה:Sister project links/תיעוד
local projectsTemplate = {
['cphe'] = {
logo='סמל ב"ה.png',
projectName='חב"דפדיה',
description='[[חב"דפדיה]]',
display='שפה זו',
projectPrefix='',
pageName=''
},
['chabadtext'] = {
logo='סמל ב"ה.png',
projectName='חב"דטקסט',
description='טקסט',
display='חב"דטקסט',
projectPrefix='text',
pageName=''
},
['chabadquote'] = {
logo='סמל ב"ה.png',
projectName='חב"דציטוט',
description='ציטוטים',
display='חב"דציטוט',
projectPrefix='zitut',
pageName=''
}
}
local function renderProject(proj)
local prefix = proj.projectPrefix or ''
local page = proj.pageName or ''
local display = proj.pageDisplay or page
local logo = proj.logo or ''
local link
if prefix ~= '' and page ~= '' then
link = string.format('[[:%s:%s|%s]]', prefix, page, display)
else
link = display
end
local html = mw.html.create('div'):addClass('sisterwikilinkT')
if logo ~= '' then
html:wikitext(string.format('[[File:%s|20px|link=|%s]] %s ב%s: %s',
logo, proj.projectName, proj.description, proj.display, link))
else
html:wikitext(string.format('%s ב%s: %s', proj.projectName, proj.display, link))
end
return html
end
local function render(frame)
local args = require('Module:Arguments').getArgs(frame)
local title = mw.title.getCurrentTitle().text
local projectLinks = {}
-- חב"דפדיה
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
-- חב"דפדיה 2
if args['חב"דפדיה 2'] then
local t = mw.clone(projectsTemplate['cphe'])
t.projectPrefix = args['חב"דפדיה 2']
t.pageName = args['חב"דפדיה 2']
t.pageDisplay = args['שם חב"דפדיה 2'] or title
table.insert(projectLinks, t)
end
local projects = {
{arg='חב"דציטוט', template='chabadquote'},
{arg='חב"דטקסט', template='chabadtext'}
}
for _, proj in ipairs(projects) do
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 = string.format('%s %d', proj.arg, i)
while args[additionalArg] do
local t = mw.clone(projectsTemplate[proj.template])
t.pageName = args[additionalArg]
t.pageDisplay = args[string.format('שם %s %d', proj.arg, i)] or t.pageName
table.insert(projectLinks, t)
i = i + 1
additionalArg = string.format('%s %d', proj.arg, i)
end
end
local float = 'float: left;'
if args['1'] == 'ימין' then float = 'float: right;' 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 templatestyles .. tostring(root) .. cat
end
return { render = render }