Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

$typeclass and description
currentItemProvider

info.magnolia.ui.editor.CurrentItemProviderDefinition

Returns the parent node. Suitable for sub-forms only since it relies on a parent.

Warning

Do not use currentItemProvider with multi fields. The same nodes could be resolved by multiple fields that use currentItemProvider, which means their content would be overwritten. Additionally, if a multi field is not configured to resolve nodes strictly (the strict property is set to false by default), it will resolve irrelevant nodes from the parent and likely result in errors.

Warning

If you use currentItemProvider with composite or or switchable fields, make sure that none of the inner field names clash with:

  • Other inner field names at the level where currentItemProvider is used
  • Other field names one level up where the composite or switchable field is defined

That is, every field at every level must have a unique name. Otherwise, nodes sharing the same name could be resolved by multiple fields that use currentItemProvider, which means their content would be overwritten.

Code Block
languageyml
titleExample name conflict
collapsetrue
form:
  properties:
    first_compositeField:
      $type: compositeField
      itemProvider:
        $type: currentItemProvider 
      properties:
        inner_simple: # duplicate name conflict
          label: simple
          $type: textField # first text
        inner_simple2:
          label: simple
          $type: textField # second text
    second_compositeField:
      $type: compositeField
      itemProvider:
        $type: currentItemProvider
      properties:
        inner_simple: # duplicate name conflict
          label: simple
          $type: textField # fourth text - first text is now overwritten
        inner_simple3:
          label: simple
          $type: textField # third text

# Using jcrChildNodeProvider with both composite fields would fix the name problem
properties:
  first_compositeField:
    properties:
      inner_simple: # first text, no name conflict
      inner_simple2: # second text
  second_compositeField:
    properties:
      inner_simple: # fourth text, no name conflict
      inner_simple3: # third text

...