Текущая версия |
Ваш текст |
Строка 14: |
Строка 14: |
| -- Language functions | | -- Language functions |
| local language = mw.language.new('ru') | | local language = mw.language.new('ru') |
|
| |
| local function numberFix (release, direction)
| |
|
| |
| if release and direction then
| |
| return (tonumber(release or nil) or 0) + (tonumber(direction or nil) or 0)
| |
| else
| |
| return release or ''
| |
| end
| |
| end
| |
| --------------------------------------------------------- | | --------------------------------------------------------- |
| -- Открытые функции (вызываются из шаблона или статьи) -- | | -- Открытые функции (вызываются из шаблона или статьи) -- |
Строка 28: |
Строка 19: |
| -- Обеспечивает кросс-медиа навигацию | | -- Обеспечивает кросс-медиа навигацию |
| function MN.MediaNav(frame) | | function MN.MediaNav(frame) |
| local iargs = getArgs(frame)
| | local iargs = getArgs(frame) |
| return MN._MediaNav(iargs) | | return MN._MediaNav(iargs) |
| end | | end |
Строка 37: |
Строка 28: |
| function MN._MediaNav ( args ) | | function MN._MediaNav ( args ) |
| -- {{#invoke:HF/MediaNavs|MediaNav|1=<Категория>|2=<Название>|3=<Номер>|4=<Направление>|5=<Отображение>}} | | -- {{#invoke:HF/MediaNavs|MediaNav|1=<Категория>|2=<Название>|3=<Номер>|4=<Направление>|5=<Отображение>}} |
| local Category = args[1] or args['Category'] or nil | | local Category = args[1] or nil |
| local Name = args[2] or args['Name'] or nil | | local Name = args[2] or nil |
| local Release = args[3] or args['Release'] or 0 | | local Release = args[3] or 0 |
| local Direction = args[4] or args['Direction'] or 0 | | local Direction = args[4] or 0 |
| local DisplayType = args[5] or args['DisplayType'] or nil | | local DisplayType = args[5] or nil |
| | |
| local querystring = { 'mainlabel=main' } | | local querystring = { 'mainlabel=main' } |
| | | |
| -- Сезон мультсериала | | -- Сезон мультсериала |
| if Category == 'сезон мультсериала' then | | if Category == 'сезон мультсериала' then |
| table.insert( querystring, | | table.insert( querystring, HF.Link( ('Категория:Сезоны мультсериала «'..Name..'»') ) ) |
| HF.Link( ('Категория:Сезоны мультсериала «'..Name..'»') )
| | table.insert( querystring, HF.Link( ("Сезон номер::"..(tonumber(Release or nil) or 0) + (tonumber(Direction or nil) or 0) ) ) ) |
| )
| | |
| table.insert( querystring, | | querystring['default'] = Name .. ' #' .. Release |
| HF.Link( ("Сезон номер::" .. numberFix( Release, Direction ) ) )
| | if args['DisplayType'] == 'Number' then |
| )
| | querystring['userparam'] = 'Сезон #' .. Release |
| if DisplayType == 'Number' then
| |
| querystring['userparam'] = 'Сезон #' .. numberFix( Release, Direction )
| |
| else
| |
| querystring['default'] = Release
| |
| end
| |
| elseif Category == 'эпизод мультсериала' then
| |
| table.insert( querystring,
| |
| HF.Link( ('Категория:Эпизоды мультсериала «'..Name..'»') )
| |
| )
| |
| table.insert( querystring,
| |
| HF.Link( ("Общий эпизод номер::" .. numberFix( Release, Direction ) ) )
| |
| )
| |
| if DisplayType == 'Number' then
| |
| querystring['userparam'] = 'Эпизод #' .. numberFix( Release, Direction )
| |
| else | |
| querystring['default'] = Release
| |
| end | |
| elseif Category == 'эпизод аниме' then
| |
| table.insert( querystring,
| |
| HF.Link( ('Категория:Эпизоды аниме «'..Name..'»') )
| |
| )
| |
| table.insert( querystring,
| |
| HF.Link( ("Эпизод номер::" .. numberFix( Release, Direction ) ) )
| |
| )
| |
| if DisplayType == 'Number' then
| |
| querystring['userparam'] = 'Эпизод #' .. numberFix( Release, Direction )
| |
| else
| |
| querystring['default'] = Release
| |
| end
| |
| elseif Category == 'сезон аниме' then
| |
| table.insert( querystring,
| |
| HF.Link( ('Категория:Сезоны аниме «'..Name..'»') )
| |
| )
| |
| table.insert( querystring,
| |
| HF.Link( ("Сезон аниме::" .. numberFix( Release, Direction ) ) )
| |
| )
| |
| if DisplayType == 'Number' then
| |
| querystring['userparam'] = 'Сезон #' .. numberFix( Release, Direction )
| |
| else
| |
| querystring['default'] = Release
| |
| end
| |
| elseif Category == 'глава' then
| |
| table.insert( querystring,
| |
| HF.Link( ('Категория:Главы манги «'..Name..'»') )
| |
| )
| |
| table.insert( querystring,
| |
| HF.Link( ("Глава номер::" .. numberFix( Release, Direction ) ) )
| |
| )
| |
| if DisplayType == 'Number' then | |
| querystring['userparam'] = 'Глава #' .. numberFix( Release, Direction )
| |
| else
| |
| querystring['default'] = Release
| |
| end
| |
| elseif Category == 'том' then
| |
| table.insert( querystring,
| |
| HF.Link( ('Категория:Тома манги «'..Name..'»') )
| |
| )
| |
| table.insert( querystring,
| |
| HF.Link( ("Том номер::" .. numberFix( Release, Direction ) ) )
| |
| )
| |
| if DisplayType == 'Number' then
| |
| querystring['userparam'] = 'Том #' .. numberFix( Release, Direction )
| |
| else
| |
| querystring['default'] = Release
| |
| end
| |
| elseif Category == 'роман' then
| |
| table.insert( querystring,
| |
| HF.Link( ('Категория:Главы лайт-новелы «'..Name..'»') )
| |
| )
| |
| table.insert( querystring,
| |
| HF.Link( ("Глава номер::" .. numberFix( Release, Direction ) ) )
| |
| )
| |
| if DisplayType == 'Number' then
| |
| querystring['userparam'] = 'Глава #' .. numberFix( Release, Direction ) | |
| else
| |
| querystring['default'] = Release
| |
| end | | end |
| else
| |
| return nil
| |
| end | | end |
| | | |