You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TYPO3 9.5+ Symfony条件语法实现前端复选框控制发件人邮件开关

TYPO3 9.5+ Symfony条件实现PowerMail复选框控制发件人邮件

你的旧条件是通过判断前端复选框的请求参数是否为空,来控制PowerMail是否向发件人发送邮件。在TYPO3 9.5+的Symfony条件语法中,需要注意traverse函数的路径分隔符和参数判断逻辑,以下是正确的实现方式:

正确的TypoScript代码

[traverse(request.getParsedBody(), 'tx_powermail_pi1.field.emailanabsender.0', '') !== '']
    plugin.tx_powermail.settings.setup.sender.enable = 1
[else]
    plugin.tx_powermail.settings.setup.sender.enable = 0
[global]

关键修正点

  • 路径分隔符:traverse函数使用点.作为嵌套数组的分隔符,而非你之前使用的斜杠/,这是原写法失效的核心原因。
  • 默认值与空值判断:给traverse添加第三个参数''(空字符串),当请求中不存在该参数时会返回默认值,确保判断逻辑和旧条件globalString = GP:... =完全一致——只有当参数值不为空时,才启用发件人邮件。
  • 兼容复选框特性:前端复选框未勾选时,该参数不会出现在请求体中,通过默认值可以避免遍历不存在的路径引发的问题。

如果需要更严谨的判断(先确认参数结构存在),也可以使用以下写法:

[traverse(request.getParsedBody(), 'tx_powermail_pi1.field.emailanabsender', []) !== [] && traverse(request.getParsedBody(), 'tx_powermail_pi1.field.emailanabsender.0', '') !== '']
    plugin.tx_powermail.settings.setup.sender.enable = 1
[else]
    plugin.tx_powermail.settings.setup.sender.enable = 0
[global]

内容的提问来源于stack exchange,提问作者boogie76

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 13:55:21