Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Aufbau des Plugins

Das Plugin basiert auf .Vorschläge v5.5. Der Suchfilter bietet eine Möglichkeit sowohl im Frontend als auch im Backend Datensätze anhand einer Eingabe zu suchen. Die Filter welche mit der Klasse collectionSuggestionAbstract hinzugekommen sind, können für jedes Such-Feld durchsucht werden. Mit dem Event-Interface \brandbox\component\suggestion\lib\event\suggestionEventInterface kann ein neuer Filter mit vielen zusätzlichen Unterfiltern hinzugefügt werden.

Info
titleHinweis

Es werden nur Felder durchsucht welche auch als Suchfeld in der widget.json oder in der Datenmodellierung definiert wurden.

Konstanten

Zur Unterscheidung von den jeweiligen Plugins werden Konstanten verwendet. Folgende Konstanten sind Pflicht in einem solchen Event zu befüllen.

BereichBeschreibung
FILTER_NAMEName des Filters ("name"-Attribut der Checkbox)
ADDITIONAL_FILTER_PREFIXDer Prefix für die zusätzlichen Filter. Hier wird der Prefix und danach der Tabellen-Identifikator der jeweiligen zu durchsuchenden Tabelle verwendet. Beispielsweise wird dann aus dem ADDITIONAL_FILTER_PREFIX "additional-shop-" und der Tabelle "shopAddress" der Filtername "additional-shop-shopAddress"

COLLECTION_NAME

Anhand dem COLLECTION_NAME wird die composer.json des angegeben Plugins ausgelesen und holt sich den friendly-name. Dieser wird dann als Label für den Filter verwendet
SUGGESTION_LABELDas Label der Gruppe welches im Result-Bereich dargestellt wird

mapSpecialUrlCases

specialUrlCases sind Spezial-Fälle die sich von der normalen URL-Struktur unterscheiden. Links wurden als Standard base-ui Links implementiert. Es können mit dieser Funktion zusätzliche Links in einer map angeboten werden und in die Methode \brandbox\component\suggestion\lib\collectionSuggestionAbstract::getSuggestionElements als vierten Parameter eingereicht werden. In der map sind selbstverständlich mehrere Spezial-Fälle möglich. Eine map könnte ungefähr so aussehen.

Codeblock
languagephp
themeRDark
/**
* @return array
*/
private function mapUrlSpecialCases() {
  return [
    'shopOrder' => [
      'request' => 'shop/uiOrder.order-detail',
      'params' => [
        'placeholder_contentID' => 'orderID'
      ]
    ]
  ];
}

Beginnend mit Tabellen-Identifikator (hier "shopOrder"), werden "request" und weitere Parameter gesetzt. Bei request kommt der request. Bei params können weitere Parameter gesetzt werden. Folgende verschiedene Platzhalter zur Parameter-Änderung sind relevant:

BereichBeschreibung
placeholder_contentIDIn der URL wird der Parameter-Key "contentID" durch den hier angegeben Key ersetzt. Bsp. würde beim oben stehenden Beispiel nicht &contentID=x sondern &orderID=x stehen.
placeholder_tableIdentifierDer Platzhalter für den Tabellen-Identifikator einer Tabelle. Auch hier wird in der URL &tableIdentifier=x stehen

Für publish wurden noch weitere Platzhalter angeboten, da sich die dynamischen publish-Tabellen mit einer komplexeren URL arbeiten.

Verwendung

Filter welche hier zusätzlich eingebaut werden, sind nur im Backend mit entsprechenden Rechten sichtbar.

Visuelle Darstellung