Модуль:RequestTable
ХӀокху модулах лаьцна хааман Модуль:RequestTable/doc агӀо кхолла мега
---- Этот модуль формирует таблицу по списку
local p = {}
local function buildTable(head, rows)
local tabl = mw.html.create( 'table' )
:addClass('standard');
tabl:tag('tr')
:tag('th'):wikitext(head[1]):done()
:tag('th'):wikitext(head[2]);
for i, r in ipairs(rows) do
if r[2] == nil then
tabl:tag('tr')
:tag('td')
:attr('colspan', '2')
:css('text-align', 'center')
:css('color', 'white')
:css('background', 'gray')
:wikitext(r[1]);
else
tabl:tag('tr')
:tag('td'):wikitext(r[1]):done()
:tag('td'):wikitext(r[2]);
end
end
return tostring(tabl);
end
function p.TableByDate(frame)
local new_args = frame.args;
if new_args[1] == nil then
local parent = frame:getParent();
new_args = parent.args;
end
local headertext = new_args['header'] or 'Статьи, вынесенные на переименование';
local link = new_args['link'] or 'Википедия:К переименованию';
local head = {'Дата', headertext };
local daysEarlier = (new_args['days'] and tonumber(new_args['days'])) or 0;
if daysEarlier <= 0 then
daysEarlier = 8 -- количество дней для просроченных обсуждений по-умолчанию
end;
local i=1;
local j=1;
local rows = {};
local divided = false;
local lang = mw.language.new('ru');
while new_args[i] ~= nil do
local y, m, d = mw.ustring.match(new_args[i], '^(%d+)%-(%d+)%-(%d+)$');
if y ~= nil then
local datestr = lang:formatDate('j xg Y', new_args[i], false);
-- mw.logObject(datestr, 'datestr');
if datestr ~= nil then
local col1 = '<b>[[' .. link .. '/' .. datestr ..
"|" .. datestr .. ']]</b> ';
local rowTime = tonumber(lang:formatDate('Ymd', new_args[i], false));
local eightDaysEarlier = tonumber(lang:formatDate('Ymd', '-' .. daysEarlier .. 'days', false));
if rowTime > eightDaysEarlier then
datestr = lang:formatDate('j" "xg', new_args[i] .. '+' .. daysEarlier-1 .. ' days');
col1 = col1 .. '<small>до ' .. datestr .. '</small>';
else
if not divided then
if j > 1 then
rows[j] = { '<b>Просроченные обсуждения, в которых нужно подвести итог</b>', nil}
j = j+1;
end
divided = true;
end
end
rows[j] = { col1, ''}
end
else
if rows[j][1] ~= nil then
rows[j][2]= new_args[i];
j = j+1;
end
end
i = i+1;
end
return buildTable(head, rows);
end
return p;