Hallo liebe Com,
ich habe eine Hook, welche auf den Versand von Formularen reagiert und mir dann das Eingreifen erlaubt.
Nun möchte ich gerne, dass ich den Versand der Bestätigungs-Email beim Absenden eines Formulars verhindere, ohne hart über ein "exit" oder "die()" abzubrechen.
Dies soll aber nur geschehen, wenn die URI einen bestimmten String enthält.
Gelöst habe ich das ganze bisher so:
Funktionieren tut es bisher, nur habe ich zwei Probleme:PHP-Code:
class SuppressEditMailListener
{
public function suppressMailSending($arrSubmitted, $arrFiles, $intOldId, &$arrForm)
{
if(strpos($_SERVER['REQUEST_URI'], '/?act=edit') !== false) {
die();
}
}
}
1. Wenn der Benutzer nun das Formular absendet und sich auf der URI befindet, wird zwar keine Mail abgesendet, aber die komplette Funktionalität bricht durch das die() ab. Ich will nur den Email-Versand stoppen.
2. Ich würde gerne statt $_SERVER['REQUEST_URI'] einen Symfony-Service hierfür verwenden (z.B RequestStack). Leider erhalte ich beim Einbinden über eine DI immer Probleme:
Muss ich hier bezüglich der Dependency-Injection etwas anders machen?Uncaught PHP Exception ArgumentCountError: "Too few arguments to function App\EventListener\SuppressEditMailListener::__cons truct(), 0 passed in website/vendor/contao/core-bundle/src/Resources/contao/library/Contao/System.php on line 281 and exactly 1 expected" at website/src/EventListener/SuppressEditMailListener.php line 11
Es liegt alles im Root App-Namespace und ich habe eine ganz normale DI, wie bei Symfony üblich, gemacht.
Lesezeichen