Merge branch 'pagevent'

This commit is contained in:
Shish 2010-04-26 04:53:31 +01:00
commit 062f30abe7
3 changed files with 35 additions and 27 deletions

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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);