Hey,
also ich habe zum test mal auf 6.2.9 geupgraded + die aktuelle powermail 2.1.x -Version am laufen.
Da klappt das Beispiel was du verlinkt hast, aber wenn ich das einfach auf meine Thematik anpasse, dann klappt das nicht! Könnte es sein, dass dort ein Fehler im Code exisiert ? Weil nicht nur der Signal-Slot funktioniert aus der Klasse FormController nicht 🙁
Hier mein Code:
ext_localconf.php
// klappt nicht
$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\SignalSlot\Dispatcher');
$signalSlotDispatcher->connect(
'\In2code\Powermail\Controller\FormController',
'createActionBeforeRenderView',
'In2code\Powermailext\Utility\SendMail',
'callMe',
FALSE
);
// klappt nicht
$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\SignalSlot\Dispatcher');
$signalSlotDispatcher->connect(
'\In2code\Powermail\Controller\FormController',
'formActionBeforeRenderView',
'In2code\Powermailext\Utility\SendMail',
'callMe',
FALSE
);
// klappt
$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\SignalSlot\Dispatcher');
$signalSlotDispatcher->connect(
'In2code\Powermail\Utility\SendMail',
'sendTemplateEmailBeforeSend',
'In2code\Powermailext\Utility\SendMail',
'manipulateMail',
FALSE
);
sendMail.php
<?php
namespace In2code\powermailext\Utility;
/**
* SendMail
*
* @package powermailextend
* @license http://www.gnu.org/licenses/lgpl.html
* GNU Lesser General Public License, version 3 or later
*/
class SendMail {
/**
* @param \TYPO3\CMS\Core\Mail\MailMessage $message
* @param array $email
* @param \In2code\Powermail\Domain\Model\Mail $mail
* @param array $settings
* @param string $type Email to "sender" or "receiver"
*/
public function manipulateMail($message, $email, $mail, $settings, $type) {
die("manipulateMail");
}
function callMe($field, $form, $mail, $controller) {
die("callme");
}
}
?>
Mir ist klar, dass sich das eine DIE auf das andere auswirkt, daher habe ich zum testen jeweils das andere DIE auskommentiert. Aber wenn nur die("callme") aktiv ist, dann läuft das form einwandfrei durch! Was ja nicht sein dürfte!
Gruß,
// Nachtrag
Hier noch etwas aus dem var_dump von der Variable $this->signalSlotDispatcher nach dem Aufruf vom Signal Slot in der Datei FormController.php (Zeile ~115[direkt nach dem Aufruf des SignalSlots in der Methode createAction])
TYPO3\CMS\Extbase\SignalSlot\Dispatchersingletonobject
isInitialized => TRUE
objectManager => TYPO3\CMS\Extbase\Object\ObjectManagersingletonobjectfiltered
slots => array(5 items)
TYPO3\CMS\Core\Resource\ResourceStorage => array(1 item)
TYPO3\CMS\Core\Resource\Index\MetaDataRepository => array(1 item)
TYPO3\CMS\Install\Service\SqlExpectedSchemaService => array(1 item)
\In2code\Powermail\Controller\FormController => array(2 items)
createActionBeforeRenderView => array(1 item)
0 => array(4 items)
class => 'In2code\Powermailext\Utility\SendMail' (38 chars)
method => 'callme' (6 chars)
object => NULL
passSignalInformation => FALSE
formActionBeforeRenderView => array(1 item)
0 => array(4 items)
class => 'In2code\Powermailext\Utility\SendMail' (38 chars)
method => 'callme' (6 chars)
object => NULL
passSignalInformation => FALSE
In2code\Powermail\Utility\SendMail => array(1 item)
sendTemplateEmailBeforeSend => array(1 item)
0 => array(4 items)
class => 'In2code\Powermailext\Utility\SendMail' (38 chars)
method => 'manipulateMail' (14 chars)
object => NULL
passSignalInformation => FALSE