Interested Article - RequestTable
doriana
- 2021-04-19
- 1
Этот модуль относится к
критическим
. У него очень много включений или он используется с подстановкой. Из-за опасности вандализма или ошибочного редактирования он был защищён.
|
Прежде чем вносить какие-либо изменения в этот модуль, просьба
оттестировать
их в
и проверить результат на странице с
. Вносить тестированные изменения в этот модуль следует ровно одной правкой.
|
Модуль предназначен для формирования таблицы ссылок на страницы обсуждения на ВП:КУ , ВП:КПМ , ВП:КУЛ , ВП:КО , ВП:КР , ВП:ВУС .
Функции
Формирование таблицы по датам
{{#invoke:RequestTable|TableByDate|<дата>|<список>|<дата>|<список>|...|<дата>|<список>|link=<путь>|header=<заголовок колонки>}}
Параметры
-
link
— путь к странице (по умолчанию 'Википедия:К переименованию') -
header
— заголовок колонки (по умолчанию 'Статьи, вынесенные на переименование') -
days
— количество дней, после которых обсуждения считаются просроченными - Остальные параметры неименованные и должны следовать парами: дата, список.
Пример
{{#invoke:RequestTable|TableByDate|link=Википедия:К удалению|header=Статьи, вынесенные на удаление |2017-5-17|<s>[[Гиаферон]]</s> • [[Мацестинская чайная фабрика]] • <s>[[Стенковой Владимир Ильич]]</s> |2017-5-16|[[Роуз Коэн]] • <s>[[Я вам не негр]]</s> • <s>[[Розы (картина Крёйера)]]</s> }}
Результат
Дата | Статьи, вынесенные на удаление |
---|---|
17 мая 2017 |
|
16 мая 2017 |
Роуз Коэн
•
|
---- Этот модуль формирует таблицу по списку
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;
doriana
- 2021-04-19
- 1