TYPO3 IRRE,错误“试图修改记录...”当保存在线记录

问题描述:

我正在写一个TYPO3 4.5.4的扩展(不幸的是*使用这个版本)。该扩展应提供一个简单的方法来管理和显示列表。TYPO3 IRRE,错误“试图修改记录...”当保存在线记录

因为数据只是需要显示,而且完全取决于包含的内容元素,所以我决定使用IRRE来实现这一点。

经过一段时间,我得到它的工作,现在可以创建和显示IRRE记录。但后来我意识到,我无法更改这些记录并保存它们,但未收到以下错误消息:“尝试修改记录'Test'(tx_list_elements:1)未经许可,或者不存在页面。” - 这真的很烦人。

我以admin身份登录的,所以我简直不敢相信,该系统不认我做任何事情 - 但显然我错过了在TYPO3的权限概念的东西...

是否有你那里的人有任何这方面的经验?

顺便说一句:我既不是TYPO3的开发者,也不想成为其中的一员。所以,不要犹豫,告诉我一些肮脏的技巧 - 我不介意,如果这是最好的做法。这是一个旧系统,只需要完成(我已经对TYPO3无法处理这样一件简单的事情着迷)。我正在帮助一个人,谁会自己完成这项工作,但不幸的是不能...

我会很高兴你可以提供给我的任何提示。

谢谢

编辑

正好解决了它自己。问题是一个配置错误的ext_tables.php,其中我将“pid”作为我的IRRE关系的“foreign_field”。

Kickstarter谈到了一些奇怪的父母< - >孩子关系的东西,当我配置关系。那么我假定,该pid可能代表“父母ID”,因为在结果表中没有其他字段,这可能是一个适当的外键。但显然“pid”代表“页面ID”,它指向页面,该元素属于,我想(这是否有意义 - TYPO3并不在意......)。添加一个新字段作为外键是解决方案。

我猜TYPO3的开发者肯定会知道这个。但是我仍然发现无法得到这样的错误信息。为什么不呢:“老兄,你真的想用这个领域作为外键吗?这对于其他系统来说太重要了。”我的意思是,可能有一点,这个配置被验证,对吗?只是一个想法...

因此,如果任何人在为他/她的扩展做一些IRRE配置时遇到同样的错误。我是一个人,他做错了,并最终记录在这件事上;)

避免使用pid作为inline(IRRE)类型的1:n关系的父指针。如上所述,这会导致子记录放在不同的页面上,因为pid是TYPO3范围内默认使用的“page-id”。

此外,https://github.com/TYPO3/styleguide给出了可能的配置的一个很好的概述,包括使用内联关系记录编辑的字段。