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

TYPO3 v10.4 PageTS如何判断新建页面以实现指定用户组字段只读控制

问题根源

你当前配置不生效的核心原因是:新建页面时,PageTS条件中的page对象指向的是待创建页面的父页面,而非还未生成的新页面本身,因此page["uid"] != 0的判断永远为真(父页面必然有有效uid),会错误触发只读规则。

修复方案

要判断当前是否为新建页面场景,直接读取后端请求的编辑参数即可:TYPO3后端新建页面时,请求参数中会携带edit[pages][NEW]标识,我们在条件中排除该场景即可。
正确的PageTS配置如下:

[usergroup("3")
  && !array_key_exists('NEW', (request.getQueryParams()['edit']['pages'] ?? []))
  && !array_key_exists('NEW', (request.getParsedBody()['edit']['pages'] ?? []))
  && page["perms_userid"] != backend.user.userId]
TCEFORM.pages {
    title.config.readOnly = 1
    nav_title.config.readOnly = 1
    hidden.config.readOnly = 1
    nav_hide.config.readOnly = 1
}
[end]

配置说明

  • 同时判断GET参数和POST参数,覆盖所有新建页面的触发场景(包括从侧边栏新建、父页右键新建等入口)
  • 仅当编辑已存在页面、且当前用户不是页面所有者时,才会触发只读规则
  • 新建页面、编辑自有页面场景下,所有字段都保持可编辑状态,完全符合需求

可选扩展

如果需要支持复制页面时也保持字段可编辑,可在条件中额外加排除复制参数的规则:
&& !(array_key_exists('cmd', request.getQueryParams()) && array_key_exists('copy', request.getQueryParams()['cmd']['pages'] ?? []))


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:24:02