From 81c661fe8bf5ffc9adbcdd3d63ef35696ea944c1 Mon Sep 17 00:00:00 2001 From: Shish Date: Mon, 26 Apr 2010 04:53:31 +0100 Subject: [PATCH] Merge branch 'pagevent' --- contrib/rss_images/main.php | 16 ++++------------ core/event.class.php | 27 +++++++++++++++++++++++++++ ext/index/main.php | 19 ++++--------------- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/contrib/rss_images/main.php b/contrib/rss_images/main.php index f54ba66a..c97e318a 100644 --- a/contrib/rss_images/main.php +++ b/contrib/rss_images/main.php @@ -24,18 +24,10 @@ class RSS_Images extends SimpleExtension { public function onPageRequest($event) { if($event->page_matches("rss/images")) { - $page_number = 0; - $search_terms = array(); - - if($event->count_args() == 1) { - $page_number = int_escape($event->get_arg(0)); - } - else if($event->count_args() == 2) { - $search_terms = explode(' ', $event->get_arg(0)); - $page_number = int_escape($event->get_arg(1)); - } - - $images = Image::find_images(($page_number-1)*10, 10, $search_terms); + $search_terms = $event->get_search_terms(); + $page_number = $event->get_page_number(); + $page_size = $event->get_page_size(); + $images = Image::find_images(($page_number-1)*$page_size, $page_size, $search_terms); $this->do_rss($images, $search_terms, $page_number); } } diff --git a/core/event.class.php b/core/event.class.php index feee5518..feba9976 100644 --- a/core/event.class.php +++ b/core/event.class.php @@ -70,6 +70,33 @@ class PageRequestEvent extends Event { public function count_args() { return $this->arg_count - $this->part_count; } + + /* + * Many things use these functions + */ + public function get_search_terms() { + $search_terms = array(); + if($this->count_args() == 2) { + $search_terms = Tag::explode(' ', $this->get_arg(0)); + } + return $search_terms; + } + public function get_page_number() { + $page_number = 1; + if($this->count_args() == 1) { + $page_number = int_escape($this->get_arg(0)); + } + else if($this->count_args() == 2) { + $page_number = int_escape($this->get_arg(1)); + } + if($page_number == 0) $page_number = 1; // invalid -> 0 + return $page_number; + } + public function get_page_size() { + global $config; + $count = $config->get_int('index_width') * $config->get_int('index_height'); + return $count; + } } diff --git a/ext/index/main.php b/ext/index/main.php index 43595056..bcd68240 100644 --- a/ext/index/main.php +++ b/ext/index/main.php @@ -152,22 +152,11 @@ class Index extends SimpleExtension { return; } - $search_terms = array(); - $page_number = 1; - - if($event->count_args() == 1) { - $page_number = int_escape($event->get_arg(0)); - } - else if($event->count_args() == 2) { - $search_terms = explode(' ', $event->get_arg(0)); - $page_number = int_escape($event->get_arg(1)); - } - - if($page_number == 0) $page_number = 1; // invalid -> 0 - + $search_terms = $event->get_search_terms(); + $page_number = $event->get_page_number(); + $page_size = $event->get_page_size(); $total_pages = Image::count_pages($search_terms); - $count = $config->get_int('index_width') * $config->get_int('index_height'); - $images = Image::find_images(($page_number-1)*$count, $count, $search_terms); + $images = Image::find_images(($page_number-1)*$page_size, $page_size, $search_terms); if(count($search_terms) == 0 && count($images) == 0 && $page_number == 1) { $this->theme->display_intro($page);