Suggestion

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.

Hinweis

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.

Bereich

Beschreibung

Bereich

Beschreibung

FILTER_NAME

Name des Filters ("name"-Attribut der Checkbox)

ADDITIONAL_FILTER_PREFIX

Der 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_LABEL

Das 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.

/** * @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:

Bereich

Beschreibung

Bereich

Beschreibung

placeholder_contentID

In 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_tableIdentifier

Der 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