Skip to content

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:read
  • onco_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.