Diese Dokumentation wird von Modul:Contract/doc aus übernommen. Änderungen können auf der Diskussionsseite vorgeschlagen werden.
Modul:Contract lädt Sprachen von Modul:Contract/i18n.json.
Dieses Modul ist sprachneutral konzipiert. Alle Meldungen werden auf der Unterseite i18n.json gespeichert.
Modul:Contract benötigt 6 Module.
Function list |
---|
L 18 — methodtable.setSemanticProperties L 36 — methodtable.setMainCategory L 42 — methodtable.init L 55 — Contract.main L 91 — Contract.new |
Dieses Modul setzt die Vorlage Mission um.
require( 'strict' )
local Contract = {}
local metatable = {}
local methodtable = {}
metatable.__index = methodtable
--- Needed Extensions
local infobox = require( 'Module:InfoboxNeue' )
local common = require( 'Module:Common' )
local localized = require( 'Module:Localized' )
local TNT = require( 'Module:Translate' ):new()
--- Save properties to the smw store
function methodtable.setSemanticProperties( self )
self.smwData[ 'Name' ] = self.args[ 'Name' ] or nil;
self.smwData[ 'Titel' ] = self.args[ 'Name' ] or nil;
self.smwData[ 'Auftraggeber' ] = self.args[ 'Auftraggeber' ] or self.args[ 'Contractor' ] or nil;
self.smwData[ 'Auftragstyp' ] = self.args[ 'Auftragstyp' ] or self.args[ 'Type' ] or nil;
self.smwData[ 'Auftragsklasse' ] = self.args[ 'Auftragsklasse' ] or self.args[ 'Class' ] or nil;
self.smwData[ 'Verfügbarkeit' ] = self.args[ 'Verfügbarkeit' ] or self.args[ 'Availability' ] or nil;
self.smwData[ 'Bezahlung' ] = self.args[ 'Bezahlung' ] or self.args[ 'Payment' ] or nil;
if not mw.title.getCurrentTitle().isSubpage then
local result = mw.smw.set( self.smwData )
common.checkSmwResult( result )
end
end
--- Adds the main category
function methodtable.setMainCategory( self )
table.insert( self.categories, '[[Category:Auftrag]]' )
end
--- Extracts args and sets up the module
function methodtable.init( self, frame )
self.args = require( 'Module:Arguments' ).getArgs( frame )
self:setSemanticProperties()
if self.smwData[ 'Auftragsgeber' ] ~= nil then
table.insert( self.categories, '[[Category:' .. self.smwData[ 'Auftragsgeber' ] .. ']]' )
end
self:setMainCategory()
end
function Contract.main( frame )
local instance = Contract:new()
instance:init( frame )
local box = infobox:new()
box:renderImage( common.getImage( {
instance.args[ 'image' ]
} ) )
box:renderHeader( instance.smwData[ 'Name' ] or localized.getMainTitle() )
box:renderSection( {
col = 2,
content = {
box:renderItem( TNT.format( 'Module:Contract/i18n.json', 'lbl_from' ), instance.smwData[ 'Auftraggeber' ] or '-' ),
box:renderItem( TNT.format( 'Module:Contract/i18n.json', 'lbl_availability' ), instance.smwData[ 'Verfügbarkeit' ] or '-' ),
box:renderItem( TNT.format( 'Module:Contract/i18n.json', 'lbl_type' ), instance.smwData[ 'Auftragstyp' ] or '-' ),
box:renderItem( TNT.format( 'Module:Contract/i18n.json', 'lbl_class' ), instance.smwData[ 'Auftragsklasse' ] or '-' ),
box:renderItem( TNT.format( 'Module:Contract/i18n.json', 'lbl_payment' ), instance.smwData[ 'Bezahlung' ] or '-' ),
}
} )
if instance.args[ 'Editlink' ] ~= nil then
box:renderFooterButton( {
label = 'Mission Bearbeiten',
type = 'link',
content = instance.args[ 'Editlink' ]
} )
end
return tostring( box ) .. tostring( table.concat( instance.categories, '' ) )
end
--- New Instance
function Contract.new( self )
local instance = {
args = {},
smwData = {
[ 'Name' ] = nil,
[ 'Auftraggeber' ] = nil,
[ 'Auftragstyp' ] = nil,
[ 'Auftragsklasse' ] = nil,
[ 'Availability' ] = nil,
[ 'Bezahlung' ] = nil,
},
categories = {},
}
setmetatable( instance, metatable )
return instance
end
return Contract