Task #44955
Story #44921: Decide TypoScript and TYPO3CR Naming
decide Node Type Definition naming
| Status: | Resolved | Start date: | ||
|---|---|---|---|---|
| Priority: | Should have | Due date: | ||
| Assigned To: | Sebastian Kurfuerst | % Done: | 0% |
|
| Category: | - | Spent time: | - | |
| Target version: | Sprint February 2013 |
Related issues
History
#1 Updated by Sebastian Kurfuerst over 2 years ago
- Status changed from New to Accepted
#2 Updated by Sebastian Kurfuerst over 2 years ago
Node type definition NOW¶
The following options are allowed:
* `superTypes`: array of parent node types which are inherited from
* `childNodes`: When the given content type is created, the subnodes listed underneath
here are automatically created. Example::
childNodes:
column0:
type: 'TYPO3.Neos.ContentTypes:ContentCollection'
autoCreated: true (only thing supported in Neos currently)
mandatory: true/false # TODO for validation lateron
* `isAbstract`: true/false cannot be instanciated directly
* `isMixin`: true/false is a mixin
* `properties`: list of properties for this content type. For each property,
the following settings can be done:
* `type`: type of the property. One of:
* `boolean`
* `string`
* `date` -> TODO: DateTime
* `enum` -> TODO: Get rid of that. it's a string with a special editor.
* `TYPO3\Media\Domain\Model\ImageVariant`
* additional types can be used, as long as they are defined inside
`TYPO3.Neos.userInterface` (TODO: bad name!) or specify a JavaScript
class inside `userInterface.class`
* `defaultValue`: (TODO: renamed from "default") (optional) Default value. If a new node is created of this type, then it
is initialized with this value.
* `ui`:
* `label`: (OBSOLETE for 1.1)
* `inspector`:
* `group`:
* `position`: (TODO: position should work as in TypoScript)
* `editor`:
* `editorOptions`:
* `reloadIfChanged`:
* `inlineEditable` (true/false)
* `ui`:
* `label`: (OBSOLETE for 1.1)
* `icon`
* `darkIcon`
* `group`
* `inlineEditable` (if FALSE, the non-editable-overlay is shown)
* `inspector`
* `groups`
Node Type Definition beforehand¶
The following options are allowed:
* `superTypes`: array of parent content types which are inherited from
* `label`: The human-readable label of the content type
* `icon`: (optional) The path to the icon of the content element on dark background
* `darkIcon`: (optional) The path to the icon of the content element on light background
* `group`: (optional) Name of the group in which the content type belongs. It can only
be created through the user interface if `group` is defined and it is valid.
All valid groups are listed inside `TYPO3.Neos.contentTypeGroups`
* `nonEditableOverlay`: (boolean, optional). If TRUE, a non-editable overlay is shown
in the backend of Neos.
* `properties`: list of properties for this content type. For each property,
the following settings can be done:
* `type`: type of the property. One of:
* `boolean`
* `string`
* `date`
* `enum`
* `TYPO3\Media\Domain\Model\ImageVariant`
* additional types can be used, as long as they are defined inside
`TYPO3.Neos.userInterface` (TODO: bad name!) or specify a JavaScript
class inside `userInterface.class`
* `label`: Label of the property
* `default`: (optional) Default value. If a new node is created of this type, then it
is initialized with this value.
* `group`: (optional) Name of the *property group* this property is categorized
into in the content editing user interface. If none is given, the property
is not editable through the property inspector of the user interface.
The value here must reference a configured property group in the `groups`
configuration element of this content element.
* `priority`: (optional, integer) controls the sorting of the property inside the given
`group`. The highest priority is rendered on top (TODO: inconsistent with
@position in TypoScript...). Only makes sense if `group` is specified.
* `reloadOnChange`: (optional) If TRUE, the whole content element needs to
be re-rendered on the server side if the value changes. This only works
for properties which are displayed inside the property inspector, i.e. for
properties which have a `group` set.
* `options`: (optional) Specify type-specific further options for the given
content type. Currently only used if `type=enum`.
* `userInterface`: (optional) Contains user interface related properties of
the property; used for the property inspector. Currently the only supported
sub-property is `class`, where an `Ember.View` can be specified which is rendered
inside the property inspector.
* `groups`: list of groups inside the *property inspector* for this content type.
Each group has the following settings:
* `label`: Displayed label of the group
* `priority`: (integer) Controls the sorting of the groups. The highest-priority
group is rendered on top (TODO: inconsistent with @position in TypoScript)
* `inlineEditableProperties`: Array of property names which are editable directly
on the page through Create.JS / Aloha. (TODO: check that all properties editable
through Aloha / Create.JS ARE indeed marked as inlineEditableProperties; and the
other way around as well)
* `structure`: When the given content type is created, the subnodes listed underneath
here are automatically created. Example::
structure:
column0:
type: 'TYPO3.Neos.ContentTypes:Section'
Here is an example content type::
TYPO3:
TYPO3CR:
contentTypes:
'My.Package:SpecialImageWithTitle':
label: 'Image'
superTypes: ['TYPO3.Neos.ContentTypes:ContentObject']
group: 'General'
icon: 'Images/Icons/White/picture_icon-16.png'
darkIcon: 'Images/Icons/Black/picture_icon-16.png'
properties:
# the "title" property is not specified here, but is
# inherited from TYPO3.Neos.ContentTypes:ContentObject
image:
type: TYPO3\Media\Domain\Model\ImageVariant
label: 'Image'
group: 'image'
reloadOnChange: true
imagePosition:
type: enum
label: 'Image Position'
group: 'image'
default: 'left'
options:
values:
'left':
label: 'Left Align'
'right':
label: 'Right Align'
groups:
image:
label: 'Image'
priority: 5
inlineEditableProperties: ['title']
#3 Updated by Sebastian Kurfuerst over 2 years ago
- Status changed from Accepted to Under Review
#4 Updated by Sebastian Kurfuerst over 2 years ago
- Status changed from Under Review to Resolved