Also das ist ein Bug: Die Tabelle meiner Erweiterung hat im Gegensatz zu tl_page kein Field "protected".
In Zeile 3022 der DC_Table.php ist aber sowas drin:
PHP-Code:
$objRow->protected = ($table == 'tl_page') ? ($objRow->protected || $protectedPage) : false;
Vor dieser Zeile sieht die Eigenschaft "arrCache" bei einem print_r von $objRow so aus:
PHP-Code:
[arrCache:protected] => Array
(
[1] => Array
(
[id] => 182
[pid] => 1
[sorting] => 192
[tstamp] => 1299500582
[name] =>
[introduction] =>
[visible] => 1
)
)
Nach dieser Zeile aber so:
PHP-Code:
[arrCache:protected] => Array
(
[1] => Array
(
[id] => 182
[pid] => 1
[sorting] => 192
[tstamp] => 1299500582
[name] =>
[introduction] =>
[color] => 0
[informationsId] => 153
[type] => cluster
[visible] => 1
)
[0] => Array
(
[protected] =>
)
)
Also muss entweder dokumentiert sein, dass im mode=5 (treeview) eine Tabelle immer das Feld "protected" haben muss, oder aber diese Eigenschaft darf in Zeile 3022 gar nicht gesetzt werden, wenn kein Feld "protected" vorhanden ist!
Ich werde mal gucken, wie ich das mit wenigen Worten in die Bugbase von Contao geschrieben bekomme...
Update:
Achja, die Konsequenz daraus ist, dass der Aufruf in Zeile 3089 von $objRow->row() die Zeile [0] aus dem arrCache von $objRow nimmt und die richtigen Werte in [1] sind.
Lesezeichen