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