如果选中特定复选框,则在Powermail中输出其他文本

时间:2017-08-24 09:35:43

标签: typo3 typoscript typo3-7.6.x powermail

所以这是我的问题:一旦在powermail中选中了一个特定的复选框,我就试图输出一个额外的文本。

选择字段包含多个选项,当然所有选项都可以选择,但是当检查字段1时,发件人应该在邮件中添加标准文本加上“Lorem ipsum”,但是当未选中该字段时,应该有根本没有额外的输出。

我可以根据单个选择/下拉菜单的选择找到改变文本的解决方案,它就像魅力一样,但由于某种原因,多选不起作用。我无法弄清楚为什么有人可以提供帮助。

TS:

lib.serverex = CASE
lib.serverex {

    key.data = GP:tx_powermail_pi1|field|produktang|1
    key.intval = 1
    1 = TEXT
    1.value = Lorem Ipsum

   #Default
    default = TEXT
    default.value =
}

powermail中的电子邮件如下所示:

Some standard text...

{f:cObject(typoscriptObjectPath:'lib.serverex', data:'{produktang}')}

表单内的复选框配置(id:produktang):

first product | 1
second product | 2
third product | 3
fourth product | 4
fifth product | 5

无论输入是什么/选中框是什么,或者它根本不发送附加文本,它都会附加它。我可能在这里遗漏了一些东西。

提前致谢!

2 个答案:

答案 0 :(得分:0)

field {produktang}的结果是一个数组(当然因为它是一个复选框)。所以你必须找出你的案例中是否有任何值为“2”的键(例如,如果你正在搜索产品2)tx_powermail_pi1 | field | produktang | 1 == 2

答案 1 :(得分:0)

我现在用一种技巧解决了它,因为我不能以不同的方式使它工作。 我做了什么:

我将电子邮件更改的特定产品移动到multiselect元素中的第一个位置。因此,它的指数将为0。 接下来要检查数组中位置0的元素是否等于所需的产品,在我的情况下它是" firstProduct"。由于它处于第一位置,它始终是" firstProduct"如果" firstProduct"检查,附加文本将打印"。我将默认文本设置为空字符串,以便在其他所有情况下保持空白。

以下是代码:

    lib.serverex = CASE
    lib.serverex {
        key.data = GP:tx_powermail_pi1|field|produkt|0
        firstProduct = TEXT
        firstProduct.value = Lorem Ipsum

        #Default
        default = TEXT
        default.value =
    }

powermail内部的Checkbox配置:

    firstProduct
    secondProduct
    thirdProduct
    fourthProduct
    fifthProduct

电子邮件内部的代码:

    {f:cObject(typoscriptObjectPath:'lib.serverex', data:'{produkt}')}

它可能也以另一种方式起作用,但我无法以另一种方式解决它。希望如果有人遇到我遇到的相同问题,这会有所帮助。