Object Data Types
The entire list of data types is indicated below:
|input||text input field|
|wysiwyg||text area with formatting options through a WYSIWYG editor|
|numeric||spinner field for number input|
|slider||number input with slider widget (min - max slider)|
|quantity value||number input with an additional unit. available units can be configured centrally.|
|date||calendar date selector|
|date & time||calendar date selector + combo box for time|
|time||combo box for time|
|user||combo box to select from all existing Pimcore users (available since build 716)
In the user settings the object dependencies of each user are shown in the second tab panel.
All objects which reference the selected user are listed in a grid view.
If one needs to find out which objects hold a reference to a specific user, the
|country||combo box with predefined country list|
|language||combo box with predefined language list|
|multiselect||combo box with multiple select|
|countries||combo box with multiple select and predefined country list|
|languages||combo box with multiple select and combo box with multiple select and predefined language|
|dynamic select||combo box|
|Many-To-One Relation||reference to a Pimcore document, object or asset|
|Many-To-Many Relation||collection of references to Pimcore documents, objects, assets|
|Advanced Many-To-Many Relation||collection of references to Pimcore documents, objects, assets with additional metadata on the relation|
|Many-To-Many Object Relation||collection of Pimcore object references|
|Advanced Many-To-One Object Relation||collection of Pimcore object references with additional metadata on the relation|
|Reverse Object Relation||collection of Pimcore object references which are owned by a different object|
|block||repeatable block of attributes within an object|
|classificationstore||advanced store for classification systems like ETIM, ecl@ss, etc.|
|structuredtable||table with predefined rows and columns|
|fieldcollections||A collection of fields that can be added to the object|
|objectbricks||Bricks of attributes, that can be added to objects|
|localizedfields||Set of attributes that can be translated|
|geopoint||maps widget to find longitude/latitude|
|geobounds||maps widget to define geographical bounds|
|geopolygon||maps widget to define a geographical area|
|geopolyline||maps widget to define a geographical path|
|image||drop area & preview for a Pimcore image asset|
|externalimage||relation to an image that is not stored in Pimcore|
|imageadvanced||drop area & preview for a Pimcore image asset with additional features for markers, hotspots, cropping|
|video||drop area & preview for a Pimcore video asset|
|link||link selector with link target|
|calculatedvalue||datatype for calculated values - calculation can be defined with a PHP class|
|firstname||typed input field for firstname|
|lastname||typed input field for lastname|
|typed input field for email including validation|
|gender||typed and prefilled select for gender|
|newsletteractive||typed checkbox if newsletter is active|
|newsletterconfirmed||typed checkbox if newsletter is confirmed|
|persona||typed selectbox for personas defined within Pimcore|
|personas||typed selectbox with multiselect for personas defined within Pimcore|
|consent||store consent of user for something, e.g. consent for direct marketing mailing|
All data types are wrapped in an object derived from
These data type objects provide getters and setters and they define the Description in the frontend.
Data type objects are displayed in the first column of the table above.
The second column indicates the underlying data type class and the third column outlines the Description used in Pimcore
to fill in, edit and display data objects.
name, which is the name of the object's property and the
title, which is shown in the GUI, an
object field has the general configuration options listed below. The title can be translated for different system
languages. Please see the article about Translations to find out how to add object field translations.
mandatory: Makes the field mandatory and does not allow saving the object when it is empty
not editable: Does not allow a change of this field's value in Pimcore backend (data change can only be done programmatically)
invisible: The field is not visible in Pimcore
visible in grid view: Determines if the field's data column is shown in the object grid view, or hidden (meaning it has to be activated manually)
visible in search result: Determines if the field's data column is shown in the search results grid, or hidden (meaning it has to be activated manually)
indexed: puts an index on this column in the database
unique: If checked, the value has to be unique across all objects of this class. Note that only works on top level attributes and not on nested stuff inside localized fields etc. Beware that this does not add a database index to the query table which
- Moreover, each data field can have a
tooltip, which is shown when the mouse hovers over the input field.
layout settings allow to apply custom CSS to any object field.
Please note that renaming a field means the loss of data from the field in all objects using this class.
See sub-pages of this page for detail documentation of different data types.
For datatypes which support default values (currently these are Input, Date, Datetime, Numeric, Checkbox, Select and Quantity Value) you can either specify a fixed default value or you can specify a default value generator service or class which can generate a dynamic default value.
The data is persisted according to the following rules.
- ***No inheritance***: default value is persisted to store/query table on create
- With inheritance and NO parent value: default value is persisted to store/query table on create
- With inheritance and existing parent value: no value is persisted to store table, inherited value is persisted to query table, inheritance is active
A default value generator is a class which implements
\Pimcore\Model\DataObject\ClassDefinition\DefaultValueGeneratorInterface. This class can generate a value based on the current data of an object.
Have a look at Calculated Value for an overview of contextual information.
If a default value generator is defined then it has a higher priority than a configured static default value.
The decisions are made in the following order:
- default value generator. if defined the process stops here
- parent value if inheritance is enabled
- fixed default value