diff options
Diffstat (limited to 'modules/image_block/helpers')
| -rw-r--r-- | modules/image_block/helpers/image_block_block.php | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/modules/image_block/helpers/image_block_block.php b/modules/image_block/helpers/image_block_block.php index 185df850..82c92f19 100644 --- a/modules/image_block/helpers/image_block_block.php +++ b/modules/image_block/helpers/image_block_block.php @@ -26,7 +26,13 @@ class image_block_block_Core {      $block = "";      switch ($block_id) {      case "random_image": -      $item = item::random_query(array(array("type", "!=", "album")))->find_all(1)->current(); +      // The random_query approach is flawed and doesn't always return a +      // result when there actually is one. Retry a *few* times. +      // @todo Consider another fallback if further optimizations are necessary. +      $attempts = 0; +      do { +        $item = item::random_query(array(array("type", "!=", "album")))->find_all(1)->current(); +      } while (!$item && $attempts++ < 3);        if ($item && $item->loaded()) {          $block = new Block();          $block->css_id = "g-image-block";  | 
