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

1269 байт добавлено ,  4 года назад
нет описания правки
(Керла агӀо: «local p = {}; function p.renderLine( frame ) local args = frame:getParent().args; if args[ 'коьртамогӀа' ] and args[ 'коьртамогӀа' ] ~= '' then...»)
 
Нет описания правки
 
Строка 1: Строка 1:
local p = {};
local p = {};


function p.renderLine( frame )
local yesno = require('Module:Yesno')
local args = frame:getParent().args;


if args[ 'коьртамогӀа' ] and args[ 'коьртамогӀа' ] ~= '' then
local function _renderLine( frame, args, i )
local style = ( args[ 'коьртамогIнийн_хатӀ' ] or '' ) .. ( args[ 'коьртамогIнан_хатӀ' ] or '' );
if args[ 'заголовок' .. i ] and args[ 'заголовок' .. i ] == '-' then
local class = ( args[ 'тоба' ] or '' );
return ''
if class ~= '' then
elseif args[ 'заголовок' .. i ] and args[ 'заголовок' .. i ] ~= '' then
class = ' class="' .. class .. '"';
local style = ( args[ 'стиль_заголовков' ] or '' ) .. ( args[ 'стиль_заголовка' .. i ] or '' );
end
local class = ( args[ 'класс' .. i ] or '' );
return '\n<tr>\n<th colspan="2"' .. class .. ' style="text-align:center;' .. style .. '">' ..
return '\n<tr>\n<th colspan="2" class="infobox-header ' .. class .. '" style="' .. style .. '">' ..
args[ 'коьртамогӀа' ] ..
args[ 'заголовок' .. i ] ..
'</th>\n</tr>';
'</th>\n</tr>';
end
end


local text = args[ 'йоза' ] or '';
local text = args[ 'текст' .. i ] or '';
if args[ 'викихаамаш' ] and args[ 'викихаамаш' ] ~= '' then
if args[ 'тептарданные' .. i ] and args[ 'тептарданные' .. i ] ~= '' then
text = frame:expandTemplate{ title = 'Wikidata', args = {
text = frame:expandTemplate{ title = 'Wikidata', args = {
args[ 'викихаамаш' ],
args[ 'тептарданные' .. i ],
text,
text,
from = args[ 'from' ] or ''
from = args[ 'from' ] or ''
Строка 25: Строка 24:


     if text ~= '' then
     if text ~= '' then
local label = args[ 'билгало' ] or '';
local label = args[ 'метка' .. i ] or '';


     local class = args[ 'тоба' ] or '';
     local class = args[ 'класс' .. i ] or '';
     if class ~= 'noplainlist' then
     if string.find(class, 'noplainlist') == nil and string.find(class, 'nofirstlevel') == nil then
     class = class .. ' plainlist';
     class = class .. ' plainlist';
     end
     end
Строка 35: Строка 34:
     end
     end


     local style = ( args[ 'йозанийн_хатӀ' ] or '' ) .. ( args[ 'йозанан_хатӀ' ] or '' );
     local style = ( args[ 'стиль_текстов' ] or '' ) .. ( args[ 'стиль_текста' ] or '' ) .. ( args[ 'стиль_текста' .. i ] or '' );
if label == '' then
if label == '' then
style = 'text-align:center;' .. style;
style = 'text-align:center;' .. style;
Строка 44: Строка 43:


if label ~= '' then
if label ~= '' then
    local labelClass = args[ 'билгалонийн_тоба' ] or '';
    local labelClass = args[ 'класс_меток' ] or '';
    if labelClass ~= 'noplainlist' then
    if string.find(labelClass, 'noplainlist') == nil and string.find(labelClass, 'nofirstlevel') == nil then
     labelClass = labelClass .. ' plainlist';
     labelClass = labelClass .. ' plainlist';
end
end
Строка 52: Строка 51:
end
end
    local labelStyle = ( args[ 'билгалонийн_хатӀ' ] or '' ) .. ( args[ 'билгалонан_хатӀ' ] or '' );
    local labelStyle = ( args[ 'стиль_меток' ] or '' ) .. ( args[ 'стиль_метки' .. i ] or '' );
    if labelStyle ~= '' then
    if labelStyle ~= '' then
    labelStyle = ' style="' .. labelStyle .. '"';
    labelStyle = ' style="' .. labelStyle .. '"';
Строка 65: Строка 64:
      
      
return '';
return '';
end
local function maxNumber ( args )
local maxNumber = 0
for argName, _ in pairs(args) do
local argNumber = mw.ustring.match(argName, '^[^0-9]+([0-9]+)$')
if argNumber and tonumber(argNumber) > maxNumber then
maxNumber = tonumber(argNumber)
end
end
return maxNumber
end
function p.renderLine( frame )
local args = frame:getParent().args;
return _renderLine(frame, args, '')
end
function p.renderLines( frame )
local args = frame:getParent().args;
local res = ''
local header, text = '', ''
local autoHeaders = yesno(args [ 'автозаголовки' ] or 'false', false)
for i = 1, maxNumber(args) do
if args[ 'заголовок' .. i ] and args[ 'заголовок' .. i ] ~= '' then
if text ~= '' or not autoHeaders then
res = res .. header .. text
end
header, text = _renderLine(frame, args, i), ''
else
text = text .. _renderLine(frame, args, i)
end
end
if text ~= '' or not autoHeaders then
res = res .. header .. text
end
return res
end
end


return p;
return p;