The structure editor allows you to define the structure or blueprints of content instances. In essence, the structure of a content instance is defined by three main building blocks:
A type
The type's assigned groups
The type's assigned properties
The smallest building block is represented by property, which defines what data may be assigned to a content instance and who has access to that data. In order to make life easier, a specific set of properties can be grouped together into a group. A group can then be assigned to a different type later on, therefore saving you the trouble of manually assigning every single property to the type all over again. A more detailed explanation can be found in the chapter about structures.

The structure editor GUI is reachable by clicking the tab (1) in the administration backend. The GUI is separated into two parts: the structure tree (2) on the left half of the screen and the edit view (3) on the right half.
The structure tree consists of the following items:
Content types: types with their mode set to "Content". Types are always displayed
at the root level, possible children are
group and property assignments. All children are assigned to this specific type.
Relation types: types with their mode set to "Relation". Types are always displayed at
the root level, possible children
are group and property assignments. All children are assigned to this specific type.
Group assignments: possible children are group and property assignments. All children
are
assigned to this specific group.
Property assignments: property assignments are assigned to groups or types and act as
the
smallest building blocks and therefore without any children.
System internal property assignments: assignments of special system internal properties
that are common to all types and are intentionally not editable. For clarity reasons,
instead of displaying
those non editable properties for every type, they are only displayed once at the root
level.
Left click: left clicking on an element in the structure tree opens the element in view mode on the right half of the screen. Left clicking on the [+] graphic icon to the left of a specific element expands the tree and shows the children of the specific element. Left clicking on the [-] graphic icon to the left of a specific element collapses the tree and hides the element's children.
Left clicking on the caption of the structure tab opens a drop down menu. The following options are available:
Create a new type.
Right click: right clicking on an element in the structure tree opens a context menu with possible actions. Depending on which element was right clicked different actions are possible:
For types it is possible to:
Open the type in view mode.
Open the type in edit mode.
Create a new property that will be automatically assigned to this type.
Create a new group that will be automatically assigned to this type.
To create content for the selected type (this aciton will open the content editor).
To search for content instances of this specific type (this aciton will open the query editor).
To delete the selected type.

For group assignments it is possible to:
Open the group assignemnt in view mode.
Open the group assignment in edit mode.
Create a new property or group that will automatically be assigned to the selected group assignment's group.
To copy the group assignment, so it can be pasted into another group or type.
To cut the group assignment, so it can be pasted into the same group or type at a different position.
To delete the selected group assignment.
For property assignments it is possible to:
Open the property assignment in view mode.
Open the assignment in edit mode.
To copy the group assignment, so it can be pasted into another group or type.
To cut the group assignment, so it can be pasted into the same group or type at a different position.
To delete the selected group assignment.
Cut: the cut operation is used to change the position of an assignment at its current hierarchy level. To change the position of an assignment, you have to right-click on the assignment you want to move and select "Cut" from the context menu. Then you are able to select another assignment on the same hierarical level, perform a right-click and select either "Paste above" or "Paste below". The assignment which you have cut will then be inserted either above or below the selected assignment. Note that you cannot change the position of system internal assignments at the root level of the structure tree.
Copy: the copy operation is used to create derived assignments and paste them into the structure tree at a chosen position. To facilitate insertion various paste operations are provided:
Paste into: This is the default pasting operation for copied assignments. A derived assignment will be created and pasted into the chosen group or into the chosen type at the last position.
Paste into as: Works like "Paste into" but additionally prompts you specify a new alias so you can create a derived assignment and paste it into the same group with a different alias.
Paste above and paste below: pastes an assignment directly above or below another assignment.
Paste above and paste below as: Works like "Paste above" and "Paste below" but additionally prompts you specify a new alias so you can create a derived assignment and paste it into the same group with a different alias.
By default, left clicking on a structure element in the structure tree opens an editor in view mode on the right half of the screen. In view mode it is not possible to edit the structure element, you can merely view its current settings.
The edit mode on the other hand enables you to edit structure elements and to save changes to the data base. You can switch to edit mode by choosing "Edit" from the context menu or by clicking the "Edit" button in the editor on the right half of the screen. Both view and edit mode provide three different sub editors:
The type editor for creating and editing types and scripts assigned to that type.
The group editor for editing group assignments, editing and creating groups and their options.
The property editor for editing property assignments, editing and creating properties and their options.
Depending on which item is left-clicked in the structure tree, or which item is selected for creation in the context menu of the structure tree, one of the three sub editors is opened in either view mode or edit mode.

When editing an existing type, you will notice that the type's and select boxes are disabled and grayed out. This is due to the fact that the setting of a type's mode and language mode is only allowed when a new type is created. For types that are already stored in the database, content may also already exist which would become invalid if those fields change.
Types with their mode set to are called relation types. For relation types a table is provided to add and remove relations. For adding a relation the user needs to set the source and destination type, together with the maximum multiplicities and click the button in the column. In order to set unlimited multiplicities simply enable or disable the according checkbox in a table row. For specifying the multiplicites manually, first disable the checkbox and use the input field below the source or destination type which appears after disabling the checkbox. Relations can be removed again by clicking on the button in the column.

Also notice that by enabling the checkbox, by disabling the checkbox and for type relations by disabling the and "maxRelDest" checkboxes, input fields for setting the, , and the maximum number of relation sources and destinations become available that are hidden otherwise.


When editing an existing group assignment, you will notice three tabs:
The tab, which gives you access to the group assignment that is selected in the structure tree.
The tab, which gives you access to the actual group that is assigned by the selected group assignment.
The tab, which gives you access to the options of the group assignment and its group as well.
When creating a new group, the tab will be hidden, as well as the options of the group assignment in the tab. The according assignment will then be automatically generated after the group has been created and automatically inserted into the structure tree accordingly.
Notice that assignments may override specific settings of their groups. For group assignments, if the checkbox in the tab, or the checkbox is enabled, the multiplicity defined in the group assignment overrides the multiplicity of its group.
Also notice that the group mode of a group assignment may not be changed if content instances for the group assignment already exist.
Generally speaking an option is just a pair of a key and a value. The user can access the options by left clicking the tab.

In the image above, the group options table and the group assignment options table are displayed. The group has three options with the keys "MYOPTION", "MYOPTION2" and "MYOPTION3". The checkbox indicates which options may be overwritten by the group assignment (i.e. may have the same key but a different value).
In the example above, only the group option with the key "MYOPTION2" and value "myvalue" is marked as overridable. This option is successfully overwritten by the group assignment option with the same key "MYOPTION2" and the different value "another value".
Options can be added by filling in the empty fields on the bottom of the according table and clicking the button which is located in the column of the table. An option can be deleted again by selecting the according row and pressing the button which is also located in the column of the table.
In order to facilitate the editing of options, visual helpers are provided:
Option displayed in green: This is a valid option, for example "MYOPTION" in the group options table.
Option displayed with grey background: The assignment tries to override a group option which is currently not set to "Overridable", for example "MYOPTION3" in the group assignment options table.
Option displayed in red: This is an invalid option. Either the option has no key, or the option has no value, the key already exists or the assignment tries to override an option with the same value. The key "MYOPTION4" exists twice in the group assignment options table, therefore making it invalid.
In order to display the visual helpers, the "Validate" button
on the bottom left has to be clicked.
In order to save changes to existing group assignments, groups and options,
the group editor provides the
button
located at the bottom left of the group editor in every tab. A shortcut to the button
can also be found on top of the content frame.
In order to create a new group, the "Create Group..." option has to be selected from
the context menu of the of the structure tree. Instead of a
button,
the group editor provides the
button
at the bottom left of the group editor view, as well as a shortcut on top of the
content frame. After the group has been successfully created, an according group assignment
is automatically generated as well and automatically inserted into the structure tree.
For deleting an existing group assignment, the group editor provides the
button
at the bottom right of the "Edit Group Assignment" tab. A shortcut to the button can also be
found on top of the content frame.
Note that by deleting a group assignment, the group itsself is not automatically deleted! Only if the group is not assigned to another group or type anymore , the group will be removed from the database.

Similar to the group editor, the property editor provides three tabs:
The tab, which gives you access to the property assignment that is selected in the structure tree.
The tab, which gives you access to the actual property that is assigned by the selected property assignment.
The tab, which gives you access to the options of the property assignment and its property as well.
System internal property assignments
, together with their properties may not be edited. This is why all input elements
are deactivated. It is only allowed to edit their options.
When creating a new property, the tab will be hidden, as well as the options of the property assignment in the tab. The according assignment will then be automatically generated after the property has been created and automatically inserted into the structure tree accordingly.
Note that property assignments may override specific settings of their property. If a specific setting may be overwritten is controlled by the "Override property options" section in the tab and by the "Property override options" section in the tab respectively.

Editing property assignment and property options works exactly the same as editing group assignment and group options. The only difference is that, when creating a new property, a set of standard options is automatically added. If you need more information please refer to the section called “Editing group assignment and group options”.
Also concerning saving and deletion operations, properties and property assignments exactly comply to group and group assignments. The reader is therefore refered to the section called “Saving and deleting group assignments and groups”.
Scripts can be assigned to a type or property assignment by using the script assignment editor, wich is reachable by clicking on the "Scripting" tab. The number in brackets on the "Scripting" tab refers to the number of scripts that have already been assigned. Note that only users that are in the role of "Script Manager" may edit script assignments.
Via the editor it is possible to add, remove and edit existing script assignments. Clicking on a specific script name provides a shortcut to the script editor in the "Admin" section, where the script code can be inspected or changed. A script assignment consists of a specific script and a specific script event, which designates when a script will be run. Naturally, types and assignments provide different subsets of events to choose from.
Furthermore it is possible to activate and deactivate script assignments. For deactivated script assignments, script execution will be prevented. It is also possible to derive script assignments to child types or property assignments. The inherited script assignments of a parent type or property assignment can not be directly in the script assignment editor of the child. Instead a link is provided for derived script assignments, which opens the script assignment editor of the parent type where changes can be made and are in turn propagated to all derived children.
In order for changes to take effect, the script assignment editor -just like the other editors-
provides the
button
at the bottom left of the script assignment editor view. A shortcut to the button can also be
found on top of the content frame.
If you want more information on scripts and their specific settings please refer to the section called “Scripting Engine”.