יחידה:Sister project links – הבדלי גרסאות
אין תקציר עריכה |
ניסיון |
||
| שורה 1: | שורה 1: | ||
local projectsTemplate = { | 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( | 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 | end | ||
local function render(frame) | 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 | end | ||
return { render = render } | return { render = render } | ||