diff options
Diffstat (limited to 'engine')
-rw-r--r-- | engine/lib/database.php | 2 | ||||
-rw-r--r-- | engine/lib/entities.php | 17 |
2 files changed, 12 insertions, 7 deletions
diff --git a/engine/lib/database.php b/engine/lib/database.php index 62fa15877..d3113e202 100644 --- a/engine/lib/database.php +++ b/engine/lib/database.php @@ -148,7 +148,7 @@ if (!empty($callback) && is_callable($callback)) {
$row = $callback($row);
}
- $resultarray[] = $row;
+ if ($row) $resultarray[] = $row;
}
}
diff --git a/engine/lib/entities.php b/engine/lib/entities.php index 998b996de..7266ed723 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -962,12 +962,17 @@ $classname = get_subtype_class_from_id($row->subtype); if ($classname!="") { - $tmp = new $classname($row); - - if (!($tmp instanceof ElggEntity)) - throw new ClassException(sprintf(elgg_echo('ClassException:ClassnameNotClass'), $classname, get_class())); - - return $tmp; + if (class_exists($classname)) + { + $tmp = new $classname($row); + + if (!($tmp instanceof ElggEntity)) + throw new ClassException(sprintf(elgg_echo('ClassException:ClassnameNotClass'), $classname, get_class())); + + return $tmp; + } + else + error_log(sprintf(elgg_echo('ClassNotFoundException:MissingClass'), $classname)); } else { |