Index: branches/RC/core/kernel/db/db_event_handler.php =================================================================== diff -u -N -r9587 -r9618 --- branches/RC/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 9587) +++ branches/RC/core/kernel/db/db_event_handler.php (.../db_event_handler.php) (revision 9618) @@ -924,8 +924,15 @@ */ function ItemPrepareQuery(&$event) { - $sqls = $this->Application->getUnitOption($event->Prefix,'ItemSQLs'); - return isset($sqls[$event->Special]) ? $sqls[$event->Special] : $sqls['']; + $sqls = $this->Application->getUnitOption($event->Prefix, 'ItemSQLs', Array ()); + $special = array_key_exists($event->Special, $sqls) ? $event->Special : ''; + + if (!array_key_exists($special, $sqls)) { + // preferred special not found in ItemSQLs -> use analog from ListSQLs + return $this->ListPrepareQuery($event); + } + + return $sqls[$special]; } /** @@ -939,8 +946,8 @@ */ function ListPrepareQuery(&$event) { - $sqls = $this->Application->getUnitOption($event->Prefix,'ListSQLs'); - return isset( $sqls[$event->Special] ) ? $sqls[$event->Special] : $sqls['']; + $sqls = $this->Application->getUnitOption($event->Prefix, 'ListSQLs', Array ()); + return $sqls[ array_key_exists($event->Special, $sqls) ? $event->Special : '' ]; } /**