It's very easy to extend powermail with cObject Viewhelpers, which are calling a userFunc from TypoScript.
- In every HTML Template (and Partial and Layout)
- In every RTE field in flexform
- In the subject, receiver, receiverName, sender, senderName field of the flexform
If you need to call a userFunc after submitting a form or if you need dynamic text in a view. Some examples:
- Create an extension for transaction keys in powermail
- Manipulate the receiver from a userFunc depending on a field value (see below)
- Log something special in a database table after a submit
- etc...
# TypoScript Setup Example for ViewHelper {f:cObject(typoscriptObjectPath:'lib.test')}
lib.test = TEXT
lib.test.value = [email protected]
# TypoScript Setup Example for ViewHelper {f:cObject(typoscriptObjectPath:'lib.test')}
# Note: includeLibs does not work in TYPO3 8 any more. UserFuncs must be added in an own extension to use composer autoload.
includeLibs.manipulatePowermailReceiver = typo3conf/ext/myext/Classes/ManipulateReceiver.php
lib.test = USER
lib.test.userFunc = Vendor\Myext\ManipulateReceiver->getEmail
<?php
namespace Vendor\Myext;
class ManipulateReceiver
{
public function getEmail($content = '', $conf = array())
{
$variables = \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('tx_powermail_pi1');
$email = '[email protected]';
if ($variables['field']['firstname'] === 'Alex') {
$email = '[email protected]';
}
return $email;
}
}
Just use some lines of page TSConfig to add new fieldtypes to powermail
# Powermail will search for the Partial Newfield.html
tx_powermail.flexForm.type.addFieldOptions.newfield = New Field Name
tx_powermail.flexForm.type.addFieldOptions.new.dataType = 0
tx_powermail.flexForm.type.addFieldOptions.new.export = 1
Just use some lines of page TSConfig to add new validationtypes to powermail
tx_powermail.flexForm.validation.addFieldOptions.newfield = New Validation Name
Just use some lines of page TSConfig to add new fe_user fields
tx_powermail.flexForm.feUserProperty.addFieldOptions.newfield = New fe_user Property