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


Материал из VEDA Wiki
Перейти к: навигация, поиск
Нет описания правки
Нет описания правки
Строка 20: Строка 20:


     local field2 = ''
     local field2 = ''
    local field3 = ''
--    local field3 = ''
    local field4 = ''
--    local field4 = ''
     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>
Строка 42: Строка 42:
     end -- if l[2]
     end -- if l[2]


    if l[3] == nil or l[3] == '' or l[3] == ' ' then
-- deprecated
      field3 = ''
--    if l[3] == nil or l[3] == '' or l[3] == ' ' then
    else
--      field3 = ''
      field3 = [=[<tr>
--    else
  <td colspan="2"><hr></td>
--      field3 = [=[<tr>
</tr><tr>
--  <td colspan="2"><hr></td>
  <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Лидер_с:</td>
--</tr><tr>
  <td>]=] .. l[3] .. '</td></tr>'
--  <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Лидер_с:</td>
    end -- if l[3]
--  <td>]=] .. l[3] .. '</td></tr>'
--    end -- if l[3]




Строка 79: Строка 80:




 
-- deprecated
    if l[4] == nil or l[4] == '' or l[4] == ' ' then
--    if l[4] == nil or l[4] == '' or l[4] == ' ' then
      field4 = ''
--      field4 = ''
    else
--    else
      field4 = [=[<tr>
--      field4 = [=[<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[4] .. '</td></tr>'
--  <td>]=] .. l[4] .. '</td></tr>'
    end -- if l4]
--    end -- if l4]


     table.insert(t, [=[<tr>
     table.insert(t, [=[<tr>
Строка 95: Строка 96:
   <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>' .. [=[[[Category:]=] .. l[1] .. [=[]]]=]
   <td>[[]=] .. l[1] .. ']]</td></tr>' .. [=[[[Category:]=] .. l[1] .. [=[]]]=]
.. field2 .. field3 .. field4 .. timerange)
.. field2 .. timerange) -- WAS: .. field2 .. field3 .. field4 .. timerange)


   until true end -- 'for i' cycle
   until true end -- 'for i' cycle

Версия от 16:34, 3 октября 2024

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

local p = {} -- p stands for package

function p.organization_members( frame )
  local count = 0
  local name = frame.args[1]
  local t = {[=[<table border=1>
<tr><td colspan=2>
<div {{DivWrapOpts}}>[[Category:WrapBlock]]
<table border=1 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=1>
]=]}

  for i in string.gmatch(name, "[^;]+") do repeat
    count = count + 1
-- continue if line is "empty" (namely is "!!!;" or only ";") see: https://forum.defold.com/t/any-replace-for-continue-statement-in-lua-loops/65554/2
    if #i <6 then
      do break end
    end

    local field2 = ''
--    local field3 = ''
--    local field4 = ''
    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:match( "^%s*(.-)%s*$" ))
    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]

-- deprecated
--    if l[3] == nil or l[3] == '' or l[3] == ' ' then
--      field3 = ''
--    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>'
--    end -- if l[3]




--- time range formatting
local timerange = ''
if     (l[3] == nil or l[3] == '' or l[3] == ' ') and (l[4] ~= nil or l[4] ~= '' or l[4] ~= ' ') then
         timerange = 'по ' .. l[4]
elseif (l[3] ~= nil or l[3] ~= '' or l[3] ~= ' ') and (l[4] == nil or l[4] == '' or l[4] == ' ') then
         timerange = 'с ' .. l[3]
elseif (l[3] ~= nil or l[3] ~= '' or l[3] ~= ' ') and (l[4] ~= nil or l[4] ~= '' or l[4] ~= ' ') then
         timerange = l[3] .. ' — ' .. l[4]
else
         timerange = ''
end


if timerange ~= '' then
timerange = [=[<tr>
  <td colspan="2"><hr></td>
</tr><tr>
  <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Даты:</td>
  <td>]=] .. timerange .. '</td></tr>'
end




-- deprecated
--    if l[4] == nil or l[4] == '' or l[4] == ' ' then
--      field4 = ''
--    else
--      field4 = [=[<tr>
--  <td colspan="2"><hr></td>
--</tr><tr>
--  <td align="left" width="10%" bgcolor="#{{#dplvar:boxbgcolor}}" style="font-weight: bold;">Лидер_по:</td>
--  <td>]=] .. l[4] .. '</td></tr>'
--    end -- if l4]

    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>' .. [=[[[Category:]=] .. l[1] .. [=[]]]=]
.. field2 .. timerange) -- WAS: .. field2 .. field3 .. field4 .. timerange)

  until true 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