TYPO3 IRRE,保存内联记录时出错“尝试修改记录...”

时间:2014-09-05 22:51:20

标签: typo3 typo3-extensions pibase

我正在为TYPO3 4.5.4写一个扩展名(不幸的是被迫使用这个版本)。扩展程序应该提供一种管理和显示列表的简单方法。

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

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

我以管理员身份登录,所以我无法相信,系统拒绝我做任何事情 - 但显然我在TYPO3的许可概念中遗漏了一些东西...... < / p>

你们中间有没有人有这方面的经验?

顺便说一句:我不是TYPO3开发者,也不想成为一名开发者。因此,请不要犹豫向我展示一些肮脏的技巧 - 我不介意它是否是最好的做法。它是一个古老的系统,它只需要完成(我已经对TYPO3无法处理这么简单的事情感到着迷)。我帮助一个人,他本能完成这项工作,但遗憾的是无法......

我会很高兴你能提供给我的任何暗示。

谢谢

修改

我自己解决了。问题是配置错误的ext_tables.php,其中我带了#34; pid&#34; as&#34; foreign_field&#34;我的IRRE关系。

Kickstarter谈到一些奇怪的父母&lt; - &gt;孩子关系的东西,当我配置关系。我当时认为,pid可能代表&#34;父ID&#34;,因为在结果表中没有其他字段,这可能是一个合适的外键。但显然&#34; pid&#34;代表&#34;页面ID&#34;,它指向页面,元素属于,我猜(这是否有意义 - TYPO3并不关心......)。添加新字段作为外键是解决方案。

我想TYPO3的开发人员肯定会知道这个。但我仍然觉得不可能得到这样的错误信息。为什么不:&#34;老兄,你真的想把这个领域用作外键吗?这对其他系统来说太重要了。&#34;。我的意思是,可能有一点,这个配置得到验证,对吧?只是一个想法...

因此,如果有人在为他/她的扩展做一些IRRE配置时偶然发现同样的错误。我是一个做错了的人,最后在这上面写了一些东西;)

1 个答案:

答案 0 :(得分:0)

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

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