Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TYPO3在呈现之前操作内容元素_Typo3_Rendering_Hook_Typo3 6.2.x - Fatal编程技术网

TYPO3在呈现之前操作内容元素

TYPO3在呈现之前操作内容元素,typo3,rendering,hook,typo3-6.2.x,Typo3,Rendering,Hook,Typo3 6.2.x,我们在tt_内容中添加了一个新字段,在TCA中,还向所有内容元素添加了一个新字段。根据该字段中的值,我们希望确定是否应该渲染元素 该行为类似于FE用户的内容元素访问控制 我正在寻找解决这个问题的方法。不幸的是,我在felogin中找不到任何有用的东西,我也尝试了以下几个钩子 contentPostProc render-preProcess 系统信息: 类型3:6.2.19 流量:7.2.3 Fluidpages:3.3.1 如果有人能给我指个方向那就太棒了,谢谢 更新: 必须从tt_目录

我们在tt_内容中添加了一个新字段,在TCA中,还向所有内容元素添加了一个新字段。根据该字段中的值,我们希望确定是否应该渲染元素

该行为类似于FE用户的内容元素访问控制

我正在寻找解决这个问题的方法。不幸的是,我在felogin中找不到任何有用的东西,我也尝试了以下几个钩子

contentPostProc
render-preProcess
系统信息:

  • 类型3:6.2.19
  • 流量:7.2.3
  • Fluidpages:3.3.1
如果有人能给我指个方向那就太棒了,谢谢

更新
必须从tt_目录中的新字段更改为mm关系表。这使得它更加复杂,因为必须联接表

更新

由于有几种解决方案,我尝试了很多,但最后使用了
getRecordOverlay
hook。在必须使用的界面
PageRepositoryGetRecordOverlayHookInterface
中,您可以找到一个用于前钩子和后钩子的方法

对于旧类型3,我认为您使用的是css样式的内容。您只需使用自己的扩展名和一些TCA行(我想您知道如何插入这个)向tt_内容添加一个新字段(例如复选框)。 在此之后,您可以扩展styles.content.get-类似 ```

styles.content.get=content
style.content.get{
表=tt_含量
select.orderBy=排序
选择.where=colPos=0和yourfield=1
select.languageField=sys\u language\u uid
}
lib.yourcontent
您可以看看enableFields挂钩


您可以调整用于获取内容元素的查询

这听起来很有希望,但我只能找到一个
hook\u checkEnableFields
hook,它只用于页面,在我的打字3-中似乎根本没有触发。-实际上,使用
addEnableColumns
hook对我来说很有希望,不幸的是,这似乎不允许连接到不同的表。对于使用
postaserfunc
stdWrap
钩子来完成此任务,您有什么想法?当然,连接在where子句部分不起作用(您可以使用此钩子修改),但子选择将起作用。但更确切地说,您需要更具体地回答您的问题。目前,我无法想象如何实施此解决方案。我已经看到,由于colPos,where在左侧和右侧都被修改了。如果我用我的检查覆盖where,并对mm表进行连接,我想这会搞乱系统。在typo3 slack中讨论了一下这个问题后,我知道如何处理它,但由于我使用vhs渲染,这将不起作用。如果我把自己的视图助手放进去,而不是使用
styles.content.get = CONTENT
styles.content.get {
    table = tt_content
    select.orderBy = sorting
    select.where = colPos=0 and yourfield=1
    select.languageField = sys_language_uid
}
lib.yourcontent < styles.content.get