Skip to content

Latest commit

 

History

History
50 lines (41 loc) · 5.98 KB

EventDispatcher.md

File metadata and controls

50 lines (41 loc) · 5.98 KB

PSR-14 EventDispatcher

Overview

Powermail offers a lot of events (modern pendant to hooks) to extend functions and properties with your extension. Please report to https://github.com/einpraegsam/powermail/issues if you need a new event anywhere.

Location Event Description
In2code\Powermail\Domain\Validator\CustomValidator::isValid() In2code\Powermail\Events\CustomValidatorEvent Add your own serverside Validation
In2code\Powermail\Controller\FormController::formAction() In2code\Powermail\Events\FormControllerFormActionEvent Listeners are called before the form is rendered
In2code\Powermail\Controller\FormController::createAction() In2code\Powermail\Events\FormControllerCreateActionBeforeRenderViewEvent Listeners are called before the mail and answers are persisted and before the emails are sent
In2code\Powermail\Controller\FormController::createAction() In2code\Powermail\Events\FormControllerCreateActionAfterMailDbSavedEvent Listeners are called directly after the mail was persisted
In2code\Powermail\Controller\FormController::createAction() In2code\Powermail\Events\FormControllerCreateActionAfterSubmitViewEvent Listeners are called after the create message was rendered
In2code\Powermail\Controller\FormController::createAction() In2code\Powermail\Events\CheckIfMailIsAllowedToSaveEvent It is possible to deny saving of the mail with this event
In2code\Powermail\Controller\FormController::confirmationAction() In2code\Powermail\Events\FormControllerConfirmationActionEvent Listeners are called before the confirmation view is rendered
In2code\Powermail\Controller\FormController::optinConfirmAction() In2code\Powermail\Events\FormControllerOptinConfirmActionBeforeRenderViewEvent Listeners are called before the optin confirmation view is rendered (only if Double-Opt-In is in use)
In2code\Powermail\Controller\FormController::initializeObject() In2code\Powermail\Events\FormControllerInitializeObjectEvent Change Settings from Flexform or TypoScript before Action is called
In2code\Powermail\ViewHelpers\Misc\PrefillFieldViewHelper::render() In2code\Powermail\Events\PrefillFieldViewHelperEvent Prefill fields by your own magic
In2code\Powermail\ViewHelpers\Misc\PrefillMultiFieldViewHelper::render() In2code\Powermail\Events\PrefillMultiFieldViewHelperEvent Prefill multiple fields by your own magic
In2code\Powermail\Domain\Service\Mail\ReceiverMailReceiverPropertiesService::setReceiverEmails() In2code\Powermail\Events\ReceiverMailReceiverPropertiesServiceSetReceiverEmailsEvent Manipulate receiver emails short before the mails will be send
In2code\Powermail\Domain\Service\Mail\ReceiverMailReceiverPropertiesService::getReceiverName() In2code\Powermail\Events\ReceiverMailReceiverPropertiesServiceGetReceiverNameEvent Manipulate receiver name when getting it
In2code\Powermail\Domain\Service\Mail\SendMailService::prepareAndSend() In2code\Powermail\Events\SendMailServicePrepareAndSendEvent Change the message object before sending
In2code\Powermail\Domain\Service\Mail\SendMailService::createEmailBody() In2code\Powermail\Events\SendMailServiceCreateEmailBodyEvent Manipulate standaloneView-object before the mail object will be rendered
In2code\Powermail\Domain\Service\Mail\ReceiverMailReceiverPropertiesService::setReceiverEmails() In2code\Powermail\Events\ReceiverMailReceiverPropertiesServiceSetReceiverEmailsEvent Manipulate given receiver email addresses
In2code\Powermail\Domain\Service\Mail\ReceiverMailReceiverPropertiesServicegetReceiverName() In2code\Powermail\Events\ReceiverMailReceiverPropertiesServiceGetReceiverNameEvent Manipulate given receiver name
In2code\Powermail\Domain\Service\Mail\ReceiverMailSenderPropertiesService::getSenderEmail() In2code\Powermail\Events\ReceiverMailSenderPropertiesGetSenderEmailEvent Manipulate given sender email addresses
In2code\Powermail\Domain\Service\Mail\ReceiverMailSenderPropertiesService::getSenderName() In2code\Powermail\Events\ReceiverMailSenderPropertiesGetSenderNameEvent Manipulate given sender name
In2code\Powermail\Domain\Service\UploadService::preflight() In2code\Powermail\Events\UploadServicePreflightEvent Change files from upload-fields before they will be validated, stored and send
In2code\Powermail\Domain\Service\UploadService::getFiles() In2code\Powermail\Events\UploadServiceGetFilesEvent Change files array from upload-fields whenever files will be read
In2code\Powermail\Domain\Model\File::getNewPathAndFilename() In2code\Powermail\Events\GetNewPathAndFilenameEvent Change path and filename of a single file for uploading, attaching to email or something else
In2code\Powermail\ViewHelpers\Validation\ValidationDataAttributeViewHelper::render() In2code\Powermail\Events\ValidationDataAttributeViewHelperEvent Useful if you want to hook into additionalAttributes and set your own attributes to fields
In2code\Powermail\Domain\Repository\MailRepository::getVariablesWithMarkersFromMail() In2code\Powermail\Events\MailRepositoryGetVariablesWithMarkersFromMailEvent If you want to register your own markers use this event

How to add a listener

There is a very good documentation how to work with EventDispatcher in TYPO3: https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Events/EventDispatcher/Index.html

Example Code

Look at https://github.com/einpraegsam/powermailextended for an example extension. This extension allows you to:

  • Extend powermail with a complete new field type (Just a small "Show Text" example)
  • Extend powermail with an own Php and JavaScript validator (ZIP validator - number has to start with 8)
  • Extend powermail with new field properties (readonly and prepend text from Textarea)
  • Extend powermail with an example SignalSlot (see ext_localconf.php and EXT:powermailextended/Classes/Controller/FormController.php)