viewable() ->select("COUNT(*) AS C") ->find(); if (empty($result->C)) { return ""; } $block = new Block(); $block->css_id = "gImageBlock"; $block->title = t("Random Image"); $block->content = new View("image_block_block.html"); $result = ORM::factory("item") ->viewable() ->select("MAX(rand_key) AS max_random") ->find(); $max_rand = $result->max_random; $random = ((float)mt_rand()) / (float)mt_getrandmax(); $items = ORM::factory("item") ->viewable() ->where("type !=", "album") ->where("rand_key < ", $max_rand * $random) ->orderby(array("rand_key" => "DESC")) ->find_all(1); if ($items->count() == 0) { $items = ORM::factory("item") ->viewable() ->where("type !=", "album") ->where("rand_key > ", $max_rand * $random) ->orderby(array("rand_key" => "DESC")) ->find_all(1); } $block->content->item = $items->current(); return $items->count() == 0 ? "" : $block; } }