پودمان:Infobox: تفاوت میان نسخه‌ها

۵۳۸ بایت حذف‌شده ،  ‏۲۵ ژوئن ۲۰۱۶
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۴: خط ۴:
   
   
local p = {}
local p = {}
 
local navbar = require('Module:Navbar')._navbar
local HtmlBuilder = require('Module:HtmlBuilder')
 
local args = {}
local args = {}
local origArgs
local origArgs
local root
local root
 
local function union(t1, t2)
function union(t1, t2)
     -- Returns the union of the values of two tables, as a sequence.
     -- Returns the union of the values of two tables, as a sequence.
     local vals = {}
     local vals = {}
خط ۴۵: خط ۴۵:
     if rowArgs.header then
     if rowArgs.header then
         root
         root
             :tag('tr')
             .tag('tr')
                 :addClass(rowArgs.rowclass)
                 .addClass(rowArgs.rowclass)
                 :cssText(rowArgs.rowstyle)
                 .tag('th')
                :attr('id', rowArgs.rowid)
                     .attr('colspan', 2)
                :tag('th')
                     .addClass(rowArgs.class)
                     :attr('colspan', 2)
                     .css('text-align', 'center')
                     :attr('id', rowArgs.headerid)
                     .cssText(args.headerstyle)
                    :addClass(rowArgs.class)
                     .wikitext(rowArgs.header)
                     :addClass(args.headerclass)
                    :css('text-align', 'center')
                     :cssText(args.headerstyle)
                     :wikitext(rowArgs.header)
     elseif rowArgs.data then
     elseif rowArgs.data then
         local row = root:tag('tr')
         local row = root.tag('tr')
         row:addClass(rowArgs.rowclass)
         row.addClass(rowArgs.rowclass)
        row:cssText(rowArgs.rowstyle)
        row:attr('id', rowArgs.rowid)
         if rowArgs.label then
         if rowArgs.label then
             row
             row
                 :tag('th')
                 .tag('th')
                     :attr('scope', 'row')
                     .attr('scope', 'row')
                     :attr('id', rowArgs.labelid)
                     .css('text-align', 'left')
                     :cssText(args.labelstyle)
                     .cssText(args.labelstyle)
                     :wikitext(rowArgs.label)
                     .wikitext(rowArgs.label)
                     :done()
                     .done()
         end
         end
          
          
         local dataCell = row:tag('td')
         local dataCell = row.tag('td')
         if not rowArgs.label then  
         if not rowArgs.label then  
             dataCell
             dataCell
                 :attr('colspan', 2)
                 .attr('colspan', 2)
                 :css('text-align', 'center')  
                 .css('text-align', 'center')  
         end
         end
         dataCell
         dataCell
             :attr('id', rowArgs.dataid)
             .addClass(rowArgs.class)
            :addClass(rowArgs.class)
             .cssText(rowArgs.datastyle)
             :cssText(rowArgs.datastyle)
             .newline()
             :newline()
             .wikitext(rowArgs.data)
             :wikitext(rowArgs.data)
     end
     end
end
end
خط ۹۱: خط ۸۴:


     root
     root
         :tag('caption')
         .tag('caption')
             :addClass(args.titleclass)
             .addClass(args.titleclass)
             :cssText(args.titlestyle)
             .cssText(args.titlestyle)
             :wikitext(args.title)
             .wikitext(args.title)
end
end


خط ۱۰۱: خط ۹۴:
      
      
     root
     root
         :tag('tr')
         .tag('tr')
             :tag('th')
             .tag('th')
                 :attr('colspan', 2)
                 .attr('colspan', 2)
                 :addClass(args.aboveclass)
                 .addClass(args.aboveclass)
                 :css('text-align', 'center')
                 .css('text-align', 'center')
                 :css('font-size', '125%')
                 .css('font-size', '125%')
                 :css('font-weight', 'bold')
                 .css('font-weight', 'bold')
                 :cssText(args.abovestyle)
                 .cssText(args.abovestyle)
                 :wikitext(args.above)
                 .wikitext(args.above)
end
end


خط ۱۱۶: خط ۱۰۹:
      
      
     root
     root
         :tag('tr')
         .tag('tr')
             :tag('td')
             .tag('td')
                 :attr('colspan', '2')
                 .attr('colspan', '2')
                 :addClass(args.belowclass)
                 .addClass(args.belowclass)
                 :css('text-align', 'center')
                 .css('text-align', 'center')
                 :cssText(args.belowstyle)
                 .cssText(args.belowstyle)
                 :newline()
                 .newline()
                 :wikitext(args.below)
                 .wikitext(args.below)
end
end


خط ۱۵۴: خط ۱۴۷:
     for k, num in ipairs(imagenums) do
     for k, num in ipairs(imagenums) do
         local caption = args['caption' .. tostring(num)]
         local caption = args['caption' .. tostring(num)]
         local data = mw.html.create():wikitext(args['image' .. tostring(num)])
         local data = HtmlBuilder.create().wikitext(args['image' .. tostring(num)])
         if caption then
         if caption then
             data
             data
                 :tag('div')
                 .tag('br', {selfClosing = true})
                     :cssText(args.captionstyle)
                    .done()
                     :wikitext(caption)
                .tag('div')
                     .cssText(args.captionstyle)
                     .wikitext(caption)
         end
         end
         addRow({
         addRow({
خط ۱۸۲: خط ۱۷۷:
             datastyle = args.datastyle,
             datastyle = args.datastyle,
             class = args['class' .. tostring(num)],
             class = args['class' .. tostring(num)],
             rowclass = args['rowclass' .. tostring(num)],
             rowclass = args['rowclass' .. tostring(num)]
            rowstyle = args['rowstyle' .. tostring(num)],
            dataid = args['dataid' .. tostring(num)],
            labelid = args['labelid' .. tostring(num)],
            headerid = args['headerid' .. tostring(num)],
            rowid = args['rowid' .. tostring(num)]
         })
         })
     end
     end
خط ۱۹۶: خط ۱۸۶:
      
      
     root
     root
         :tag('tr')
         .tag('tr')
             :tag('td')
             .tag('td')
                 :attr('colspan', '2')
                 .attr('colspan', '2')
                 :css('text-align', 'right')
                 .css('text-align', 'right')
                 :wikitext(navbar{
                 .wikitext(mw.getCurrentFrame():expandTemplate({
                     args.name,
                    title = 'navbar',
                    mini = 1,
                     args = { args.name, mini = 1 }
                 })
                 }))
end
end


خط ۲۰۹: خط ۱۹۹:
     local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title'])
     local italicTitle = args['italic title'] and mw.ustring.lower(args['italic title'])
     if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then
     if italicTitle == '' or italicTitle == 'force' or italicTitle == 'yes' then
         root:wikitext(mw.getCurrentFrame():expandTemplate({title = 'italic title'}))
         root.wikitext(mw.getCurrentFrame():expandTemplate({title = 'italic title'}))
     end
     end
end
end
خط ۲۱۶: خط ۲۰۶:
     if args.decat ~= 'yes' then
     if args.decat ~= 'yes' then
         if #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then
         if #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then
             root:wikitext('[[Category:Articles which use infobox templates with no data rows]]')
             root.wikitext('[[Category:Articles which use infobox templates with no data rows]]')
         end
         end
         if args.child == 'yes' and args.title then
         if args.child == 'yes' and args.title then
             root:wikitext('[[Category:Pages which use embedded infobox templates with the title parameter]]')
             root.wikitext('[[Category:Articles which use embedded infobox templates with the title parameter]]')
         end
         end
     end
     end
خط ۲۲۸: خط ۲۱۸:
     -- if the infobox is used as a 'child' inside another infobox.
     -- if the infobox is used as a 'child' inside another infobox.
     if args.child ~= 'yes' then
     if args.child ~= 'yes' then
         root = mw.html.create('table')
         root = HtmlBuilder.create('table')
          
          
         root
         root
             :addClass('infobox')
             .addClass('infobox')
             :addClass(args.bodyclass)
             .addClass(args.bodyclass)
            .attr('cellspacing', 3)
            .css('border-spacing', '3px')
              
              
             if args.subbox == 'yes' then
             if args.subbox == 'yes' then
                 root
                 root
                     :css('padding', '0')
                     .css('padding', '0')
                     :css('border', 'none')
                     .css('border', 'none')
                     :css('margin', '-3px')
                     .css('margin', '-3px')
                     :css('width', 'auto')
                     .css('width', 'auto')
                     :css('min-width', '100%')
                     .css('min-width', '100%')
                     :css('font-size', '100%')
                     .css('font-size', '100%')
                     :css('clear', 'none')
                     .css('clear', 'none')
                     :css('float', 'none')
                     .css('float', 'none')
                     :css('background-color', 'transparent')
                     .css('background-color', 'transparent')
             else
             else
                 root
                 root
                     :css('width', '22em')
                     .css('width', '22em')
             end
             end
         root
         root
             :cssText(args.bodystyle)
             .cssText(args.bodystyle)
      
      
         renderTitle()
         renderTitle()
         renderAboveRow()
         renderAboveRow()
     else
     else
         root = mw.html.create()
         root = HtmlBuilder.create()
          
          
         root
         root
             :wikitext(args.title)
             .wikitext(args.title)
     end
     end


خط ۳۷۶: خط ۳۶۸:
         {prefix = 'data', depend = {'label'}},
         {prefix = 'data', depend = {'label'}},
         {prefix = 'rowclass'},
         {prefix = 'rowclass'},
        {prefix = 'rowstyle'},
         {prefix = 'class'}
         {prefix = 'class'},
        {prefix = 'dataid'},
        {prefix = 'labelid'},
        {prefix = 'headerid'},
        {prefix = 'rowid'}
     }, 50)
     }, 50)
    preprocessSingleArg('headerclass')
     preprocessSingleArg('headerstyle')
     preprocessSingleArg('headerstyle')
     preprocessSingleArg('labelstyle')
     preprocessSingleArg('labelstyle')