در حال ویرایش پودمان:Infobox

هشدار: شما وارد نشده‌اید. نشانی آی‌پی شما برای عموم قابل مشاهده خواهد بود اگر هر تغییری ایجاد کنید. اگر وارد شوید یا یک حساب کاربری بسازید، ویرایش‌هایتان به نام کاربری‌تان نسبت داده خواهد شد، همراه با مزایای دیگر.

این ویرایش را می‌توان خنثی کرد. لطفاً تفاوت زیر را بررسی کنید تا تأیید کنید که این چیزی است که می‌خواهید انجام دهید، سپس تغییرات زیر را ذخیره کنید تا خنثی‌سازی ویرایش را به پایان ببرید.

نسخهٔ فعلی متن شما
خط ۲: خط ۲:
-- This module implements {{Infobox}}
-- This module implements {{Infobox}}
--
--
 
local p = {}
local p = {}
 
local navbar = require('Module:Navbar')._navbar
local HtmlBuilder = require('mw.html')
 
local args = {}
local args = {}
local origArgs
local origArgs
local root
local root
 
   
local function notempty( s ) return s and s:match( '%S' ) end
function union(t1, t2)
 
local function fixChildBoxes(sval, tt)
if notempty(sval) then
local marker = '<span class=special_infobox_marker>'
local s = sval
s = mw.ustring.gsub(s, '(<%s*[Tt][Rr])', marker .. '%1')
s = mw.ustring.gsub(s, '(</[Tt][Rr]%s*>)', '%1' .. marker)
if s:match(marker) then
s = mw.ustring.gsub(s, marker .. '%s*' .. marker, '')
s = mw.ustring.gsub(s, '([\r\n]|-[^\r\n]*[\r\n])%s*' .. marker, '%1')
s = mw.ustring.gsub(s, marker .. '%s*([\r\n]|-)', '%1')
s = mw.ustring.gsub(s, '(</[Cc][Aa][Pp][Tt][Ii][Oo][Nn]%s*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '(<%s*[Tt][Aa][Bb][Ll][Ee][^<>]*>%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '^(%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s, '([\r\n]%{|[^\r\n]*[\r\n]%s*)' .. marker, '%1')
s = mw.ustring.gsub(s,  marker .. '(%s*</[Tt][Aa][Bb][Ll][Ee]%s*>)', '%1')
s = mw.ustring.gsub(s, marker .. '(%s*\n|%})', '%1')
end
if s:match(marker) then
local subcells = mw.text.split(s, marker)
s = ''
for k = 1, #subcells do
if k == 1 then
s = s .. subcells[k] .. '</' .. tt .. '></tr>'
elseif k == #subcells then
local rowstyle = ' style="display:none"'
if notempty(subcells[k]) then rowstyle = '' end
s = s .. '<tr' .. rowstyle ..'><' .. tt .. ' colspan=2>\n' .. subcells[k]
elseif notempty(subcells[k]) then
if (k % 2) == 0 then
s = s .. subcells[k]
else
s = s .. '<tr><' .. tt .. ' colspan=2>\n' .. subcells[k] .. '</' .. tt .. '></tr>'
end
end
end
end
-- the next two lines add a newline at the end of lists for the PHP parser
-- https://en.wikipedia.org/w/index.php?title=Template_talk:Infobox_musical_artist&oldid=849054481
-- remove when [[:phab:T191516]] is fixed or OBE
s = mw.ustring.gsub(s, '([\r\n][%*#;:][^\r\n]*)$', '%1\n')
s = mw.ustring.gsub(s, '^([%*#;:][^\r\n]*)$', '%1\n')
return s
else
return sval
end
end
 
local 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)
                     :cssText(rowArgs.rowcellstyle)
                    :wikitext(fixChildBoxes(rowArgs.header, 'th'))
     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)
                     :cssText(rowArgs.rowcellstyle)
                     .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()
             :cssText(rowArgs.rowcellstyle)
             .wikitext(rowArgs.data)
            :newline()
             :wikitext(fixChildBoxes(rowArgs.data, 'td'))
     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(fixChildBoxes(args.above,'th'))
                 .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(fixChildBoxes(args.below,'td'))
                 .wikitext(args.below)
end
end


خط ۱۸۹: خط ۱۳۰:
         addRow({
         addRow({
             data = args['subheader' .. tostring(num)],
             data = args['subheader' .. tostring(num)],
             datastyle = args.subheaderstyle,
             datastyle = args.subheaderstyle or args['subheaderstyle' .. tostring(num)],
            rowcellstyle = args['subheaderstyle' .. tostring(num)],
             class = args.subheaderclass,
             class = args.subheaderclass,
             rowclass = args['subheaderrowclass' .. tostring(num)]
             rowclass = args['subheaderrowclass' .. tostring(num)]
خط ۲۰۷: خط ۱۴۷:
     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)],
            rowcellstyle = args['rowcellstyle' .. 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', 'left')
                 .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
خط ۲۶۹: خط ۲۰۵:
local function renderTrackingCategories()
local function renderTrackingCategories()
     if args.decat ~= 'yes' then
     if args.decat ~= 'yes' then
    if args.child == 'yes' then
        if #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then
        if args.title then
             root.wikitext('')
            root:wikitext('[[Category:Pages which use embedded infobox templates with the title parameter]]')
        end
        end
        if args.child == 'yes' and args.title then
        elseif #(getArgNums('data')) == 0 and mw.title.getCurrentTitle().namespace == 0 then
            root.wikitext('')
             root:wikitext('[[Category:Articles which use infobox templates with no data rows]]')
         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((args.subbox ~= 'yes') and 'infobox' or nil)
             .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 = 'rowcellstyle'},
         {prefix = 'class'},
        {prefix = 'dataid'},
        {prefix = 'labelid'},
        {prefix = 'headerid'},
        {prefix = 'rowid'}
     }, 50)
     }, 50)
    preprocessSingleArg('headerclass')
     preprocessSingleArg('headerstyle')
     preprocessSingleArg('headerstyle')
     preprocessSingleArg('labelstyle')
     preprocessSingleArg('labelstyle')
لطفاً توجه داشته‌باشید که همهٔ مشارکت‌ها در ویکی حج منتشرشده تحت Creative Commons Attribution-NonCommercial-ShareAlike در نظر گرفته‌می‌شوند (برای جزئیات بیش‌تر ویکی حج:حق تکثیر را ببینید). اگر نمی‌خواهید نوشته‌هایتان بی‌رحمانه ویرایش و توزیع شوند؛ بنابراین، آنها را اینجا ارائه نکنید.
شما همچنین به ما تعهد می‌کنید که خودتان این را نوشته‌اید یا آن را از یک منبع با مالکیت عمومی یا مشابه آزاد آن برداشته‌اید (برای جزئیات بیش‌تر ویکی حج:حق تکثیر را ببینید). کارهای دارای حق تکثیر را بدون اجازه ارائه نکنید!
لغو راهنمای ویرایش‌کردن (در پنجرهٔ تازه باز می‌شود)

الگوی به‌کاررفته در این صفحه: