我经常要求根据表单中选择的选择字段向不同的接收方发送powermail表单。 我使用TYPO3 7.6.x和Powermail 3.3.0 如何才能做到这一点?
答案 0 :(得分:8)
在EXT的slackchannel的@ alex-kellner的帮助下:powermail我找到了一个非常简单的解决方案:
基本上需要2个步骤:
<强>步骤1 强>
选择字段中选项的值。
您需要在选择字段中为选项添加值。这可以通过在您的选项中添加管道|
并简单地添加值
MyRecieverEmail 1 | 1
MyRecieverEmail 2 | 2
MyRecieverEmail 3 | 3
除此之外,您还需要知道字段的标记/变量/单个字段名称。您可以在字段的extended
标签中找到该名称。
你也可以给这个字段一个&#34;拥有&#34;变量名称,如果需要。变量用{}
包裹,但在步骤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,如果在表单中选择第一个选项MyRecieverEmail 1
,表单将发送到your@email.com:
[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中使用fieldname {yourVariableFieldname}的每个字段负责,其中考虑了此TS。 如果您在多个表单中使用与此字段完全相同的字段,这将非常有用。 如果您不希望这个负责,您有2个选项可以避免这种情况:
仅将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]
答案 1 :(得分:0)
从9.5开始,像这样:
[traverse(request.getParsedBody(), 'tx_powermail_pi1/field/yourVariableFieldname') == 1 ]
应该有效
答案 2 :(得分:0)
这对我有用:
[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]