Technische Dokumentation
Diese Seite richtet sich an Entwickler, die den Kompatibilitätsfilter in einem eigenen Plugin erweitern oder an bestimmten Stellen in die Plugin-Logik eingreifen wollen.
Wir empfehlen Erweiterungen grundsätzlich als eigenes Plugin, das den Kompatibilitätsfilter als Abhängigkeit aufführt. Direkte Änderungen an den Plugin-Dateien gehen beim nächsten Update verloren.
Umgebungsvariablen
Ein Teil des Plugin-Verhaltens lässt sich per Umgebungsvariable steuern. Alle
Flags werden über den Service
OncoCompatibilityFilter\Service\Config\EnvFlags bereitgestellt und sollten
nicht per getenv() aus dem Anwendungscode gelesen werden.
Setzen lassen sich die Variablen wie gewohnt in .env oder .env.local.
| Variable | Typ | Default | Zweck |
|---|---|---|---|
ONCO_COMPI_DO_NOT_USE_ID_CRITERIA |
bool | false |
Deaktiviert die ID-basierte Optimierung beim Aufbau der Filter-Criteria. Nur als Notfall-Schalter gedacht. |
ONCO_COMPI_USE_SALES_CHANNEL_AVAILABILITY |
bool | false |
Berücksichtigt bei der Objekt-Auswahl die Sales-Channel-spezifische Verfügbarkeit. |
ONCO_COMPI_HAS_KBA_FORM |
bool | false |
Aktiviert das KBA-Suchformular im Frontend. |
ONCO_COMPI_NO_KBA_RESULT_URL |
string | null |
Ziel-URL, auf die weitergeleitet wird, wenn eine KBA-Suche kein Ergebnis liefert. |
ONCO_COMPI_SHOW_SELECTED_DROPDOWNS |
bool | false |
Zeigt die Filter-Dropdowns auch dann, wenn bereits ein Objekt ausgewählt ist (vorausgefüllt). |
Custom Events
Das Plugin bietet auch Events, auf die ihr in eigenen Subscribern reagieren könnt.
CompleteObjectNameEvent
- FQCN:
OncoCompatibilityFilter\Event\CompleteObjectNameEvent
Wird für jedes Objekt ausgelöst, bevor dessen vollständiger Anzeigename
(z. B. Hersteller A Modell X 2020) gerendert wird. Listener können den
Namen verändern, bevor er ins Frontend oder in die Administration
zurückgegeben wird.
Payload:
| Getter | Typ | Beschreibung |
|---|---|---|
getName() |
string |
Der aktuell zusammengesetzte Name. |
setName(string) |
void |
Überschreibt den Namen mit einer eigenen Zeichenkette. |
getObject() |
ObjectEntity |
Das Objekt, für das der Name erzeugt wird. |
getObjectPathArray() |
array |
Hierarchischer Pfad (Array mit name-Keys pro Ebene). |
Beispiel-Subscriber:
use OncoCompatibilityFilter\Event\CompleteObjectNameEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class CustomObjectNameSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [CompleteObjectNameEvent::class => 'onCompleteName'];
}
public function onCompleteName(CompleteObjectNameEvent $event): void
{
$path = $event->getObjectPathArray();
$event->setName(implode(' » ', array_column($path, 'name')));
}
}
ACL-Rechte
Die Administration-UI nutzt zwei Berechtigungen, die in eigenen Rollen vergeben werden können:
onco_compatibility_filter:readonco_compatibility_filter:write
Fehlt euch etwas?
Wenn ihr zusätzliche Events oder Erweituerngsmöglichkeiten braucht, sprecht uns an. Wir erweitern die öffentliche API gerne, wenn ein konkreter Use Case dahinter steht.