NodeType mit Reference als Dropdown darstellen

Hallo,
ich habe in einem NodeType ein Feld vom Typ Reference. Das Feld wird auch im Backend angezeigt, allerdings als Suchfeld. Gäbe es hier die Möglichkeit, es als einfaches Dropdown darzustellen, wo man nur eines auswählen muss? Ohne dass der Redakteuer erst x Zeichen eingeben muss?

Ich hatte versucht, die Minimumzeichen einfach auf 0 zu setzen, dann zeigt er ohne Eintrag im Suchfeld aber einfach “no matches found”. Erst wenn man mind. 1 Zeichen eingibt, kommt etwas :confused:

Wie kann ich die Auswahlmöglichkeiten von Reference als Dropdown ohne Suche rendern lassen?
Ich wäre für jeden Hinweis dankbar.

Hallo Kathrin,

eine ähnliche Situation hatte ich auch letztens. Das Suchfeld ist zwar echt praktisch, wenn man viele Nodes durchsuchen muss, aber nicht wenn nur zwischen wenigen Nodes ausgesucht werden soll, die eventuell auch gar nicht bekannt sind. Leider hatte ich auch keine direkte Lösung mit dem “reference” Typ gefunden, daher hab ich mir einen kleinen Workaround gebaut.

Dafür nutze ich die Möglichkeit eigene DataSources einzusetzen.
Wie man diese erstellt ist hier beschrieben: Custom Data Sources - Extending Neos with PHP & Flow - Manual - Neos CMS - Neos Docs
Und die Nutzung in Properties hier: Property Editor Reference — Neos CMS dev-master documentation

Die DataSource hat bei mir auch keine besondere Logik. Ich baue meine Liste an Nodes in der DataSource so zusammen:

    $q = new FlowQuery([$this->contextFactory->create()->getRootNode()]);
    $industries = $q->find('[instanceof KaufmannDigital.Customer:Document.NodeType]')->get();

    $options = [];
    /** @var NodeInterface $industry */
    foreach ($industries as $industry) {
        $options[$industry->getIdentifier()] = [
            'icon' => 'icon-industry',
            'label' => $industry->getLabel()
        ];
    }
    return $options;

Ich hoffe, das hilft dir ein wenig :blush:

Viele Grüße
Niklas

2 Likes

Kleine Ergänzung: Du kannst das Feld weiterhin auf dem Typ “reference” belassen. Dann funktioniert alles weitere (FlowQuery usw) weitherhin so, als wäre es eine normale Reference. Die Config in dem NodeType sieht dann so aus:

propertyName:
  type: reference
  ui:
    label: 'Mein Label'
    reloadIfChanged: true
    inspector:
      group: 'company'
      editor: Neos.Neos/Inspector/Editors/SelectBoxEditor
      editorOptions:
        placeholder: 'Bitte wählen'
        dataSourceIdentifier: kd-my-identifier
2 Likes

Hallo Niklas,
vielen Dank, das probier ich gleich mal aus^^

@ndroste
Funktioniert super:) Vielen Dank für deine Hilfe^^

Hallo @KathrinH, wir benötigen den Nodetype Select statt Search in einigen Projekten und haben die DataSource daher in ein kleines Package gepackt.

Findest du hier: GitHub - tmsdev/Tms.Select: Select nodes instead of searching via reference editor in Neos CMS.

1 Like

@jobee
Toll, das ist ja sogar variabel :smiley:
Vielen Dank^^