Index: kernel/db/dblist.php =================================================================== --- kernel/db/dblist.php (revision 13756) +++ kernel/db/dblist.php (working copy) @@ -933,14 +933,22 @@ $foreign_key_field = $this->Application->getUnitOption($this->Prefix, 'ForeignKey'); if (is_array($foreign_key_field)) $foreign_key_field = getArrayValue($foreign_key_field, $parent_prefix); - if (!$parent_table_key || !$foreign_key_field) return ; + if (!$parent_table_key || !$foreign_key_field) { + return ; + } $parent_object =& $this->Application->recallObject($parent_prefix.'.'.$special); - $parent_id = $parent_object->GetDBField($parent_table_key); + /* @var $parent_object kDBItem */ - if (!$parent_id) return ; + if (!$parent_object->isLoaded()) { + $this->addFilter('parent_filter', 'FALSE'); + trigger_error('Parent ID not found (prefix: "' . rtrim($parent_prefix.'.'.$special, '.') . '"; sub-prefix: "' . $this->getPrefixSpecial() . '")', E_USER_NOTICE); + return ; + } - $this->addFilter('parent_filter', '`'.$this->TableName.'`.`'.$foreign_key_field.'` = '.$parent_id); // only for list in this case + // only for list in this case + $parent_id = $parent_object->GetDBField($parent_table_key); + $this->addFilter('parent_filter', '`' . $this->TableName . '`.`' . $foreign_key_field . '` = ' . $this->Conn->qstr($parent_id)); } }