Немає опису редагування |
Немає опису редагування |
||
| Рядок 16: | Рядок 16: | ||
self.currentFrame = frame | self.currentFrame = frame | ||
self.frameArgs = require( 'Module:Arguments' ).getArgs( frame ) | self.frameArgs = require( 'Module:Arguments' ).getArgs( frame ) | ||
end | end | ||
--- Create the infobox | --- Create the infobox | ||
function methodtable.getInfobox( self, frame ) | function methodtable.getInfobox( self, frame ) | ||
local infobox = require( 'Module:InfoboxNeue' ):new( { | local infobox = require( 'Module:InfoboxNeue' ):new( { | ||
placeholderImage = '' | placeholderImage = '' | ||
} ) | } ) | ||
local tabber = require( 'Module:Tabber' ).renderTabber | local tabber = require( 'Module:Tabber' ).renderTabber | ||
self.currentFrame = frame | |||
self.frameArgs = require( 'Module:Arguments' ).getArgs( frame ) | |||
sectionTable = { | sectionTable = { | ||
infobox:renderItem( { | infobox:renderItem( { | ||
label = 'Населеня', | label = 'Населеня', | ||
data = | data = frameArgs["населеня"], | ||
row = true, | row = true, | ||
spacebetween = true | spacebetween = true | ||
| Рядок 47: | Рядок 37: | ||
infobox:renderItem( { | infobox:renderItem( { | ||
label = 'Коордінаты', | label = 'Коордінаты', | ||
data = | data = frameArgs["коордінаты"], | ||
row = true, | row = true, | ||
spacebetween = true | spacebetween = true | ||
| Рядок 53: | Рядок 43: | ||
infobox:renderItem( { | infobox:renderItem( { | ||
label = 'Природна зона', | label = 'Природна зона', | ||
data = | data = frameArgs["природна зона"], | ||
row = true, | row = true, | ||
spacebetween = true | spacebetween = true | ||
| Рядок 59: | Рядок 49: | ||
infobox:renderItem( { | infobox:renderItem( { | ||
label = 'Закладеноє', | label = 'Закладеноє', | ||
data = | data = frameArgs["закладеноє"], | ||
row = true, | row = true, | ||
spacebetween = true | spacebetween = true | ||
| Рядок 65: | Рядок 55: | ||
infobox:renderItem( { | infobox:renderItem( { | ||
label = 'Голова', | label = 'Голова', | ||
data = | data = frameArgs["голова"], | ||
row = true, | row = true, | ||
spacebetween = true | spacebetween = true | ||
| Рядок 73: | Рядок 63: | ||
-- Create section with items | -- Create section with items | ||
infobox:renderSection( { | infobox:renderSection( { | ||
title = | title = frameArgs["назывка"], | ||
subtitle = | subtitle = frameArgs["пуднаголовок"], | ||
content = table.concat( sectionTable ) | content = table.concat( sectionTable ) | ||
} ) | } ) | ||
end | |||
--- New Instance | |||
function Village.new( self ) | |||
local instance = { | |||
categories = {} | |||
} | |||
setmetatable( instance, metatable ) | |||
return instance | |||
end | end | ||
Ревізія 02:18, 18 октовбра 2023
Документацію для цього модуля можна створити у Модуль:Village/документація
require( 'strict' )
local Village = {}
local metatable = {}
local methodtable = {}
metatable.__index = methodtable
local common = require( 'Module:Common' )
local hatnote = require( 'Module:Hatnote' )._hatnote
--- Set the frame and load args
--- @param frame table
function methodtable.setFrame( self, frame )
self.currentFrame = frame
self.frameArgs = require( 'Module:Arguments' ).getArgs( frame )
end
--- Create the infobox
function methodtable.getInfobox( self, frame )
local infobox = require( 'Module:InfoboxNeue' ):new( {
placeholderImage = ''
} )
local tabber = require( 'Module:Tabber' ).renderTabber
self.currentFrame = frame
self.frameArgs = require( 'Module:Arguments' ).getArgs( frame )
sectionTable = {
infobox:renderItem( {
label = 'Населеня',
data = frameArgs["населеня"],
row = true,
spacebetween = true
} ),
infobox:renderItem( {
label = 'Коордінаты',
data = frameArgs["коордінаты"],
row = true,
spacebetween = true
} ),
infobox:renderItem( {
label = 'Природна зона',
data = frameArgs["природна зона"],
row = true,
spacebetween = true
} ),
infobox:renderItem( {
label = 'Закладеноє',
data = frameArgs["закладеноє"],
row = true,
spacebetween = true
} ),
infobox:renderItem( {
label = 'Голова',
data = frameArgs["голова"],
row = true,
spacebetween = true
} )
}
-- Create section with items
infobox:renderSection( {
title = frameArgs["назывка"],
subtitle = frameArgs["пуднаголовок"],
content = table.concat( sectionTable )
} )
end
--- New Instance
function Village.new( self )
local instance = {
categories = {}
}
setmetatable( instance, metatable )
return instance
end
--- Generates an infobox based on passed frame args and SMW data
---
--- @param frame table Invocation frame
--- @return string
function Village.infobox( frame )
local instance = Village:new()
instance:setFrame( frame )
local debugOutput = ''
if instance.frameArgs[ 'debug' ] ~= nil then
debugOutput = instance:makeDebugOutput()
end
return tostring( instance:getInfobox() ) .. debugOutput
end
--- "Main" entry point for templates that saves the API Data and outputs the infobox
---
--- @param frame table Invocation frame
--- @return string
function Village.main( frame )
local instance = Village:new()
instance:setFrame( frame )
local debugOutput = ''
if instance.frameArgs[ 'debug' ] ~= nil then
debugOutput = instance:makeDebugOutput()
end
local infobox = tostring( instance:getInfobox() )
return infobox .. debugOutput .. table.concat( instance.categories )
end
return Village