From 1fba968ffe193bb50b3d3337b537d2d7cea2a3fe Mon Sep 17 00:00:00 2001 From: shish Date: Mon, 19 May 2008 02:19:46 +0000 Subject: [PATCH] featured image extension git-svn-id: file:///home/shish/svn/shimmie2/trunk@861 7f39781d-f577-437e-ae19-be835c7a54ca --- contrib/featured/main.php | 56 ++++++++++++++++++++++++++++++++++++++ contrib/featured/theme.php | 21 ++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 contrib/featured/main.php create mode 100644 contrib/featured/theme.php diff --git a/contrib/featured/main.php b/contrib/featured/main.php new file mode 100644 index 00000000..756c14f7 --- /dev/null +++ b/contrib/featured/main.php @@ -0,0 +1,56 @@ + + * License: GPLv2 + * Description: Bring a specific image to the users' attentions + */ + +class Featured extends Extension { + var $theme; + + public function receive_event($event) { + if(is_null($this->theme)) $this->theme = get_theme_object("featured", "FeaturedTheme"); + + if(is_a($event, 'InitExtEvent')) { + global $config; + $config->set_default_int('featured_id', 0); + } + + if(is_a($event, 'PageRequestEvent') && ($event->page_name == "set_feature")) { + global $user; + if($user->is_admin() && isset($_POST['image_id'])) { + global $config; + $id = int_escape($_POST['image_id']); + if($id > 0) { + $config->set_int("featured_id", $id); + $event->page->set_mode("redirect"); + $event->page->set_redirect(make_link("post/view/$id")); + } + } + } + + if(is_a($event, 'PostListBuildingEvent')) { + global $config, $database; + $fid = $config->get_int("featured_id"); + if($fid > 0) { + $this->theme->display_featured($event->page, $database->get_image($fid)); + } + } + + if(is_a($event, 'SetupBuildingEvent')) { + $sb = new SetupBlock("Featured Image"); + $sb->add_int_option("featured_id", "Image ID: "); + $event->panel->add_block($sb); + } + + if(is_a($event, 'DisplayingImageEvent')) { + global $user; + if($user->is_admin()) { + $this->theme->display_buttons($event->page, $event->image->id); + } + } + } +} +add_event_listener(new Featured()); +?> diff --git a/contrib/featured/theme.php b/contrib/featured/theme.php new file mode 100644 index 00000000..dda394c3 --- /dev/null +++ b/contrib/featured/theme.php @@ -0,0 +1,21 @@ +add_block(new Block("Featured Image", $this->build_thumb_html($image), "left", 3)); + } + + public function display_buttons($page, $image_id) { + $html = " +
+ + +
+ "; + $page->add_block(new Block("Featured Image", $html, "left")); + } +} +?>