diff options
-rw-r--r-- | engine/lib/entities.php | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/engine/lib/entities.php b/engine/lib/entities.php index 20921b41a..90e62fac7 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -77,7 +77,7 @@ function cache_entity(ElggEntity $entity) { * * @param int $guid The guid * - * @return void + * @return ElggEntity|bool false if entity not cached, or not fully loaded * @see cache_entity() * @see invalidate_cache_for_entity() * @access private @@ -954,13 +954,18 @@ function elgg_get_entities(array $options = array()) { } $dt = get_data($query, $options['callback']); - foreach ($dt as $entity) { - // If a custom callback is provided, it could return something other than ElggEntity, - // so we have to do an explicit check here. - if ($entity instanceof ElggEntity) { - cache_entity($entity); + if ($dt) { + foreach ($dt as $entity) { + // If a custom callback is provided, it could return something other than ElggEntity, + // so we have to do an explicit check here. + if ($entity instanceof ElggEntity) { + cache_entity($entity); + } } + // @todo Without this, recursive delete fails. See #4568 + reset($dt); } + return $dt; } else { $total = get_data_row($query); |