我经常需要根据表单中选择字段的选择将 powermail 表单发送给不同的接收者。我正在使用 TYPO3 7.6.x 和 Powermail 3.3.0 这怎么做?
3 回答
在 EXT:powermail 的 slackchannel 中 @alex-kellner 的帮助下,我找到了一个非常简单的解决方案:
基本上需要2个步骤:
步骤1
选择字段中选项的值。您需要在选择字段中为您的选项添加值。这可以通过将管道附加|
到您的选项并简单地添加值来完成
MyRecieverEmail 1 | 1
MyRecieverEmail 2 | 2
MyRecieverEmail 3 | 3
除此之外,您还需要知道字段的标记/变量/单个字段名。extended
您可以在字段的选项卡中找到该名称。
如果需要,您还可以给这个字段一个“自己的”变量名。变量被包裹,{}
但您不会在步骤 2 中使用这些变量
第2步
现在您需要在您的设置字段中添加一些 TS。
背景信息:基本上这会改变表格的接收者:
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = your@email.com
现在您需要检查表单中选择了哪个选项。这是由全局条件完成的:
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 1]
yourVariableFieldname
字段中选项卡中的单个字段名在哪里extended
,并且1
是第一个选项的值(MyRecieverEmail 1)
通过使用此 TS,如果在表单中选择了第一个选项,则表单将发送到 your@email.com MyRecieverEmail 1
:
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 1]
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = your@email.com
[global]
您现在可以根据需要添加尽可能多的条件。完整的例子是:
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 1]
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = yourfirst@email.com
[global]
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 2]
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = yoursecond@email.com
[global]
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 3]
plugin.tx_powermail.settings.setup.receiver.overwrite.email = TEXT
plugin.tx_powermail.settings.setup.receiver.overwrite.email.value = yourthird@email.com
[global]
请注意,这将负责您的 TYPO3-Install 中字段名称为 {yourVariableFieldname} 的每个字段,其中考虑了此 TS。如果您在多个表单中完全像这样使用此字段,这将很有用。如果您不希望它负责,您有两种选择可以避免这种情况:
仅将 TS 放在表单所在的页面上。
您可以将其添加到您的全局条件中:
&& [globalString = GP:tx_powermail_pi1|mail|form = 123]
123
您的表单的 ID在哪里。
然后看起来像这样:
[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 2] && [globalString = GP:tx_powermail_pi1|mail|form = 123]
从 9.5 开始是这样的:
[traverse(request.getParsedBody(), 'tx_powermail_pi1/field/yourVariableFieldname') == 1 ]
应该有效
这对我有用:
[traverse(request.getParsedBody(), 'tx_powermail_pi1/field/yourVariableFieldname') == 1 ]
plugin.tx_powermail.settings.setup {
receiver.overwrite {
email.value = MYEMAIL
email = TEXT
}
}
[END]
[traverse(request.getParsedBody(), 'tx_powermail_pi1/field/yourVariableFieldname') == 2 ]
plugin.tx_powermail.settings.setup {
receiver.overwrite {
email.value = MYEMAIL2
email = TEXT
}
}
[END]