Модуль:Родственные проекты: различия между версиями

Обслуживание
 
(Обслуживание)
 
 
-- Configuration data
local config = require('МодульModule:Родственные_проекты/config');
 
-- Modules
local getArgs = require('Module:Arguments').getArgs;
local errorMsg = require('Module:Error').error;
local yesno = require('Module:Yesno');
 
item.imageFormatted = frame:expandTemplate{ title = item['image-template'], args = { item.value, size = config.params.itemImageSize } };
elseif item.image ~= nil and item.image ~= '' then
item.imageFormatted = '[[ФайлFile:' .. item.image .. '|link=|alt=|' .. config.params.itemImageSize .. 'px]]';
end
-- format wikilink
for i, item in ipairs( list ) do
-- wrapper
local li = res:tag( 'li' );
:addClass( config.params.tsClass .. '-item' );
-- class
local class = '';
if item.imageFormatted ~= nil and item.imageFormatted ~= '' then
li:tag( 'span' )
:addClass( config.params.tsClass .. '-image' )
:wikitext( item.imageFormatted );
end
-- formatted value
li:tag( 'span' )
:addClass( config.params.tsClass .. '-label' )
:addClass( class )
:wikitext( item.formatted );
return res;
end
 
local function renderPreview( frame )
local res = mw.html.create( 'div' )
:addClass( 'hatnote' )
:css( 'color', 'red' )
:wikitext( config.strings['preview-error'] );
return res;
end;
 
local function render( frame, title, interprojects, otherprojects )
:wikitext( templateStyles );
local body = res:tag( 'div' )
:addClass( 'hatnote'config.params.tsClass )
:addClass( 'ts-Родственные_проекты tright metadata plainlinks plainlist ruwikiWikimediaNavigation' );
:addClass( config.params.bodyClass );
-- render title
if table.getn( interprojects ) > 1 and ( title == nil or title == '' ) then
title = config.strings['title'];
end
if title ~= nil and title ~= '' then
body:tag( 'div' )
:addClass( config.params.tsClass .. 'ts-Родственные_проекты-header' )
:wikitext( "'''" .. title .. "'''" );
end
-- Categories
local function formatCategory( value )
return '[[КатегорияCategory:' .. value .. ']]';
end
 
local category = formatCategory( categoryItem['equal'] )
table.insert( categories, category );
end
-- category for non existing pages
if categoryItem['not_exists'] ~= nil then
local page = mw.title.new( item.value, item.prefix );
if not page.exists then
local category = formatCategory( categoryItem['not_exists'] )
table.insert( categories, category );
end
end
end
return res;
end
 
-- Preview
local function renderPreview( frame )
local res = mw.html.create( 'div' );
if config.strings['preview-error'] ~= nil and config.strings['preview-error'] ~= '' then
:wikitext(local message = errorMsg{config.strings['preview-error'] )};
res:wikitext( message );
end
return res;
end;
 
-- Main
local nocat = yesno( args['nocat'] );
-- title parameter
local title = args['Тема'] or args['Заголовок'];
for i, item in ipairs( config.title.id ) do
if title ~= nil then
if args[item] ~= nil and args[item] ~= '' then
title = args[item];
end
end
if title ~= nil and title ~= '' then
title = title .. ':'
else
title = config.strings['title'];
end
-- get parameters list
5

правок