Content Type Fields - Bloomreach Experience - The Headless Digital Experience Platform Built for Commerce

Content Type Fields

Document and FieldGroup types are comprised of a number of different types of fields.

All field types have the following properties in common:

Property Name Property Type Required Description Examples
name String yes Identifying name of this field within its content type title, mydate
type String yes The type of the field. Valid values: String, Boolean, Integer, Number, Text, Date, Html, RichText, SelectableString, Link, EmbeddedResource, Taxonomy, FieldGroup, SelectableFieldGroup, OpenUiExtension Html, Number
required Boolean no A field can be made required by setting this property to true. Authors can't save documents if they haven't entered a value in a required field. Defauts to false true
multiple Boolean no A field can be made multi-valued by setting this property to true. This adds plus and minus icons to the field so authors can add or remove values. Defauts to false false
presentation Map yes Presentation properties of the field below  
validations Map no Validations of the field. Provides configuration for the field. See per field type below  
defaultValue Array no Default value of this field. See per field type  

The presentation map also contains some common properties for all types of fields:

Property Name Property Type Required Description Examples
caption String no The caption of a field is the label that is displayed directly above the field in the editing template. Authors will know a field by its caption. A caption is single-line plain text and may contain spaces and special characters Title, My Date
hint String no Optionally a hint to authors can be added to a field. The hint is displayed as a question mark icon with a mouseover popup In this field you need to fill in the title
layoutColumn Integer no layoutColumn index used for positioning the field. Starts from 1. Defaults to 1 2

The available field types are:

String

A String field is used for single or multi-line plain text content, determined by the value in presentation/displayType.

A single line input is rendered for displayType 'Simple':

When the displayType is 'Text', a multi-line input is provided:

Presentation properties

Property Name Property Type Required Description Examples
displayType String yes Display type of the field. Valid values: Simple, Text

Simple

Validation properties

Property Name Property Type Required Description Examples
maxLength Integer no maxLength determines the maximum number of characters allowed in this string field. Expects an integer value. Only use this propertry when displayType is 'Simple'

50

maxRow Integer no maxRow determines the number of rows shown for the textarea this field renders. Expects an integer value. Only use this property when displayType is 'Simple'

4

Default value

The default value is an array of String

An example of String fields can be seen below:

{
  "name": "string",
  "required": true,
  "multiple": true,
  "type": "String",
  "defaultValue": [
    "Blogtitle1",
    "Blogtitle2"
  ],
  "validations": {
    "maxLength": 10
  },
  "presentation": {
    "caption": "Title",
    "hint": "Hint for string field",
    "layoutColumn": 1,
    "displayType": "Simple"
  }
}

{
  "name": "text",
  "required": true,
  "multiple": false,
  "type": "String",
  "defaultValue": [
    "Sample value text field"
  ],
  "validations": {
    "maxRow": 10
  },
  "presentation": {
    "caption": "Text Field",
    "hint": "Hint for text field",
    "layoutColumn": 2,
    "displayType": "Text"
  }
}

Date

A Date field includes date and optionally time, depending on the property presentation/timeSelectable. A date value can be entered in a text box or through the provided calendar widget. A time value can be entered through text boxes for hours and minutes.

Presentation properties

Property Name Property Type Required Description Examples
timeSelectable Boolean no Defines if the time is also selectable for Date field. Defaults to false

true

Default value

The default value is an array of String, each of which is a UTC date.

An example of Date fields can be seen below:

{
  "name": "date",
  "required": true,
  "type": "Date",
  "defaultValue": [
    "2007-12-03T00:00:00.00Z"
  ],
  "presentation": {
    "caption": "Date Field",
    "hint": "Hint for date field",
    "layoutColumn": 2,
    "timeSelectable": false
  }
}
{
  "name": "dateWithTime",
  "required": true,
  "type": "Date",
  "defaultValue": [
    "2007-12-03T10:15:30.00Z"
  ],
  "presentation": {
    "caption": "Date Field",
    "hint": "Hint for date field with time",
    "layoutColumn": 2,
    "timeSelectable": true
  }
}

Boolean

A Boolean field is displayed either as a single checkbox or as a radio button group widget, depending on property presentation/displayType. As a checkbox:

As a radio group. The labels for the true and false options can be read from a resource bundle document.

Presentation properties

Property Name Property Type Required Description Examples
displayType String yes Display type of the field. Valid values: Checkbox, RadioGroup

Checkbox

orientation String no Orientation type of the field. Valid values: horizontal, vertical. Defaults to 'horizontal'. Only applicable when displayType is Radiogroup Vertical

Validation properties

Property Name Property Type Required Description Examples
inResourceBundle String no

id of a resource bundle that is used to fetch values from. In the document type editor, this corresponds to the 'source' property. From the value list, two keys are read, 'true' and 'false'.


Before setting up this field, the authors have to create a document of the type resource bundle, which will provide the options to be selected.

boolean.resource.bundle

inValues Array of String no labels of the field. Expects labels of true and false values respectively. In the document type editor, this corresponds to the 'trueLabel' and 'falseLabel' properties

["Open", "Closed"]

Default value

The default value is an array of Boolean

An example of Boolean fields can be seen below:

{
  "name": "booleanChekbox",
  "required": true,
  "type": "Boolean",
  "defaultValue": [
    true
  ],
  "presentation": {
    "caption": "Boolean Field",
    "hint": "Hint for boolean field",
    "layoutColumn": 1,
    "displayType": "Checkbox"
  }
}
{
  "name": "radiogroupOnBoolean",
  "required": true,
  "type": "Boolean",
  "defaultValue": [
    "false"
  ],
  "validations": {
    "inResourceBundle": "boolean.resource.bundle"
  },
  "presentation": {
    "caption": "Radiogroup field",
    "hint": "Hint for radiogroup field on boolean",
    "layoutColumn": 1,
    "displayType": "RadioGroup",
    "orientation": "vertical"
  }
}
{
  "name": "staticRadiogroupOnBoolean",
  "required": false,
  "type": "Boolean",
  "defaultValue": [
    "false"
  ],
  "validations": {
    "inValues": [
      "Open",
      "Closed"
    ]
  },
  "presentation": {
    "caption": "Radiogroup field",
    "hint": "Hint for static radiogroup field on boolean",
    "layoutColumn": 1,
    "displayType": "RadioGroup"
  }
}

Integer

An Integer field is displayed as shown below:

Default value

The default value is an array of Integer numbers

An example of an Integer field can be seen below:

{
  "name": "integer",
  "required": true,
  "type": "Integer",
  "defaultValue": [
    100
  ],
  "presentation": {
    "caption": "Integer Field",
    "hint": "Hint for integer field",
    "layoutColumn": 2
  }
}

Number

A Number field is used for decimal values. Its default value is 0.0.

Default value

The default value is an array of Double numbers

An example of a Number field can be seen below:

{
  "name": "number",
  "required": true,
  "multiple": true,
  "type": "Number",
  "defaultValue": [
    100.34,
    2.2
  ],
  "presentation": {
    "caption": "Number Field",
    "hint": "Hint for number field",
    "layoutColumn": 2
  }
}

Html

An Html field is used for formatted text content. It is stored as HTML markup.

Presentation properties

Property Name Property Type Required Description Examples
ckEditorAppendedJson String no JSON configuration object for CKEditor. In the document type editor, this corresponds to the 'ckeditor.config.appended.json' property. See html fields configuration

{\n \"keystrokes\":[[88,\"showblocks\"]],\n \"plugins\":\"colorbutton\"\n}

ckEditorOverlayedJson String no JSON configuration object for CKEditor. In the document type editor, this corresponds to the 'ckeditor.config.overlayed.json' property. See html fields configuration {\n  \"codemirror\": {\n    \"autoFormatOnStart\": false\n  },\n  \"ignoreEmptyParagraph\": true\n}

Default value

The default value is an array of String (Html)

An example of an Html field can be seen below:

{
  "name": "html",
  "required": true,
  "type": "Html",
  "defaultValue": [
    "<p>Sample content html field</p>"
  ],
  "presentation": {
    "caption": "Html Field",
    "hint": "Hint for html field",
    "layoutColumn": 2,
    "ckEditorAppendedJson": "{\n  \"keystrokes\":[[88,\"showblocks\"]],\n  \"plugins\":\"colorbutton\"\n}",
    "ckEditorOverlayedJson": "{\n  \"codemirror\": {\n    \"autoFormatOnStart\": false\n  },\n  \"ignoreEmptyParagraph\": true\n}"
  }
}

Rich Text

A Rich Text Editor field is used to store fully featured rich text content. It is stored as HTML markup within the document. The Rich Text Editor provides authors with the freedom to format text and include tables, images, links, etc. The delivery tier will include references to other content items (such as images and links to other documents).

Presentation properties

Property Name Property Type Required Description Examples
ckEditorAppendedJson String no JSON configuration object for CKEditor. In the document type editor, this corresponds to the 'ckeditor.config.appended.json' property. See html fields configuration

{\n \"keystrokes\":[[88,\"showblocks\"]],\n \"plugins\":\"colorbutton\"\n}

ckEditorOverlayedJson String no JSON configuration object for CKEditor. In the document type editor, this corresponds to the 'ckeditor.config.overlayed.json' property. See html fields configuration {\n  \"codemirror\": {\n    \"autoFormatOnStart\": false\n  },\n  \"ignoreEmptyParagraph\": true\n}
imagepickerBasePath String no Path of the node to open in the picker by default if no 'last visited' node is available. Use an empty string to disable this feature. In the document type editor, this corresponds to the 'imagepicker.base.uuid' property. The API takes care of converting from path to uuid and vice versa.

/content/gallery/brxsaas/images

imagepickerType String  no The type of the picker to use. Valid values: documents, images, assets, folders, documents-only, documents-folders-only. Defaults to 'images'. In the document type editor, this corresponds to the 'imagepicker.cluster.name' property. The API takes care of managing the 'cms-pickers' prefix. images
imagepickerNodetypes Array of String no One or more JCR node types (comma separated) specifying the content types that can be selected. By default, all types are selectable. In the document type editor, this corresponds to the 'imagepicker.nodetypes' property.

["folder", "banner"]

imagepickerLastVisitedEnabled Boolean no Whether to store the last visited node. Defaults to true. In the document type editor, this corresponds to the 'imagepicker.last.visited.enabled' property. true
imagepickerLastVisitedGroupKey String no Key to store the last visited node in the link picker dialog under. Use a unique value to remember the last visited node separately from other CKEditor link picker dialogs. Default: ckeditor-imagepicker. In the document type editor, this corresponds to the 'imagepicker.last.visited.key' property. imagepicker
imagepickerLastVisitedNodetypes Array of String no The JCR node type(s) allowed to be stored as last visited node. Default: hippostd:gallery. In the document type editor, this corresponds to the 'imagepicker.last.visited.nodetypes' property.

["gallery", "banner"]

imagepickerPreferredImageVariant String no The image variant to select by default in the variant combo box of the image picker.Default: hippogallery:original. In the document type editor, this corresponds to the 'imagepicker.preferred.image.variant' property.

original

linkpickerBasePath String no Path of the node to open in the picker by default if no 'last visited' node is available. Use an empty string to disable this feature. In the document type editor, this corresponds to the 'linkpicker.base.uuid' property. The API takes care of converting from path to uuid and vice versa. /content/gallery/brxsaas/myimages
linkpickerType Stirng  no The type of the picker to use. Valid values: documents, images, assets, folders, documents-only, documents-folders-only. Defaults to 'documents'. In the document type editor, this corresponds to the 'linkpicker.cluster.name' property. The API takes care of managing the 'cms-pickers' prefix.

documents

linkpickerNodetypes Array of String no One or more JCR node types specifying the content types that can be selected. By default, all types are selectable. In the document type editor, this corresponds to the 'linkpicker.nodetypes' property.

["folder", "banner"]

linkpickerLastVisitedEnabled Boolean no Whether to store the last visited node. Defaults to true. In the document type editor, this corresponds to the 'linkpicker.last.visited.enabled' property. true
linkpickerLastVisitedGroupKey String no Key to store the last visited node in the link picker dialog under. Use a unique value to remember the last visited node separately from other CKEditor link picker dialogs. Default: ckeditor-documentpicker. In the document type editor, this corresponds to the 'linkpicker.last.visited.key' property. documentpicker
linkpickerLastVisitedNodetypes Array of String no The JCR node type(s) allowed to be stored as last visited node. Default: hippostd:folder. In the document type editor, this corresponds to the 'linkpicker.last.visited.nodetypes' property.

 

["folder"]

linkPickerLanguageContextAware Boolean no Whether the starting folder of the documentpicker is the folder of the language of the document. Defaults to true. In the document type editor, this corresponds to the 'linkpicker.language.context.aware' property. true
linkPickerOpenInNewWindowEnabled Boolean no Whether to show to 'open in new window' checkbox in the link picker dialog. Defaults to true. In the document type editor, this corresponds to the 'linkpicker.open.in.new.window.enabled' property. false
includeImageVariants Array of String no The (comma separated) JCR node type(s) of image variants to be included in the 'Size' dropdown of the image picker dialog. If empty all image variants will be included. In the document type editor, this corresponds to the 'included.image.variants' property. original, thumbnail
excludeImageVariants Array of String no The (comma separated) JCR node type(s) to be excluded from the 'Size' dropdown of the image picker dialog. In the document type editor, this corresponds to the 'excluded.image.variants' property. bannervariant, small

Default value

The default value is an array of String (Html)

An example of a RichText field can be seen below:

{
  "name": "richText",
  "required": false,
  "type": "RichText",
  "defaultValue": [
    "<p>Sample content rich text field</p>"
  ],
  "presentation": {
    "caption": "Content",
    "hint": "Hint for rich text field",
    "layoutColumn": 1,
    "imagepickerType": "images",
    "imagepickerNodetypes": [
      "folder",
      "banner"
    ],
    "imagepickerLastVisitedEnabled": true,
    "imagepickerLastVisitedGroupKey": "ckeditor-imagepicker",
    "imagepickerLastVisitedNodetypes": [
      "gallery",
      "banner"
    ],
    "imagepickerPreferredImageVariant": "original",
    "imagepickerBasePath": "/content/gallery/brxsaas/images",
    "linkpickerType": "documents",
    "linkpickerNodetypes": [
      "folder",
      "banner"
    ],
    "linkpickerLastVisitedEnabled": true,
    "linkpickerLastVisitedGroupKey": "ckeditor-linkpicker",
    "linkpickerLastVisitedNodetypes": [
      "folder"
    ],
    "linkPickerLanguageContextAware": true,
    "linkPickerOpenInNewWindowEnabled": true
  }
}

SelectableString

A  SelectableString is displayed in many different ways, depending on the property presentation/displayType.

As a static dropdown, a single value dropdown widget populated from a static value list specified as comma-separated values in the field properties:

As single value dropdown widget populated from a resource bundle document:

As a single value radio button group widget populated from a resource bundle:

As a Multi Select, that lets authors select multiple elements from a list of possible options. This display type comes in different flavours as well, select list, pallette and checkboxes:

 

Presentation properties

Property Name Property Type Required Description Examples
displayType String yes

Display type of the field. Valid values: RadioGroup, Dropdown, MultiSelect

Dropdown

sortOrder String   sortOrder type of the field. Valid values: ascending, descending. Defaults to 'ascending'. Not applicable when displayType is MultiSelect ascending
sortBy String   sortBy type of the field. Valid values: key, label. Defaults to 'label'. Not applicable when displayType is MultiSelect key
orientation String no Orientation type of the field. Valid values: horizontal, vertical. Defaults to 'horizontal'. Only applicable when displayType is Radiogroup Vertical
showDefault Boolean no Defines whether the default value 'Choose One' should be shown.  Only applicable when displayType is Dropdown false
multiSelectType String no This property determines the user interface of the field. Valid values are: selectlist, checkboxes, palette. Only applicable when displayType is MultiSelect palette
maxRowWithoutScrollbar Integer no in case of using the selectlist or palette representations, this property allows to set the maximum number of elements shown (if there are more elements, a scrollbar will appear. In the document type editor, this corresponds to the 'selectlist.maxrows' and 'palette.maxrows' properties. Only applicable when displayType is MultiSelect 8
multiSelectAllowOrder Boolean no In case of using the palette representation, if set to 'true', it will be possible to manually order the elements on the 'selected' list. In the document type editor, this corresponds to the 'palette.alloworder' property. Only applicable when displayType is MultiSelect false

Validation properties 

Property Name Property Type Required Description Examples
inResourceBundle String no

Id of a resource bundle that is used to fetch values from. In the document type editor, this corresponds to the 'source' property.

Before setting up this field, the authors have to create a document of the type resource bundle, which will provide the options to be selected.

brsm.widget.types

inValues Array of KeyValue no Expects an array of key-label values. Not applicable for displayType RadioGroup or MultiSelect. In the document type editor, this corresponds to the 'selectable.options' property.

[
      {
        "key": "01",
        "label": "New"
      },
      {
        "key": "02",
        "label": "Open"
      },
      {
        "key": "03",
        "label": "Closed"
      }
    ]

Default value

The default value is an array of String

An example of such fields can be seen below:

{
  "name": "dropdownWithResourceBundle",
  "required": true,
  "type": "SelectableString",
  "defaultValue": [
    "key1"
  ],
  "validations": {
    "inResourceBundle": "brsm.example.bundle"
  },
  "presentation": {
    "caption": "Dynamic dropdown field",
    "hint": "Hint for dynamic dropdown field",
    "layoutColumn": 1,
    "displayType": "Dropdown",
    "sortOrder": "ascending",
    "sortBy": "key",
    "showDefault": true
  }
}
{
  "name": "dropdownWithStaticValues",
  "required": true,
  "type": "SelectableString",
  "defaultValue": [
    "01"
  ],
  "validations": {
    "inValues": [
      {
        "key": "01",
        "label": "New"
      },
      {
        "key": "02",
        "label": "Open"
      },
      {
        "key": "03",
        "label": "Closed"
      }
    ]
  },
  "presentation": {
    "caption": "Static dropdown Field",
    "hint": "Hint for dropdown field",
    "layoutColumn": 1,
    "displayType": "Dropdown"
  }
}
{
  "name": "radiogroup",
  "required": true,
  "type": "SelectableString",
  "validations": {
    "inResourceBundle": "brsm.example.bundle"
  },
  "presentation": {
    "caption": "Radiogroup field",
    "hint": "Hint for radio group field",
    "layoutColumn": 1,
    "displayType": "RadioGroup",
    "orientation": "horizontal"
  }
}
{
  "name": "multiselectfieldWithResourceBundle",
  "required": true,
  "multiple": true,
  "type": "SelectableString",
  "defaultValue": [
    "key1",
    "key2"
  ],
  "validations": {
    "inResourceBundle": "brsm.example.bundle"
  },
  "presentation": {
    "caption": "Multiselect field",
    "hint": "Hint for mmultiselect field with resource bundle",
    "layoutColumn": 1,
    "displayType": "MultiSelect",
    "multiSelectType": "selectlist",
    "maxRowWithoutScrollbar": 2,
    "multiSelectAllowOrder": true
  }
}

Link

A Link field with displayType AnyLink, is used to create an internal link to a different content item (such as a document or asset) in the repository. The delivery tier will resolve the reference and translate it to a website URL on-the-fly. If a brX user tries to delete the referenced content item they will see a warning that it is being referred to and deleting the item will cause a broken link in the referring document.

An Link field with a displayType ImageLink is used to include an image from the gallery in the document. 

Presentation properties

Property Name Property Type Required Description Examples
displayType String yes Display type of the field. Valid values: AnyLink, ImageLink

AnyLink

lookupFolderTypes Array of String no Document types allowed for selection. In the document type editor, this corresponds to the 'nodetypes' property folder, banners
lastVisitedKey String no

If specified, the last visited folder is stored separately for this key. This allows managing multiple 'last visited folders', for example, one for each document type. If not specified, the last visited folder is 'shared' with all other link fields that have not specified a lastVisitedKey.

When displayType is ImageLink, this property defaults to 'gallerypicker-imagelink'.

In the document type editor, this corresponds to the 'last.visited.key' property

mykey
lastVisitedEnabled Boolean no Enables to remember and open the last opened folder for the session in the picker dialog. True by default. In the document type editor, this corresponds to the 'last.visited.enabled' property false
lookupFolderPath String no

The path of the default folder to show when the Link Picker dialog opens. In the document type editor, this corresponds to the 'base.path' property.

Applicable only when displayType is AnyLink

/content/documents/brxsaas/banners
lastVisitedNodetypes Array of String no

By default, only hippostd:folder type nodes are regarded as 'last visited folders' mentioned above. If you have any custom node types representing folder other than hippostd:folder, then you can specify other node types.

In the document type editor, this corresponds to the 'last.visited.nodetypes' property. 

Applicable only when displayType is AnyLink

myfolder, myfoldertwo
languageContextAware Boolean no

If true the Link Picker dialog by default opens the root content folder for the current document's language. True by default, however if lastVisitedEnabled is set, it takes precedence so has to be set to false.

In the document type editor, this corresponds to the 'language.context.aware' property.

Applicable only when displayType is AnyLink

true
pickerType String no

The type of the picker to use. Valid values: documents, images, assets, folders, documents-only, documents-folders-only. Defaults to 'documents'.

In the document type editor, this corresponds to the 'cluster.name' property. The API takes care of managing the 'cms-pickers' prefix.

Applicable only when displayType is AnyLink

documents
uploadEnabled Boolean no

Ehether the user is allowed to upload new files from within the picker dialog, defaults to true

Applicable only when displayType is ImageLink

true

Default value

The default value is an array of String

An example of Link fields can be seen below:

{
  "name": "link",
  "required": false,
  "type": "Link",
  "defaultValue": [
    "/content/documents/brxsaas/pages/about"
  ],
  "presentation": {
    "caption": "Link",
    "hint": "Hint for link field",
    "layoutColumn": 2,
    "displayType": "AnyLink",
    "lookupFolderPath": "/content/documents/brxsaas/banners",
    "lookupFolderTypes": [
      "folder"
    ],
    "lastVisitedNodetypes": [
      "folder"
    ],
    "lastVisitedEnabled": true,
    "languageContextAware": true,
    "pickerType": "documents"
  }
}
{
  "name": "imageLink",
  "required": false,
  "type": "Link",
  "defaultValue": [
    "/"
  ],
  "presentation": {
    "caption": "Image",
    "hint": "Hint for image link field",
    "layoutColumn": 1,
    "displayType": "ImageLink",
    "lastVisitedKey": "gallerypicker-imagelink",
    "lastVisitedEnabled": true,
    "uploadEnabled": true
  }
}

EmbeddedResource

A Resource field is used to embed a file (e.g. an image or a PDF document) in a document. The file is stored within the document and can't be reused by other documents.

Default value

The default value is an Array of objects, with following properties:

Property Name Property Type Required Description Examples
filename String yes The name of the file that is used as default value

testname

binarydata String yes The binary data of the file that is used as default value. This data has to be encoded using base64 /9j/4AAQSkZJRgABAQAAFAAUAAD/...
mimeType String yes

The mimeType of the file to be uploaded

application/pdf

An example of an EmbeddedResource field can be seen below:

{
  "name": "resource",
  "required": true,
  "type": "EmbeddedResource",
  "defaultValue": [
    {
      "filename": "hippo:resource",
      "binarydata": "/9j/4AAQSkZJRgABAQAAFAAUAAD/4QCMRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAAAUAAAAAQAAABQAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAAigAwAEAAAAAQAAAAUAAAAA/+0AOFBob3Rvc2hvcCAzLjAAOEJJTQQEAAAAAAAAOEJJTQQlAAAAAAAQ1B2M2Y8AsgTpgAmY7PhCfv/AABEIAAUACAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/3QAEAAH/2gAMAwEAAhEDEQA/APrD4kfAXwl46KapdRwm7uHw0l9b/bDHkjPlFmDRjAxtB289OueI/wCGPPB3/P3p3/gmT/45X0Hdf8eVr/11FNrCtlmGrTc5J38pSX4JpG1PGVYxS0frGLf3tNn/2Q==",
      "mimeType": "application/json"
    }
  ],
  "presentation": {
    "caption": "Resource Field",
    "hint": "Hint for resource field",
    "layoutColumn": 2
  }
}

Taxonomy

Taxonomy documents represent a taxonomy hierarchy composed by different levels of categories. In each level of the category tree there might be several 'sibling' categories.

Using a Taxonomy field in a document type, developers can specify a taxonomy, so later, when authors edit a document of that type, they will be able to pick categories from that taxonomy.


Validation properties

Property Name Property Type Required Description Examples
inTaxonomy String yes

The name of the taxonomy document that will be used. Expects a string value. In the document type editor, this corresponds to the 'taxonomy.name' property.

Before setting up this field, the authors have to create a taxonomy with this name, which will provide the options to be selected.

testTaxonomy

Default value

The default value is an array of String, corresponding to keys in the taxonnomy

An example of a Taxonomy field can be seen below:

{
  "name": "taxonomyField",
  "required": true,
  "multiple": true,
  "type": "Taxonomy",
  "defaultValue": [
    "category1"
  ],
  "validations": {
    "inTaxonomy": "testTaxonomy"
  },
  "presentation": {
    "caption": "Taxonomy Field",
    "hint": "Hint for Taxonomy field",
    "layoutColumn": 2
  }
}

Open UI String

An Open UI String field uses the document field extension point to display a custom field type.

Note: The use of OpenUI extensions currently requires additional configuration that can only be performed by Bloomreach. Contact Bloomreach Support if you are interested in using this feature.

Presentation properties

Property Name Property Type Required Description Examples
extensionType String yes The name of the extension that will be used. In the document type editor, this corresponds to the 'ui.extension' property

myextension

Default value

The default value is an array of String

An example of an Open UI field can be seen below:

{
  "name": "openuiField",
  "required": true,
  "multiple": true,
  "type": "OpenUiExtension",
  "presentation": {
    "caption": "openui Field",
    "hint": "Hint for OpenUi field",
    "layoutColumn": 2,
    "extensionType": "commerceProductPicker"
  }
}

FieldGroup

The FieldGroup field type provides content authors with the ability to add one pre-configured fieldgroup type to a document. All the fields that the fieldgroup type specifies become fields of the enclosing document, visually grouped together.

This field uses the top level property fieldGroupType to specify the name of the FieldGroup type.

Property Name Property Type Required Description Examples
fieldGroupType String yes

The name of the fieldgroup type that this field will use.

Before setting up this field, developers have to create the FieldGroup types

MyFieldGroupType

Default value

The default value is an array of DefaultValues, as needed for specified FieldGroup type

An example of FieldGroup fields can be seen below:

{
  "name": "aFieldGroupField",
  "type": "FieldGroup",
  "required": false,
  "multiple": false,
  "fieldGroupType": "aFieldGroupType",
  "presentation": {
    "caption": "A FieldGroup field",
    "hint": "Hint for FieldGroup field",
    "layoutColumn": 1
  },
  "defaultValue": [
    {
      "fields": {
        "title": [
          "A default title"
        ],
        "calendardate": [
          "2021-10-06T22:00:00Z"
        ]
      }
    }
  ]
}
{
  "name": "aFieldGroupWithFieldGroupField",
  "type": "FieldGroup",
  "required": false,
  "multiple": false,
  "fieldGroupType": "aFieldGroupWithFieldGroupType",
  "presentation": {
    "caption": "A FieldGroupWithFieldGroup field",
    "hint": "Hint for FieldGroupWithFieldGroup field",
    "layoutColumn": 1
  },
  "defaultValue": [
    {
      "fields": {
        "aFieldGroupField": [
          {
            "fields": {
              "title": [
                "A different default title"
              ],
              "calendardate": [
                "2022-02-08T23:00:00Z"
              ]
            }
          }
        ],
        "title": [
          "Top level title"
        ]
      }
    }
  ]
}

The examples above makes use of the following two FieldGroup types:

{
  "name": "aFieldGroupType",
  "type": "FieldGroup",
  "presentation": {
    "layout": "one-column"
  },
  "fields": [
    {
      "name": "title",
      "type": "String",
      "required": false,
      "multiple": false,
      "presentation": {
        "caption": "Title",
        "hint": "",
        "layoutColumn": 1,
        "displayType": "Simple"
      },
      "validations": {
        "maxLength": null
      },
      "defaultValue": [
        "A default title"
      ]
    },
    {
      "name": "calendardate",
      "type": "Date",
      "required": false,
      "multiple": false,
      "presentation": {
        "caption": "Calendar Date",
        "hint": "",
        "layoutColumn": 1,
        "timeSelectable": false
      },
      "defaultValue": [
        "2021-10-06T22:00:00Z"
      ]
    }
  ]
}
{
  "name": "aFieldGroupWithFieldGroupType",
  "type": "FieldGroup",
  "presentation": {
    "layout": "one-column"
  },
  "fields": [
    {
      "name": "title",
      "type": "String",
      "required": false,
      "multiple": false,
      "presentation": {
        "caption": "Title",
        "hint": "",
        "layoutColumn": 1,
        "displayType": "Simple"
      },
      "validations": {
        "maxLength": null
      },
      "defaultValue": [
        "Top level title"
      ]
    },
    {
      "name": "aFieldGroupField",
      "type": "FieldGroup",
      "required": false,
      "multiple": false,
      "presentation": {
        "caption": "A FieldGroup field",
        "hint": "",
        "layoutColumn": 1
      },
      "defaultValue": [
        {
          "fields": {
            "title": [
              "A different default title"
            ],
            "calendardate": [
              "2022-02-08T23:00:00Z"
            ]
          }
        }
      ],
      "fieldGroupType": "aFieldGroupType"
    }
  ]
}

Selectable FieldGroup

The Selectable FieldGroup field type provides content authors with the ability to add pre-configured FieldGroup types to a document. This allows for a more flexible document types in which authors have the freedom to choose which fieldgroup(s) to use.

This field uses the top level property fieldGroupTypes to specify the names of the allowed FieldGroup types.

Property Name Property Type Required Description Examples
fieldGroupTypes Array of String yes

An array of fieldgroup types that will be enabed in this group of fieldgroups. In the document type editor, this corresponds to the 'compoundList' property.

Before setting up this field, developers have to create the FieldGroup types

[
    "aFieldGroupType",
    "aFieldGroupWithFieldGroupType"
  ]

Presentation properties

Property Name Property Type Required Description Examples
contentPickerType String yes

The way the picker buttons will be rendered. The valid values are 'links' (default) and 'dropdown':

links: shows as many buttons as available compounds. When hitting a button, adds a new block of that compound type

dropdown: presents a dropdown containing all the available compounds and an additional button to add an item of the selected compound of the dropdown

links

showFieldGroupNames Boolean yes

The valid values are 'false' (default) and 'true', it determines whether each item should add the field group name on top of it. When it's active, clicking on the name will collapse or expand the item.

In the document type editor, this corresponds to the 'showCompoundNames' property

true

Validation properties

Property Name Property Type Required Description Examples
maxItem Integer no

When the multiple option is selected, the maximum number of items that can be added. If multiple is not selected, the maximum number will be 1, regardless the value of this field.

In the document type editor, this corresponds to the 'maxitems' property

10

Default value

The default value is an array of DefaultValues, as needed for specified FieldGroup type. An additional property is used to specify for which fieldgroup a default value is given

Property Name Property Type Required Description Examples
fieldGroupType String yes The name of the fieldgroup type this default value is provided for

MyFieldGroupType

An example of a SelectableFieldGroup field can be seen below:

{
  "name": "aSelectableFieldGroupField",
  "type": "SelectableFieldGroup",
  "required": false,
  "multiple": true,
  "fieldGroupTypes": [
    "aFieldGroupType",
    "aFieldGroupWithFieldGroupType"
  ],
  "presentation": {
    "caption": "A SelectableFieldGroup field",
    "hint": "Hint for SelectableFieldGroup field",
    "layoutColumn": 1,
    "contentPickerType": "links",
    "showFieldGroupNames": false
  },
  "validations": {
    "maxItem": 10
  },
  "defaultValue": [
    {
      "fieldGroupType": "aFieldGroupType",
      "fields": {
        "title": [
          "A default title"
        ],
        "calendardate": [
          "2021-10-06T22:00:00Z"
        ]
      }
    },
    {
      "fieldGroupType": "aFieldGroupWithFieldGroupType",
      "fields": {
        "aFieldGroupField": [
          {
            "fields": {
              "title": [
                "A different default title"
              ],
              "calendardate": [
                "2022-02-08T23:00:00Z"
              ]
            }
          }
        ],
        "title": [
          "Top level title"
        ]
      }
    }
  ]
}

The example above makes use of the following two FieldGroup types:

{
  "name": "aFieldGroupType",
  "type": "FieldGroup",
  "presentation": {
    "layout": "one-column"
  },
  "fields": [
    {
      "name": "title",
      "type": "String",
      "required": false,
      "multiple": false,
      "presentation": {
        "caption": "Title",
        "hint": "",
        "layoutColumn": 1,
        "displayType": "Simple"
      },
      "validations": {
        "maxLength": null
      },
      "defaultValue": [
        "A default title"
      ]
    },
    {
      "name": "calendardate",
      "type": "Date",
      "required": false,
      "multiple": false,
      "presentation": {
        "caption": "Calendar Date",
        "hint": "",
        "layoutColumn": 1,
        "timeSelectable": false
      },
      "defaultValue": [
        "2021-10-06T22:00:00Z"
      ]
    }
  ]
}
{
  "name": "aFieldGroupWithFieldGroupType",
  "type": "FieldGroup",
  "presentation": {
    "layout": "one-column"
  },
  "fields": [
    {
      "name": "title",
      "type": "String",
      "required": false,
      "multiple": false,
      "presentation": {
        "caption": "Title",
        "hint": "",
        "layoutColumn": 1,
        "displayType": "Simple"
      },
      "validations": {
        "maxLength": null
      },
      "defaultValue": [
        "Top level title"
      ]
    },
    {
      "name": "aFieldGroupField",
      "type": "FieldGroup",
      "required": false,
      "multiple": false,
      "presentation": {
        "caption": "A FieldGroup field",
        "hint": "",
        "layoutColumn": 1
      },
      "defaultValue": [
        {
          "fields": {
            "title": [
              "A different default title"
            ],
            "calendardate": [
              "2022-02-08T23:00:00Z"
            ]
          }
        }
      ],
      "fieldGroupType": "aFieldGroupType"
    }
  ]
}
Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?