tms/select

Select nodes instead of searching via reference editor in Neos CMS

Installs: 8 033

Dependents: 2

Suggesters: 0

Security: 0

Stars: 5

Watchers: 5

Forks: 1

Open Issues: 5

Type:neos-plugin

1.4.2 2022-04-21 18:02 UTC

This package is auto-updated.

Last update: 2024-12-13 15:35:49 UTC


README

Select nodes instead of searching via reference editor in Neos CMS.

Install

composer require tms/select

Usage

Single-select nodetype configuration:

'Your.Package:Type':
  properties:
    yourReference:
      type: reference
      ui:
        inspector:
          editor: 'Neos.Neos/Inspector/Editors/SelectBoxEditor'
          editorOptions:
            dataSourceIdentifier: 'tms-select-nodedata'
            dataSourceDisableCaching: true # see "Data source caching"
            dataSourceAdditionalData:
              nodeTypes: ['Your.Package:TypeThatShouldBeReferenced']
              # Optional parameters
              groupBy: 'Your.Package:GroupType'
              startingPoint: '/start/here/instead/of/rootnode'
              labelPropertyName: 'title'
              setLabelPrefixByNodeContext: true
              previewPropertyName: 'thumbnailImage' # works with Neos 7.2+

Multi-select adjustments:

'Your.Package:Type':
  properties:
    yourReferences:
      type: references
      ui:
        inspector:
          editorOptions:
            multiple: true # Don't forget to set multiple: true when using type: references

Optional parameters

Data source caching

By default, Neos will cache data source results considering the current node. For Tms.Select this caching behaviour is not optimal, because

  1. Data source results get build too often
  2. When a referenced node changes, the data source results are not refreshed while navigating the UI (in fact, only when refreshing the browser)

We fixed this by implementing a data source cache Tms_Select_DataSourceCache. To ensure that datasource results are always up to date, you should disable the default data source caching with dataSourceDisableCaching: true.

Works with Sitegeist.Taxonomy

'Your.Package:Type':
  properties:
    yourTaxonomyReferences:
      type: references
      ui:
        inspector:
          editor: 'Neos.Neos/Inspector/Editors/SelectBoxEditor'
          editorOptions:
            allowEmpty: true
            multiple: true
            dataSourceIdentifier: 'tms-select-nodedata'
            dataSourceDisableCaching: true
            dataSourceAdditionalData:
              nodeTypes: [ 'Sitegeist.Taxonomy:Taxonomy' ]
              labelPropertyName: title
              startingPoint: '/taxonomies/your-vocabulary'

Acknowledgments

Development sponsored by tms.development - Online Marketing and Neos CMS Agency