6

我经常需要根据表单中选择字段的选择将 powermail 表单发送给不同的接收者。我正在使用 TYPO3 7.6.x 和 Powermail 3.3.0 这怎么做?

4

3 回答 3

9

在 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。如果您在多个表单中完全像这样使用此字段,这将很有用。如果您不希望它负责,您有两种选择可以避免这种情况:

  1. 仅将 TS 放在表单所在的页面上。

  2. 您可以将其添加到您的全局条件中:

    && [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]
于 2016-12-15T07:09:45.037 回答
2

从 9.5 开始是这样的:

[traverse(request.getParsedBody(), 'tx_powermail_pi1/field/yourVariableFieldname') == 1 ]

应该有效

于 2020-11-10T16:21:09.687 回答
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]
于 2021-03-03T14:15:25.280 回答