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

מ. רובין (שיחה | תרומות)
ניסיון
מ. רובין (שיחה | תרומות)
אין תקציר עריכה
 
(3 גרסאות ביניים של אותו משתמש אינן מוצגות)
שורה 1: שורה 1:
local projectsTemplate = {
local projectsTemplate = {
    ['cphe'] = {
['cphe'] = {
        logo='סמל ב"ה.png',
['logo']='סמל ב"ה.png',
        projectName='חב"דפדיה',
['projectName'] = 'חב"דפדיה',
        description='[[חב"דפדיה]]',
['description']='[[חב"דפדיה]]',
        display='שפה זו',
['display']='שפה זו',
        projectPrefix='',
['pageName'] = ''
        pageName=''
},
    },
['chabadtext'] = {
    ['chabadtext'] = {
['logo']='חבדטקסט.png',
        logo='סמל ב"ה.png',
['projectName'] = 'חב"דטקסט',
        projectName='חב"דטקסט',
['description']='טקסט',
        description='טקסט',
['display']='חב"דטקסט',
        display='חב"דטקסט',
['projectPrefix']='text'
        projectPrefix='text',
},
        pageName=''
['chabadquote'] = {
    },
['logo']='חבדציטוט.png',
    ['chabadquote'] = {
['projectName'] = 'חב"דציטוט',
        logo='סמל ב"ה.png',
['description']='ציטוטים',
        projectName='חב"דציטוט',
['display']='חב"דציטוט',
        description='ציטוטים',
['projectPrefix']='zitut'
        display='חב"דציטוט',
}
        projectPrefix='zitut',
        pageName=''
    }
}
}


local function renderProject(proj)
function render(frame)
    local prefix = proj.projectPrefix or ''
local args = require('Module:Arguments').getArgs(frame)
    local page = proj.pageName or ''
local title = mw.title.getCurrentTitle().text
    local display = proj.pageDisplay or page
local projectLinks = {}
    local logo = proj.logo or ''
local entity = mw.wikibase and mw.wikibase.getEntityObject()
   
    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 args['חב"דפדיה'] then
    if logo ~= '' then
local t = mw.clone(projectsTemplate['cphe'])
        html:wikitext(string.format('[[File:%s|20px|link=|%s]] %s ב%s: %s',
t['projectPrefix'] = args['חב"דפדיה']
            logo, proj.projectName, proj.description, proj.display, link))
t['pageName'] = args['חב"דפדיה']
    else
t['pageDisplay'] = args['שם חב"דפדיה'] or title
        html:wikitext(string.format('%s ב%s: %s', proj.projectName, proj.display, link))
table.insert(projectLinks, t)
    end
end
    return html
end


local function render(frame)
local projects = {
    local args = require('Module:Arguments').getArgs(frame)
{
    local title = mw.title.getCurrentTitle().text
arg='חב"דציטוט',
    local projectLinks = {}
template='chabadquote',
name='chabadquote'
},
{
arg='חב"דטקסט',
template='chabadtext',
name='chabadtext'
}
}


    -- חב"דפדיה
for i, proj in ipairs(projects) do
    if args['חב"דפדיה'] then
if entity~=nil and (not args[proj['arg']] or args[proj['arg']]==nil) and proj['name'] then
        local t = mw.clone(projectsTemplate['cphe'])
args[proj['arg']] = mw.wikibase.sitelink(entity, proj['name'])
        t.projectPrefix = args['חב"דפדיה']
args['שם ' .. proj['arg']] = title
        t.pageName = args['חב"דפדיה']
end
        t.pageDisplay = args['שם חב"דפדיה'] or title
if args[proj['arg']] then
        table.insert(projectLinks, t)
local t = mw.clone(projectsTemplate[proj['template']])
    end
t['pageName'] = args[proj['arg']]
    -- חב"דפדיה 2
t['pageDisplay'] = args['שם ' .. proj['arg']] or t['pageName']
    if args['חב"דפדיה 2'] then
table.insert(projectLinks, t)
        local t = mw.clone(projectsTemplate['cphe'])
end
        t.projectPrefix = args['חב"דפדיה 2']
        t.pageName = args['חב"דפדיה 2']
        t.pageDisplay = args['שם חב"דפדיה 2'] or title
        table.insert(projectLinks, t)
    end


    local projects = {
local i = 2
        {arg='חב"דציטוט', template='chabadquote'},
local additionalArg = mw.ustring.format('%s %i', proj['arg'], i)
        {arg='חב"דטקסט', template='chabadtext'}
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


    for _, proj in ipairs(projects) do
local float = 'float: left;'
        if args[proj.arg] then
if args['1'] == 'ימין' then
            local t = mw.clone(projectsTemplate[proj.template])
float = ''
            t.pageName = args[proj.arg]
end
            t.pageDisplay = args['שם ' .. proj.arg] or t.pageName
            table.insert(projectLinks, t)
        end


        -- מספרים נוספים
local templatestyles = frame:extensionTag{
        local i = 2
name = 'templatestyles',
        local additionalArg = string.format('%s %d', proj.arg, i)
args = { src = 'יחידה:Sister project links/styles.css' }
        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;'
local root = mw.html.create('table')
    if args['1'] == 'ימין' then float = 'float: right;' end
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 templatestyles = frame:extensionTag{
local cat = ''
        name='templatestyles',
if not next(projectLinks) then
        args={ src='יחידה:Sister project links/styles.css' }
mw.log('Category added: קטגוריה:שגיאות פרמטריות בתבנית מיזמים')
    }
cat = '[[קטגוריה:שגיאות פרמטריות בתבנית מיזמים]]'
else
for _, v in ipairs(projectLinks) do
root:tag('tr'):tag('td'):node(renderProject(v))
end
end


    local root = mw.html.create('table')
return tostring(root) .. templatestyles .. cat
    root:addClass('sistersitebox'):addClass('plainlinks'):addClass('noprint')
end
        :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
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
}