使用特殊字符作为打字稿中的CASE键

时间:2018-07-24 12:12:22

标签: typo3 typoscript typo3-8.x typo3-extensions powermail

我正在尝试通过powermail扩展名向不同的收件人发送邮件,具体取决于用户在表单下拉列表中选择的值。 powermail documentation中描述了动态接收器的这种做法。基本上:

receivers1.email = CASE
receivers1.email {

    key.data = GP:tx_powermail_pi1|field|receiver

    1 = TEXT
    1.value = receivera@domain.org

    default = TEXT
    default.value = receiverb@domain.org
}

现在,我面临以下问题:“接收器”的值不是数字(如示例中所示),而是下拉菜单中的文本值。其中一些包含空格,其中一些包含变音符号(öäüß)。如果我尝试添加...

Not wörking = TEXT
Not wörking.value = anotheremail@nowhere.org

Typo3将抱怨并且不更新任何内容。 (不良财产! 您必须输入一个由字符a-z,A-Z和0-9组成的属性,没有空格!没有更新!

我尝试用反斜杠简单地“转义”被禁止的字符,但是不起作用。曾经有过通过key.data转换stdWrap rawUrlEncode的想法,但也没有用。 Google出现了with this solution,但我不知道发生了什么,因此无法成功使用它。

我该如何解决?非常感谢您提供任何提示!

1 个答案:

答案 0 :(得分:1)

我很喜欢您的rawUrlEncode解决方案。您能在这里为我们提供解决方案吗?根据此online converter,结果应类似于:

key.data = GP:tx_powermail_pi1|field|receiver
key.stdWrap.rawUrlEncode = 1

Not%20w%C3%B6rking = TEXT
Not%20w%C3%B6rking.value = anotheremail@nowhere.org

对于每种情况,也许不允许使用诸如“%”之类的符号。在这种情况下,您可以参考“替换”功能。 https://docs.typo3.org/typo3cms/TyposcriptReference/8.7/Functions/Replacement/Index.html#replacement

key.data = GP:tx_powermail_pi1|field|receiver
key.stdWrap.replacement {
  10 {
      search.char = 32
      replace = _
  }
  // Add umlauts and other signs!
}

Not_wörking = TEXT
Not_wörking.value = anotheremail@nowhere.org