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 |
---|---|
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 |
---|---|
placeholder_contentID | In der URL wird der Parameter-Key "contentID" durch den hier angegeben Key ersetzt. Bsp. würde beim oben stehenden Beispiel nicht |
placeholder_tableIdentifier | Der Platzhalter für den Tabellen-Identifikator einer Tabelle. Auch hier wird in der URL |
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.