diff --git a/ext/random_list/main.php b/ext/random_list/main.php
index 7f710356..7abdac11 100644
--- a/ext/random_list/main.php
+++ b/ext/random_list/main.php
@@ -10,66 +10,41 @@
class RandomList extends Extension {
public function onPageRequest(PageRequestEvent $event) {
- global $page;
+ global $config, $page;
+
+ if($event->page_matches("random")) {
+ // set vars
+ $images_per_page = $config->get_int("index_images") / 2;
+ $random_images = array();
+ $random_html = "Refresh the page to view more images
+
";
- if($event->page_matches("random")) {
- $html = "
Refresh the page to view more images
-
";
+ // generate random images
+ for ($i = 0; $i < $images_per_page; $i++)
+ array_push($random_images, Image::by_random());
- // create html to display images
- $html .= $this->build_random_html();
-
- // display it
- $html .= "
";
- $page->add_block(new Block("Random Images", $html));
- }
+ // create html to display images
+ foreach ($random_images as $image)
+ $random_html .= $this->build_random_html($image);
+
+ // display it
+ $random_html .= "
";
+ $page->add_block(new Block("Random Images", $random_html));
+ }
}
- private function build_random_html() {
- global $config;
-
- $random_html = "";
- $images_per_page = $config->get_int("index_images");
- $random_images = $this->by_random(array(), $images_per_page);
-
- var_dump($images_per_page);
- var_dump($random_images);
-
- foreach ($random_images as $image) {
+ private function build_random_html(Image $image, $query=null) {
$i_id = int_escape($image->id);
- $h_view_link = make_link("post/view/$i_id");
+ $h_view_link = make_link("post/view/$i_id", $query);
$h_thumb_link = $image->get_thumb_link();
$h_tip = html_escape($image->get_tooltip());
$tsize = get_thumbnail_size($image->width, $image->height);
-
- $random_html .= "
+
+ return "
";
- }
-
- return $random_html;
- }
-
- /**
- * Pick certain amount of random images random image out of a set
- *
- * @retval Image
- */
- private function by_random($tags=array(), $amount=1) {
- assert(is_array($tags));
- $max = Image::count_images($tags);
- if ($max < 1) return null; // From Issue #22 - opened by HungryFeline on May 30, 2011.
- $rand = mt_rand(0, $max-1);
- $set = Image::find_images($rand, $amount, $tags);
- if(count($set) > 0)
- {
- if ($amount == 1) return $set[0]; // return as single image
- else if ($amount > 1) return $set; // return as array
- else return null;
- }
- else return null;
}
}
?>