2014-09-05 3 views
1

Я пишу расширение для TYPO3 4.5.4 (к сожалению, вынужден использовать эту версию). Расширение должно обеспечивать простой способ управления и отображения списков.TYPO3 IRRE, ошибка «Попытка изменить запись ...» при сохранении встроенных записей

Поскольку данные просто должны отображаться и зависят исключительно от содержащего элемента контента, я решил использовать IRRE для его реализации.

Через некоторое время я получил его на работу и теперь могу создавать и отображать записи IRRE. Но потом я понял, что не могу изменить эти записи и сохранить их, не получив следующее сообщение об ошибке: «Попытайтесь изменить запись« Тест »(tx_list_elements: 1) без разрешения. Или несуществующая страница». - Это действительно раздражает.

Я войти в систему как администратор, так что я просто не могу поверить, что система отказывает мне сделать что-нибудь, - но, очевидно, я что-то в концепции разрешения TYPO3 не хватает ...

ли какой-либо из вас люди там есть опыт с этим?

BTW: Я не являюсь разработчиком TYPO3 и не заинтересован в том, чтобы стать одним из них. Поэтому не стесняйтесь показывать мне какие-то грязные трюки - я не против, если это лучшая практика. Это старая система, и ее просто нужно сделать (я уже увлечен неспособностью TYPO3 справиться с такой мертвой простотой). Я помогаю парню, который бы сам справился с работой, но, к сожалению, не смог ...

Я был бы очень рад любому намеку, который вы могли бы мне предоставить.

Спасибо

EDIT

Просто решил сам. Проблема была неправильно сконфигурирована ext_tables.php, в которой я взял «pid» как «foreign_field» для моего IRRE-отношения.

Kickstarter говорил о каком-то странном родителе < -> Детский родственный материал, когда я настроил отношение. Тогда я предположил, что pid может означать «родительский идентификатор», потому что в результирующей таблице не было другого поля, это мог быть правильный внешний ключ. Но, очевидно, «pid» означает «идентификатор страницы», который указывает на страницу, элемент принадлежит, я думаю (имеет ли это смысл или нет - TYPO3 не заботится ...). Решением является добавление нового поля в качестве внешнего ключа.

Я думаю, разработчик TYPO3 определенно знал бы это. Но по-прежнему невозможно получить такое сообщение об ошибке в результате. Почему бы и нет: «Чувак, ты действительно хочешь использовать ЭТО поле в качестве внешнего ключа? Это похоже на то, что слишком важно для других системных вещей». Я имею в виду, может быть, точка, где эта конфигурация проверена, не так ли? Просто мысль ...

Итак, если кто-то натыкается на ту же ошибку, выполняя некоторую конфигурацию IRRE для своего расширения. Я один парень, который сделал это неправильно и, наконец, что-то зафиксировал на этом;)

ответ

0

Избегайте использования pid в качестве родительского указателя для отношений 1: n типа inline (IRRE). Как уже упоминалось выше, это приводит к тому, что дочерние записи помещаются на разные страницы, так как pid TYPO3 широко используется как «идентификатор страницы» по умолчанию.

Кроме того, https://github.com/TYPO3/styleguide дает хороший обзор возможных конфигураций, включая поля с использованием Inline Relational Record Editing.

Смежные вопросы