将Typo3 Ext发送:PowerMail Mail,根据下拉列表中的选择



我通常需要根据表格中选择的选择场的选择,将PowerMail形式发送给不同的接收器。我使用Typo3 7.6.x和PowerMail 3.3.0如何完成?

在 @alex-kellner的帮助下,在ext:powermail的SlackChannel中,我找到了一个非常简单的解决方案:

基本上需要2个步骤:

step1

选择字段中选项的值。您需要在选择字段中的选项中添加值。这可以通过将管道|附加到您的选项中,然后添加值

来完成。
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

现在,您需要检查以表格选择WICH选项。这是通过全球条件完成的:

[globalString = GP:tx_powermail_pi1|field|yourVariableFieldname = 1]

其中 yourVariableFieldname从字段中的 extended选项卡中is ist单个字段名称,而 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中使用字段名称{yourvariable fieldname}的每个字段都将负责此ts。如果您以多种形式完全使用此字段,这将很有用。如果您不希望这样做,则有2个选择可以避免这种情况:

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

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

    &&[GlobalString = GP:TX_PowerMail_Pi1 |邮件|形式= 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]

最新更新