Модуль: Infobox tmp: различия между версиями 🔗


Материал из VEDA Wiki
Перейти к: навигация, поиск
Нет описания правки
Нет описания правки
Строка 5: Строка 5:
   local count = 0 -- computes overall amount of members as 1 per person or as number in 'Количество' field
   local count = 0 -- computes overall amount of members as 1 per person or as number in 'Количество' field
   local t = {[=[<table border=0>
   local t = {[=[<table border=0>
<tr><td colspan=2>XXXXX[[TODO]]YYYY
<tr><td colspan=2>
<div {{DivWrapOpts}}>]=] .. '[[Категория:WrapBlock]]'..[[
<div {{DivWrapOpts}}>[[Категория:WrapBlock]]
<table border=0 width=100%><tr><td colspan="2" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold; text-align: center;">Участники</td></tr></table>
<table border=0 width=100%><tr><td colspan="2" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold; text-align: center;">Участники</td></tr></table>


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
<table border=0>
<table border=0>
]]}
]=]}


   for i in string.gmatch(name, "[^;]+") do
   for i in string.gmatch(name, "[^;]+") do
     local field2 = ''
     local field2 = ''
     local field3 = ''
     local field3 = ''
     table.insert(t, [[<tr>
     table.insert(t, [=[<tr>
   <td colspan="2" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold; text-align: center;">Участник</td>
   <td colspan="2" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold; text-align: center;">Участник</td>
</tr>]])
</tr>]=])


     local l = {}
     local l = {}
Строка 28: Строка 28:
       field2 = ''
       field2 = ''
     else
     else
       field2 = [[<tr>
       field2 = [=[<tr>
   <td colspan="2"><hr></td>
   <td colspan="2"><hr></td>
</tr><tr>
</tr><tr>
   <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Категория:</td>
   <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Категория:</td>
   <td>]] .. l[2] .. '</td></tr>'
   <td>]=] .. l[2] .. '</td></tr>'
     end -- if l[2]
     end -- if l[2]


Строка 39: Строка 39:
       count = count + 1
       count = count + 1
     else
     else
       field3 = [[<tr>
       field3 = [=[<tr>
   <td colspan="2"><hr></td>
   <td colspan="2"><hr></td>
</tr><tr>
</tr><tr>
   <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Количество:</td>
   <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Количество:</td>
   <td>]] .. l[3] .. '</td></tr>'
   <td>]=] .. l[3] .. '</td></tr>'
       count = count + l[3]
       count = count + l[3]
     end -- if l[3]
     end -- if l[3]


     table.insert(t,  
     table.insert(t, [=[<tr>
[[<tr>
   <td colspan="2"><hr></td>
   <td colspan="2"><hr></td>
</tr><tr>
</tr><tr>
   <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Имя:</td>
   <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Имя:</td>
   <td>]] .. l[1] .. '</td></tr>'
   <td>]=] .. l[1] .. '</td></tr>'
.. field2 .. field3)
.. field2 .. field3)


   end -- 'for i' cycle
   end -- 'for i' cycle
       table.insert(t, [[</table>
       table.insert(t, [=[</table>
</div></div>
</div></div>
</td></tr>
</td></tr>
Строка 62: Строка 61:
   <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Общее число:</td>
   <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Общее число:</td>
   <td>не менее  
   <td>не менее  
]] .. count .. '</td></tr>')
]=] .. count .. '</td></tr>')


   return table.concat(t, "")
   return table.concat(t, "")

Версия от 17:58, 2 октября 2024

Для документации этого модуля может быть создана страница Модуль:Infobox tmp/doc

local p = {} -- p stands for package

function p.event_members( frame )
  local name = frame.args[1]
  local count = 0 -- computes overall amount of members as 1 per person or as number in 'Количество' field
  local t = {[=[<table border=0>
<tr><td colspan=2>
<div {{DivWrapOpts}}>[[Категория:WrapBlock]]
<table border=0 width=100%><tr><td colspan="2" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold; text-align: center;">Участники</td></tr></table>

<div class="mw-collapsible-content">
<table border=0>
]=]}

  for i in string.gmatch(name, "[^;]+") do
    local field2 = ''
    local field3 = ''
    table.insert(t, [=[<tr>
  <td colspan="2" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold; text-align: center;">Участник</td>
</tr>]=])

    local l = {}
    for k in string.gmatch(i, "[^!]+") do
      table.insert(l, k)
    end

    if l[2] == nil or l[2] == '' or l[2] == ' ' then
      field2 = ''
    else
      field2 = [=[<tr>
  <td colspan="2"><hr></td>
</tr><tr>
  <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Категория:</td>
  <td>]=] .. l[2] .. '</td></tr>'
    end -- if l[2]

    if l[3] == nil or l[3] == '' or l[3] == ' ' then
      field3 = ''
      count = count + 1
    else
      field3 = [=[<tr>
  <td colspan="2"><hr></td>
</tr><tr>
  <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Количество:</td>
  <td>]=] .. l[3] .. '</td></tr>'
      count = count + l[3]
    end -- if l[3]

    table.insert(t, [=[<tr>
  <td colspan="2"><hr></td>
</tr><tr>
  <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Имя:</td>
  <td>]=] .. l[1] .. '</td></tr>'
.. field2 .. field3)

  end -- 'for i' cycle
      table.insert(t, [=[</table>
</div></div>
</td></tr>
<tr>
  <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Общее число:</td>
  <td>не менее 
]=] .. count .. '</td></tr>')

  return table.concat(t, "")
end

return p