Line 1: | Line 1: | ||
− | + | Open CSP stores metadata of pages in slots. Pages are displayed with various components (for which the Chameleon skin is used), which can look differently based on the configuration found in class definition pages. | |
− | |||
− | == | + | == Metadata stored in slots == |
+ | Before slots were used, there were two common ways to deal with structured data: | ||
− | === | + | * A) Have templates with structured data in between the content (free text) of a page. |
+ | * B) Have one template that wraps the entire page content, with some parameters for structured data and also a parameter for free text | ||
+ | |||
+ | The advantage of using slots is that you can separate the metadata from the content and also separate the storing of the data from displaying it. This reduces the risk of making mistakes when editing, while allowing you to have forms for editing structured data and to use VisualEditor to edit the main content. | ||
+ | |||
+ | Note: data is stored in SMW properties as well, but class definitions do not rely on this. SMW is used for example for [[Search]] and [[Pages]]. It would technically be possible to modify the Open CSP framework to work with a different data storage extension, if you would make your own alternatives for the pages that use SMW queries or WikiSearch. | ||
+ | |||
+ | The following slots are used by Open CSP: | ||
+ | |||
+ | === csp-base-props === | ||
+ | In this slot '''Template:Base properties''' is used to store data dat is common to all pages, such as the Class and Title:<syntaxhighlight lang="html"> | ||
+ | {{Base properties | ||
+ | |Class= | ||
+ | |Title= | ||
+ | }} | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === csp-class-props === | ||
+ | In this slot '''Template:Csp class properties''' is used to store data that is specific to each class, based on the class definition:<syntaxhighlight lang="html"> | ||
+ | {{Csp class properties | ||
+ | |Parameter1=Value1 | ||
+ | |Parameter2=Value2 | ||
+ | |... | ||
+ | }} | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === csp-data === | ||
+ | This is a json slot which the framework only uses for class definition pages, but could be used for storing any json data on content pages as well (if you make your own templates/forms for this). | ||
+ | |||
+ | === Example slots of a content page === | ||
+ | |||
+ | === Example slots of a class definition page === | ||
== Components == | == Components == |
Revision as of 13:01, 5 October 2023
Open CSP stores metadata of pages in slots. Pages are displayed with various components (for which the Chameleon skin is used), which can look differently based on the configuration found in class definition pages.
Metadata stored in slots
Before slots were used, there were two common ways to deal with structured data:
- A) Have templates with structured data in between the content (free text) of a page.
- B) Have one template that wraps the entire page content, with some parameters for structured data and also a parameter for free text
The advantage of using slots is that you can separate the metadata from the content and also separate the storing of the data from displaying it. This reduces the risk of making mistakes when editing, while allowing you to have forms for editing structured data and to use VisualEditor to edit the main content.
Note: data is stored in SMW properties as well, but class definitions do not rely on this. SMW is used for example for Search and Pages. It would technically be possible to modify the Open CSP framework to work with a different data storage extension, if you would make your own alternatives for the pages that use SMW queries or WikiSearch.
The following slots are used by Open CSP:
csp-base-props
In this slot Template:Base properties is used to store data dat is common to all pages, such as the Class and Title:
{{Base properties
|Class=
|Title=
}}
csp-class-props
In this slot Template:Csp class properties is used to store data that is specific to each class, based on the class definition:
{{Csp class properties
|Parameter1=Value1
|Parameter2=Value2
|...
}}
csp-data
This is a json slot which the framework only uses for class definition pages, but could be used for storing any json data on content pages as well (if you make your own templates/forms for this).
Example slots of a content page
Example slots of a class definition page
Components
Open CSP uses the Chameleon skin to be able to display pages with customizable components. The following components are used:
- Header
- Sub-header
- Sidebar
- Footer
- Main
Open CSP uses system messages inside these components. These system message contain wikitext with some logic through various parser functions and lua functions, in order to display a component that takes into account class definitions.