Class:City: Unterschied zwischen den Versionen
Noémi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Noémi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 50: | Zeile 50: | ||
|name=sect | |name=sect | ||
|cardinality=single | |cardinality=single | ||
|default=Camarilla | |||
|description=Welche Sekte hat gerade Kontroll über die Stadt? | |description=Welche Sekte hat gerade Kontroll über die Stadt? | ||
|label=Kontrolliert durch | |label=Kontrolliert durch | ||
Aktuelle Version vom 27. März 2018, 18:29 Uhr
| Class | |
|---|---|
| Title | City |
| Änderungsdatum | 27.03.2018 18:29:20 |
| Store available | smw |
| Smw class | City |
| Namespace | MAIN |
| Beschreibt Städte in unserer Welt der Dunkelheit | |
| Pages | |
| Module | Module:City |
| Class | Module:City/class |
| Config | Module:City/config |
| Template | Template:City |
| Form | Form:Stadt |
| Category | Category:Städte |
| Gardening | Category:Cities with erroneous data |
| Identity | |
| image | Bild |
| sect | Kontrolliert durch |
| population | Population |
| coordinates | Koordinaten |
| Properties | |
| Geographic coordinate | Has_geo_coordinates |
| Number | Has_vampire_population_of |
| Text | Is_identified_by_classengine_through |
| Text | Is_member_of_class |
| Text | Shows_allegiance_to |
| Page | Uses_image |
Beschreibt Städte in unserer Welt der Dunkelheit
Class identity
| Parameter | Label | Severity | Cardinality | Description |
|---|---|---|---|---|
| image | Bild | suggested | single | Ein Bilder der Stadt exemplarisch oder ikonisch zur besseren Identifikation. Wenn möglich bei Nacht. |
| sect | Kontrolliert durch | mandatory | single | Welche Sekte hat gerade Kontroll über die Stadt? |
| population | Population | suggested | single | Wie viele Vampire befinden sich in der Stadt (gerne auch nur geschätzt). |
| coordinates | Koordinaten | suggested | single | Geokoordianten der Stadt; benötigt zum Anzeigen auf einer Karte. |
Data Storage
Semantic properties used in this class: |
|---|
|
Page status
This status may be inaccurate, if you just created pages. In that case, run jobs and clear cache of this page.
| Module:City | |
|---|---|
| Module:City/doc | |
| Module:City/class | |
| Module:City/class/doc | |
| Module:City/config | |
| Module:City/config/doc | |
| Template:City | |
| Template:City/doc | |
| Form:Stadt | |
| Category:Städte | |
| Category:Cities with erroneous data | |
| Property pages for your smw store | |
| Property:Has_geo_coordinates | |
| Property:Has_vampire_population_of | |
| Property:Is_identified_by_classengine_through | |
| Property:Is_member_of_class | |
| Property:Shows_allegiance_to | |
| Property:Uses_image | |
Page autocreation
All pages present!
Note: Creation of module pages is impossible due to an incompatibility issue.
Page contents
Contents of Module:City [EDIT] |
|---|
local p = {}
local Class = require('Module:City/class')
local getArgs = require('Module:Arguments').getArgs
function p.categorize(frame)
return tostring(Class:categorize())
end
function p.categoryPage(frame)
return tostring(Class:categoryPage())
end
function p.explainDataStore(frame)
return tostring(Class:explainDataStore())
end
function p.gardeningCategoryPage(frame)
return tostring(Class:gardeningCategoryPage())
end
function p.sfGenerateForm(frame)
return tostring(Class:sfGenerateForm())
end
function p.sfGenerateFormEntry(frame)
return tostring(Class:sfGenerateFormEntry())
end
function p.sfGenerateFormLink(frame)
return tostring(Class:sfGenerateFormLink())
end
function p.templateDocumentation(frame)
return tostring(Class:templateDocumentation())
end
function p.main(frame)
local args = getArgs(frame)
local me = Class:new(mw.title.getCurrentTitle().prefixedText)
me:initFromArgs(args)
me:storeData()
me:addInfobox()
me:addPageBody()
return me:render()
end
return p
|
Contents of Module:City/doc [EDIT] |
|---|
{{documentation subpage}}
{{module rating|protected}}{{lua|Module:Arguments|Module:City/class}}
<!-- Categories go at the bottom of this page and interwikis go in Wikidata. -->
This module implements template {{tl|City}}.
== Usage ==
{{pre|
{{tli|City|''main''}}
}}
It also provides some additional "gateways" to some of [[Module:City/class]]'s static methods:
{{pre|
{{tli|City|''categorize''}}
{{tli|City|''categoryPage''}}
{{tli|City|''explainDataStore''}}
{{tli|City|''gardeningCategoryPage''}}
{{tli|City|''sfGenerateForm''}}
{{tli|City|''sfGenerateFormEntry''}}
{{tli|City|''sfGenerateFormLink''}}
{{tli|City|''templateDocumentation''}}
}}
{{#invoke:City|categorize}}<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
<!-- Note: The class engine sets the category "CamNet modules" automatically in function categorize -->
<!-- Categories go here if you wish an additional category to that set in {{module rating}} above automatically. -->
}}</includeonly><h2>Maintenanace notes</h2>
This page was created by [[Module:Classgenerator]] and belongs to [[Class:City]].
|
Contents of Module:City/class [EDIT] |
|---|
local FoundationClass = require('Module:Foundationclass')
local ClassDebug = require('Module:Debug/class')
-- ****************************************************************
-- * inheritance *
-- ****************************************************************
local ClassCity = FoundationClass:subclass('City')
-- setting class's configuration data
ClassCity.static.myConfiguration = mw.loadData('Module:City/config') -- this means, modules on subpages have a / in their names
-- being in a static method, use self.myConfiguration
-- being in a private method, that knows self or in a public method, use self.class.myConfiguration
-- ****************************************************************
-- * properties *
-- ****************************************************************
-- **************** initialization of table for private properties
local _private = setmetatable({}, {__mode = 'k'}) -- weak table storing all private attributes
-- **************** declaration of public static properties
-- ClassCity.static.myPropertyModule = require('Module:extern')
-- ClassCity.static.staticProperty = ' '
-- remember the static classes provided by Foundationclass:
-- ClassCity.globalConfig
-- ClassCity.myCargoUtil
-- ClassCity.mySmwUtil
-- ClassCity.myTableTools
-- ClassCity.myYesno
-- **************** declaration of (global) private properties
-- for properties you should rather use constructor and _private[self]. this only, if you need a private class property
-- you should, however predeclare private methods here
local _debug -- private method declared later
local _privateMethodAhead -- declaration ahead, so this private method can be used in the constructor and in other private methods
-- ***************************************************************
-- * methods *
-- ***************************************************************
-- **************** declaration of static methods
function ClassCity:initialize(uid, superhandler)
local _CFG = self.class.myConfiguration
FoundationClass.initialize(self, uid, superhandler)
_private[self] = {
dbg = ClassDebug:new(tostring(self.class) .. ': id ' .. uid),
}
_debug(self, 1, ' ClassCity: done initializing object "' .. uid ..'", from ' .. tostring(self))
end
-- use use self.myConfiguration to access your configuration in a static method
function ClassCity.static:aStaticMethod(var)
_debug(self, 1, 'entering ClassCity.static:aStaticMethod() to do something, from ' .. tostring(self))
end
function ClassCity.static:mySfDynamicFieldAttribute(fieldname, attribute, value)
_debug(self, 1, 'entering ClassCity.static:mySfDynamicFieldAttribute(fieldname, attribute, value), from ' .. tostring(self))
_debug(self, 2, ' with parameters "' .. fieldname .. '", "' .. attribute .. '" and a ' .. type(value) .. ' value')
-- function that can process any attribute/value pair just before rendering the semantic forms field
-- usually done, to generate a dynamic 'default' value
-- keep in mind: you can completely disable a form field, if you return true on attribute "disable".
-- however, this causes the parameter to not show at all, neither in the form, nor in processing
local val = value
if fieldname == 'this' and attribute == 'that' then
val = 'whatever ' .. val
end
return val -- this value will be used as new value for field's attribute
end
-- **************** declaration of private methods
-- use self.class.myConfiguration to access your configuration in a public or a private method that is called by a public method
_debug = function (self, level, text)
if _private[self] and _private[self].dbg then
local debugLevel = FoundationClass.globalConfig.debugLevel or self.class.myConfiguration.global.debugLevel
if debugLevel and level <= debugLevel then
_private[self].dbg:log(level, text)
end
else
local debugLevel = FoundationClass.globalConfig.debugLevel or self.myConfiguration.global.debugLevel
if debugLevel and level <= debugLevel then
ClassDebug:log(level, text, tostring(self) .. '.static')
end
end
end
local _privateMethod = function (self)
_debug(self, 1, 'entering private _privateMethod() to do something, from ' .. tostring(self))
end
-- **************** declaration of public methods
-- use self.class.myConfiguration to access your configuration in a public method
function ClassCity:addInfobox()
_debug(self, 1, 'entering ClassCity:addInfobox(), from ' .. tostring(self))
if self:goodToGo() then
local _CFG = self.class.myConfiguration
local coreData = self:getCoreData()
local ib_args = {
bodyclass = 'infobox_name',
aboveclass = 'objtitle titletext',
headerclass = 'headertext',
labelstyle = 'width: 30%;',
datastyle = 'width: 70%;',
title = self:getUid(),
above = _CFG.global.entityTitle,
subheader = nil,
label1 = _CFG.parameter.name.label,
data1 = coreData.name and coreData.name or nil,
header1 = nil,
}
self:addOutput(require('Module:Infobox').infobox(ib_args))
return true
end
return false
end
function ClassCity:addPageBody()
_debug(self, 1, 'entering ClassCity:addPageBody(), from ' .. tostring(self))
_debug(self, 2, ' rendering errors and warnings and adding them to output')
local frame = mw.getCurrentFrame()
self:addOutput(self:renderErrors())
self:addOutput(self:renderWarnings())
if self:goodToGo() then
self:addOutput('No output yet')
return true
end
return false
end
function ClassCity:myArgumentProcessing(coreData)
_debug(self, 1, 'entering ClassCity:myArgumentProcessing(args) to process coreData, from ' .. tostring(self))
-- function that performs some individual transformation args --> coreData
-- remember: you can add warnings to your output with self:addWarning(warning). the page, however, will not be put in any gardening category. for that, use self:addError()
-- hint: for conversion bool values, this is useful: FoundationClass.myYesno
local coreData = coreData
return coreData -- this is your new coreData.
end
function ClassCity:myDataAdjustments(data)
_debug(self, 1, 'entering ClassCity:myDataAdjustments(data) to convert data from data store into data suitable for argument processing, from ' .. tostring(self))
-- function that performs some individual transformation datastore data into argument data
-- keep in mind, when using smw data store, that data is indexed by parameter names, not properties
-- hint: for conversion bool values, this is useful: FoundationClass.myYesno
local data = data
return data -- this is your new data table, being passed on to initFromArgs and subsequently to plausibility testing
end
function ClassCity:myPlausibilityTest(args)
_debug(self, 1, 'entering ClassCity:myPlausibilityTest(args) to test arguments, from ' .. tostring(self))
-- function that performs the individual plausibility tests
-- note: before you access a field args.fieldname you should check for existance
-- use self:addError(text); this also puts the page in its class's gardening category
return false -- return value will be ignored. but if you add any error, the object's initialization will fail with the error
end
function ClassCity:myStashAdjustments(stash, storeType)
_debug(self, 1, 'entering ClassCity:myStashAdjustments(stash) to do some minor adjustments on data before storing, from ' .. tostring(self))
-- function that alters the stash before storing the data. if necessary, you can complate skip storing this stash, if you return false or the empty table {}
-- storeType is the actual method of storage for this call. either 'cargo', or 'smw'
-- hint: for conversion bool values, this is useful: FoundationClass.myYesno
local stash = stash
return stash -- this is your new stash. this will be stored. it has format (fieldname: value)
end
function ClassCity:method()
_debug(self, 1, 'entering ClassCity:method() to do something, from ' .. tostring(self))
return true
end
return ClassCity
|
Contents of Module:City/class/doc [EDIT] |
|---|
{{documentation subpage}}
{{module rating|protected}}{{lua|Module:Debug/class|Module:Foundationclass|Module:City/config}}
<!-- Categories go at the bottom of this page and interwikis go in Wikidata. -->
This is a Class Module. It implements a class in Lua using [[Module:Middleclass]] and the template class [[Module:Foundationclass]]. This class provides methods for PURPOSE.
== Usage ==
{{code|lang=lua|code=
local name = args[1] or args.name or mw.title.getCurrentTitle().rootText
local Class = require('Module:City/class')
local me = Class:new(mw.title.getCurrentTitle().prefixedText)
me:initFromArgs(args)
me:storeData()
me:addInfobox()
me:addPageBody()
return me:render()
}}
{{#invoke:City|explainDataStore}}
== Methods ==
=== Constructor ===
==== new(uid, superhandler) ====
Creates a new Object for the class.
;uid
:variable, optional
:used to identify the object
;superhandler
:object of childclass of Foundationclass, optional
:supply the superhandler, if you instanciate this object within another object. the instanciated object will pass errors and warnings to the superhandler and forgo adding the object category
;return
:object, of the class
=== public methods ===
==== addInfobox() ====
If no errors and data is present, adds an infobox to the object's output.
{{small|
;return
:boolean, whether adding was successful or not
}}
==== addPageBody() ====
Adds a page body (all content besides the infobox) to the object's output: Errors and Warnings, sample configuration, statistics, ... Of course, only if there is data.
{{small|
;return
:boolean, whether adding was successful or not
}}
==== myArgumentProcessing(coreData) ====
Performs the individual argument processing in [[#initFromArgs(args)|initFromArgs(args)]] right before inititializing it.
{{small|
;coreData
:table, mandatory
:the core data of the object. the one to process individually before initialization
;return
:table, the new core data array to be used
}}
==== myDataAdjustments(data) ====
Performs a transformation form data (coming from the datastore) into data used for argument processing. This is called by [[#initFromData(data)|initFromData(data)]] (for smw: after property to parameter conversion)
and is directly passed to [[#initFromArgs(args)|initFromArgs(args)]] and subsequently plausibility test.
{{small|
;data
:table, mandatory
:a data table coming directly from the data store
;return
:table, the new data table suiteable for argument processing
}}
==== myPlausibilityTest(args) ====
Performs the individual plausibility tests in [[#initFromArgs(args)|initFromArgs(args)]] before entering the initialization part.
NOTE: The return value will be ignored. If this finds errors, it must add them to the list of errors via [[#addError(errortext)|addError(errortext)]].
{{small|
;args
:table, mandatory
:arguments passed to the template to be checked
;return
:boolean, whether the object is plausible or not.
}}
==== myStashAdjustments(stash, storeType) ====
Performs the adjusts the stash in [[#storeData()|storeData()]] right before storing it.
{{small|
;stash
:table, mandatory
:the array of data to be saved (in the form fieldname: value)
;storeType
:string, mandatory
:type of storage method used with the current call (either 'cargo' or 'swm'). In case you use both stores and your stash adjustment differs with each of this methods
;return
:boolean, the new stash
}}
=== static methods ===
==== ClassCity:mySfDynamicFieldAttribute(fieldname, attribute, value) ====
For some semantic form fields there are attribute values, that are not static, thus can not be provided at forehand in the [[#Configuration Data|configuration file]]. This method does the trick to adapt them at runtime shortly before the field is rendered.
Essentially: the method checks, if it has a special rule for the pair fieldname:attribute and if so, calculates the new value. if not, the old value is returned. Note, that you can completely disable a form field with this when you
return false on attribute "disable".
{{small|
;fieldname
:string, mandatory
:the form field's name, needed to match current paring to an existing special treatment rule
;attribute
:string, mandatory
:the form field's attribute, needed to match current paring to an existing special treatment rule
;value
:variable, mandatory
:the value, that is already provided in the [[#Configuration Data|configuration file]]. this will be adapted by the method, if there is a special rule for the pair fieldname:attribute.
;return
:string, the value to be used forthwith (which can be the old one or a freshly calculated)
}}
=== private methods ===
==== _debug(self, level, text) ====
Adds output to the internal debug log.
{{small|
;self
:object, me
;level
:int; mandatory
:debug level for the message
;text
:string; mandatory
:debug message text
;return
:void
}}
== Properties ==
=== static ===
See also [[#Static Properties|Static Properties]]
;ClassCity.myConfiguration
:this is your configuration. It is devided in several section, each a
:table, holds configuration data found in Module:City/config
::'''WARNING:''' This is a read only table and besides functions ''pairs()'' and ''ipairs()'' nothing else will work on it, especially not the functions of the table library!
<ul>
* form, table, holds data used to create the form. here are some of them:
** formButtons, table, which buttons should be printed at the bottom
** fieldOrder, table, in which order the form fields should appear (note: only fields listed here will be added to the form)
* global, table, holds some global configuration data
* parameter, table, holds all data about all parameter used in the module (be they form only, data store only or normal). The table has the form ''paramname = { table of paramdata }''. The tables for the parameter have data as follows:
** cardinality, string, mandatory, one of singe or list
** cargo_type, string, optional, if the parameter is to be stored in cargo, add the field type here (one of Page, Text, Integer, Float, Date, Datetime, Boolean (which should be provided as 1 or 0), Coordinates, Wikitext, File, String, URL, or Email)
** description, string, mandatory, a description of this parameter
** label, string, mandatory, the label used in the form and the template documentation
** property_name, string, optional, if the parameter is to be stored in smw, add the property name here
** property_type, string, optional, if the parameter is to be stored in smw, add the property type here (defaults to page)
** severity, string, optional, if provided one of mandatory, suggested
** sf, table, optional, used to add more attributes to the semantic forms field. ref [[Module:SFfield/config]] for all possible attributes. Note that the table is of type attribute_name : value. Value can be of type string, integer, boolean, and (in case of 'show on select') a table. Please note, that the attribute name cannot contain a " " (space). Use the underscore instead.
** td_default, string, optional, if you want a default value to be indicated in the template data section on the documentation page, add it here
** td_type, string, optional, if the parameter should be present in the template documentation page, fill this field. all possible values are listed [https://www.mediawiki.org/wiki/Extension:TemplateData#Format here]
** values, table, optional, if you want the possible values to be restricted to a specific set, fill this table
* template, table, holds some data used only in the template
</ul>
;ClassCity.publicStaticProperty
:type, explanation
;_privateStaticProperty
:type, explanation
=== private ===
Note: all private properties are stored in table ''_private[self]''. _private is a static array that is indexed by ''self'', so the table ''_private[self]'' holds all properties for instance ''self''.
;dbg
:object, my instance of [[Module:Debug/class]] for debugging purposes. only present afer first call of [[#_debug(self, level, text)|_debug(self, level, text)]]
== Configuration Data ==
This class holds its control data in [[Module:{{ROOTPAGENAME}}/config]].
== Inheritance ==
'''Note:''' You still reference those either by self:publicMethod() or ClassCity:staticMethod() and ClassCity.staticProperty respectively!
=== Methods ===
{{MediaWiki:Classengine-content-documentation-methods}}
=== Static Properties ===
{{MediaWiki:Classengine-content-documentation-properties}}
{{#invoke:City|categorize}}<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
<!-- Note: the class engine sets the categories "CamNet modules" and "Lua class modules" automatically in categorize -->
<!-- Categories go here if you wish an additional category to that set in {{module rating}} above automatically. -->
}}</includeonly><h2>Maintenanace notes</h2>
This page was created by [[Module:Classgenerator]] and belongs to [[Class:City]].
|
Contents of Module:City/config [EDIT] |
|---|
-- This is the configuration for ClassCity. It has been autocreated by Module:Classgenerator.
-- It is strongly suggested, you use the form to make alterations and copy the new configuration an this page!
local superglobal = mw.loadData('Module:Foundationclass/globalconfig')
local global = {
debugLevel = false,
entityTitle = 'City',
description = 'Beschreibt Städte in unserer Welt der Dunkelheit',
category = 'Städte',
gardeningCategory = 'Cities with erroneous data',
namespace = nil,
cargoTable = nil,
smwUseStorage = true,
smwIsSubobject = false,
restrictedTo = nil,
delimiter = ',',
}
local form = {
enable = true,
name = 'Stadt',
teaserText = 'Hier können Städte erstellt oder bearbeitet werden. Einfach den Namen der Stadt angeben. Wenn die Seite bereits existiert, wirst du weitergeleitet und kannst sie bearbeiten.',
typeCreateLink = 'forminput',
createInfotext = 'Bitte den Namen der Stadt angeben ',
createInputPlaceholder = nil,
createInputQueryString = nil,
createLinkPageName = nil,
createLinkQueryString = nil,
createLinkType = nil,
labelCreate = 'Stadt erstellen',
labelEdit = 'Stadt bearbeiten',
headerText = 'Städte bilden üblicherweise Hauptaustragungsorte für Spielgeschehen. Neben den darin befindlichen interessanten Örtlichkeiten,\n' ..
'ist für uns auch noch wichtig, welcher Vampirsekte hier gerade die Kontroll hat.',
notification = nil,
sectionList = nil,
allowsFreeText = true,
freeTextPreload = nil,
buttons = { 'save', 'preview', 'changes', 'cancel', },
fieldSize = 80,
textareaAttributes = { -- the defaults for your textarea fields
cols = 80,
rows = 4,
autogrow = true,
editor = 'wikieditor',
},
fieldOrder = { 'image', 'sect', 'population', 'coordinates', },
}
local template = {
name = 'City',
templateDocumentationSeeAlso = { 'Location', },
}
local parameter = {
image = {
cardinality = 'single',
description = 'Ein Bilder der Stadt exemplarisch oder ikonisch zur besseren Identifikation. Wenn möglich bei Nacht.',
label = 'Bild',
property_name = 'Uses_image',
property_type = 'Page',
severity = 'suggested',
sf = {
image_preview = true,
input_type = 'text with autocomplete',
uploadable = true,
values_from_category = 'Stadtbilder',
},
td_type = 'wiki-file-name',
},
sect = {
cardinality = 'single',
description = 'Welche Sekte hat gerade Kontroll über die Stadt?',
label = 'Kontrolliert durch',
property_name = 'Shows_allegiance_to',
property_type = 'Text',
severity = 'mandatory',
sf = {
default = 'Camarilla',
existing_values_only = false,
input_type = 'combobox',
placeholder = 'Sekte',
values_from_category = 'Sekten',
},
td_type = 'line',
values = { 'Camarilla', 'Sabbat', 'Unabhängig', 'Anarchen', 'keine', },
},
population = {
cardinality = 'single',
description = 'Wie viele Vampire befinden sich in der Stadt (gerne auch nur geschätzt).',
label = 'Population',
property_name = 'Has_vampire_population_of',
property_type = 'Number',
severity = 'suggested',
sf = {
base_type = 'text',
input_type = 'regexp',
maxlength = 4,
message = 'Bitte eine Zahl angeben',
regexp = '^[0-9]+$',
},
td_type = 'number',
},
coordinates = {
cardinality = 'single',
description = 'Geokoordianten der Stadt; benötigt zum Anzeigen auf einer Karte.',
label = 'Koordinaten',
property_name = 'Has_geo_coordinates',
property_type = 'Geographic coordinate',
severity = 'suggested',
sf = {
center = '38.3905778,-77.5146871',
geoservice = 'googlemaps',
height = 300,
input_type = 'googlemaps',
width = 500,
zoom = 6,
},
td_type = 'line',
},
}
return {
form = form,
global = global,
parameter = parameter,
template = template,
}
|
Contents of Module:City/config/doc [EDIT] |
|---|
{{documentation subpage}}
{{module rating|protected}}{{lua|Module:Foundationclass/globalconfig}}
<!-- Categories go at the bottom of this page and interwikis go in Wikidata. -->
This module provides data for [[Module:City/class]]
== Usage ==
{{code|lang=lua|code=local cfg = mw.loadData('Module:City/config')}}
{{#invoke:City|categorize}}<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox||
<!-- Note: The class engine sets the categories "CamNet modules" and "Lua class modules" automatically in function categorize -->
<!-- Categories go here if you wish an additional category to that set in {{module rating}} above automatically. -->
}}</includeonly><h2>Maintenanace notes</h2>
This page was created by [[Module:Classgenerator]] and belongs to [[Class:City]].
{{ombox| type=content | text = It is strongly advised, to not edit this page but to use [https://{{SERVERNAME}}{{SCRIPTPATH}}/Special:FormEdit/Classgenerator/Class%3ACity the Classgenerator form] instead! After that, use your new configuration to replace the contents of this page.}} |
Contents of Template:City [EDIT] |
|---|
{{#invoke:City|main|{{BASEPAGENAME}}}}<noinclude>
{{documentation}}
</noinclude> |
Contents of Template:City/doc [EDIT] |
|---|
{{Documentation subpage}}
<!-- Categories go at the bottom of this page. -->
{{#invoke:City|templateDocumentation}}
{{#invoke:City|categorize}}<includeonly>{{#ifeq:{{SUBPAGENAME}}|sandbox | |
<!-- Note: The class engine sets the category "CamNet templates" automatically in function categorize -->
<!-- ADD CATEGORIES AFTER THIS LINE -->
}}</includeonly><h2>Maintenanace notes</h2>
This page was created by [[Module:Classgenerator]] and belongs to [[Class:City]].
|
Contents of Form:Stadt [EDIT] |
|---|
<noinclude>{{#invoke:City|sfGenerateFormEntry}}{{#invoke:City|categorize}}</noinclude>
<includeonly>{{#invoke:City|sfGenerateForm}}</includeonly>
<!-- Note: The class engine sets category "CamNet forms" automatically in function categorize --> |
Contents of Category:Städte [EDIT] |
|---|
{{#invoke:City|categoryPage}}{{#invoke:City|categorize}}
<!-- Note: The class engine sets category "CamNet" automatically in function categorize --> |
Contents of Category:Cities with erroneous data [EDIT] |
|---|
{{#invoke:City|gardeningCategoryPage}}{{#invoke:City|categorize}}
<!-- Note: The class engine sets category "CamNet entities with erroneous input" automatically in function categorize --> |
All property pages
Contents of Property:Has_geo_coordinates [EDIT] |
|---|
== Description ==
<div class="description-box">Geokoordianten der Stadt; benötigt zum Anzeigen auf einer Karte.</div>
== Type ==
* This is an attribute of the datatype [[Has type::Geographic coordinate]].
== Allowed values ==
No restriction given
{{#invoke:City|categorize}}
<!-- Note: The class engine sets category "CamNet properties" automatically in function categorize --> |
Contents of Property:Has_vampire_population_of [EDIT] |
|---|
== Description ==
<div class="description-box">Wie viele Vampire befinden sich in der Stadt (gerne auch nur geschätzt).</div>
== Type ==
* This is an attribute of the datatype [[Has type::Number]].
== Allowed values ==
No restriction given
{{#invoke:City|categorize}}
<!-- Note: The class engine sets category "CamNet properties" automatically in function categorize --> |
Contents of Property:Is_identified_by_classengine_through [EDIT] |
|---|
== Description ==
<div class="description-box">Automatisch hinzugefügt! Wird verwendet, um individuelle Objekte innerhalb der Klasse zu identifizieren.</div>
== Type ==
* This is an attribute of the datatype [[Has type::Text]].
== Allowed values ==
No restriction given
{{#invoke:City|categorize}}
<!-- Note: The class engine sets category "CamNet properties" automatically in function categorize --> |
Contents of Property:Is_member_of_class [EDIT] |
|---|
== Description ==
<div class="description-box">Automatisch hinzugefügt! Wird verwendet, um Mitglieder dieser Klasse zu finden (funktioniert auch, ohne dass eine Kategorie definiert wird und auch fur subobjects)</div>
== Type ==
* This is an attribute of the datatype [[Has type::Text]].
== Allowed values ==
No restriction given
{{#invoke:City|categorize}}
<!-- Note: The class engine sets category "CamNet properties" automatically in function categorize --> |
Contents of Property:Shows_allegiance_to [EDIT] |
|---|
== Description ==
<div class="description-box">Welche Sekte hat gerade Kontroll über die Stadt?</div>
== Type ==
* This is an attribute of the datatype [[Has type::Text]].
== Allowed values ==
The allowed values are:
* [[Allows value::Camarilla]]
* [[Allows value::Sabbat]]
* [[Allows value::Unabhängig]]
* [[Allows value::Anarchen]]
* [[Allows value::keine]]
{{#invoke:City|categorize}}
<!-- Note: The class engine sets category "CamNet properties" automatically in function categorize --> |
Contents of Property:Uses_image [EDIT] |
|---|
== Description ==
<div class="description-box">Ein Bilder der Stadt exemplarisch oder ikonisch zur besseren Identifikation. Wenn möglich bei Nacht.</div>
== Type ==
* This is an attribute of the datatype [[Has type::Page]].
== Allowed values ==
No restriction given
{{#invoke:City|categorize}}
<!-- Note: The class engine sets category "CamNet properties" automatically in function categorize --> |