首页 > 解决方案 > 在打字稿中使用特殊字符作为 CASE 键

问题描述

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

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
}

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

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

Typo3 会抱怨并且不会更新任何东西。(属性错误!您必须输入包含字符 az、AZ 和 0-9 的属性,不能有空格!没有更新!

我尝试用反斜杠简单地“转义”禁止字符,但不起作用。有转换key.datavia的想法stdWrap rawUrlEncode,但也没有工作。谷歌想出了这个解决方案,但我不明白发生了什么并且无法成功使用它。

我怎样才能解决这个问题?非常感谢任何提示!

标签: typo3typoscripttypo3-8.xtypo3-extensionspowermail

解决方案


我很喜欢你的 rawUrlEncode 解决方案。您能在这里向我们提供您的解决方案吗?根据这个在线转换器,结果应该是这样的:

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

推荐阅读