4. Eigene Seitentypen integrieren

Nachfolgend wird beschrieben, wie Sie in einem eigenen Plugin zus├Ątzliche Seitentypen f├╝r die Login-Weiterleitung aktivieren k├Ânnen. Das k├Ânnte notwendig sein, wenn ein von Ihnen verwendeter Standard-Seitentyp von Shopware noch nicht vom Plugin unterst├╝tzt wird, oder wenn Sie bereits in einem eigenen Plugin oder durch ein Drittanbieter Plugin neue Seiten hinzugef├╝gt haben. F├╝r diese Anleitung ben├Âtigen Sie Programmierkenntnisse.

4.1 Subscriber anlegen

Zuerst m├╝ssen Sie an einer beliebigen Stelle in Ihrem Plugin ein Subscriber anlegen. Hier ist zun├Ąchst ein vollst├Ąndiges Beispiel und weiter unten wird das Beispiel erl├Ąutert:

<?php declare(strict_types=1);
ÔÇő
namespace MyPlugin\Subscriber;
ÔÇő
use Momocode\MomoLoginRedirectSW6\Redirect\Event\RedirectActiveCheckEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
ÔÇő
class LoginRedirectSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
RedirectActiveCheckEvent::class => 'onRedirectActiveCheck',
];
}
ÔÇő
public function onRedirectActiveCheck(RedirectActiveCheckEvent $event): void
{
if ($event->getRoute() === 'frontend.home.page') {
$event->setIsActive(true);
}
}
}

Im Beispiel wird der Seitentyp "Startseite" beschrieben, welcher schon im Plugin existiert. Sie k├Ânnen nach dieser Logik aber jeden weiteren Seitentyp integrieren. Der Subscriber reagiert auf das "RedirectActiveCheckEvent". Dieses wird ausgel├Âst, nachdem man sich eingeloggt hat und wenn das Plugin pr├╝ft, ob eine Weiterleitung auf die vorherige Seite f├╝r diesen Seitentyp aktiviert ist. Im Beispiel wird dann gepr├╝ft, ob die beim Event hinterlegte Route (die vorm Login aufgerufene Seite) die Route "frontend.home.page" ist. Dies ist die Symfony-Route der Startseite. Falls es sich um diese Route handelt, wird beim Event die Information gespeichert, dass die Weiterleitung auf diese Seite aktiv sein soll. Sie k├Ânnen hier eine beliebige Logik einbauen und Sie k├Ânnen so theoretisch auch die Logik des Plugins f├╝r einzelne Routen ├╝berschreiben, sodass die Plugin Konfiguration ignoriert wird und Ihre eigene Logik ausgef├╝hrt wird. Den genauen Namen Ihrer Route sollten Sie im entsprechenden Controller Ihres Seitentyps finden.

4.2 Subscriber registrieren

Jetzt m├╝ssen Sie Ihren Subscriber nur noch im Service Container registrieren. F├╝gen Sie daf├╝r folgenden Eintrag in Ihre services.xml ein:

<service id="MyPlugin\Subscriber\LoginRedirectSubscriber">
<tag name="kernel.event_subscriber"/>
</service>

Hinweis: Sollten Sie sich nicht mit der Shopware Plugin Entwicklung auskennen und unbedingt einen neuen Seitentyp ben├Âtigen, k├Ânnen Sie mich gerne unter [email protected] kontaktieren.