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

Using special characters as CASE keys in typoscript

我正在尝试通过 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
}

现在我面临以下问题:"receiver" 的值不是数字(如示例中所示),而是下拉列表中的文本值。其中一些包含空格,一些包含变音符号 (öäüß)。如果我尝试添加……

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

Typo3 会抱怨并且不会更新任何内容。 (差属性! 您必须输入包含字符 a-z、A-Z 和 0-9 的 属性,不能有空格!没有更新!)

我简单地 'escaping' 尝试了带反斜杠的禁用字符,但没有用。有通过 stdWrap rawUrlEncode 转换 key.data 的想法,但也没有奏效。 Google出现了with this solution,但是不明白是怎么回事,没能成功使用

我该如何解决这个问题?非常感谢任何类型的提示!

我非常喜欢您的 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

也许对于每个 CASE,某些符号如“%”是不允许的。在这种情况下,您可以参考 "replacement" 函数。 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