diff --git a/contrib/random_image/main.php b/contrib/random_image/main.php index 03f5682c..b067ba0d 100644 --- a/contrib/random_image/main.php +++ b/contrib/random_image/main.php @@ -8,7 +8,11 @@ */ class RandomImage implements Extension { + var $theme; + public function receive_event(Event $event) { + if(is_null($this->theme)) $this->theme = get_theme_object($this); + if(($event instanceof PageRequestEvent) && $event->page_matches("random_image")) { global $config; global $database; @@ -36,6 +40,22 @@ class RandomImage implements Extension { } } } + + if(($event instanceof SetupBuildingEvent)) { + $sb = new SetupBlock("Random Image"); + $sb->add_bool_option("show_random_block", "Show Random Block: "); + $event->panel->add_block($sb); + } + + if($event instanceof PostListBuildingEvent) { + global $config, $database; + if($config->get_bool("show_random_block")) { + $image = Image::by_random($config, $database, $event->search_terms); + if(!is_null($image)) { + $this->theme->display_random($event->page, $image); + } + } + } } } add_event_listener(new RandomImage()); diff --git a/contrib/random_image/theme.php b/contrib/random_image/theme.php new file mode 100644 index 00000000..a4a7b8b7 --- /dev/null +++ b/contrib/random_image/theme.php @@ -0,0 +1,8 @@ +add_block(new Block("Random Image", $this->build_thumb_html($image), "left", 8)); + } +} +?>