more clamping
This commit is contained in:
parent
5a8df90fd9
commit
e482f97955
@ -124,6 +124,23 @@ function no_escape($input) {
|
|||||||
return $input;
|
return $input;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $val
|
||||||
|
* @param int|null $min
|
||||||
|
* @param int|null $max
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
function clamp($val, $min, $max) {
|
||||||
|
if(!is_numeric($val) || (!is_null($min) && $val < $min)) {
|
||||||
|
$val = $min;
|
||||||
|
}
|
||||||
|
if(!is_null($max) && $val > $max) {
|
||||||
|
$val = $max;
|
||||||
|
}
|
||||||
|
assert('$val <= $min && $val >= $max', "$min <= $val <= $max");
|
||||||
|
return $val;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @param array $attrs
|
* @param array $attrs
|
||||||
|
@ -155,20 +155,12 @@ class CommentList extends Extension {
|
|||||||
|
|
||||||
public function onPageRequest(PageRequestEvent $event) {
|
public function onPageRequest(PageRequestEvent $event) {
|
||||||
if($event->page_matches("comment")) {
|
if($event->page_matches("comment")) {
|
||||||
if($event->get_arg(0) === "add") {
|
switch($event->get_arg(0)) {
|
||||||
$this->onPageRequest_add();
|
case "add": $this->onPageRequest_add(); break;
|
||||||
}
|
case "delete": $this->onPageRequest_delete($event); break;
|
||||||
else if($event->get_arg(0) === "delete") {
|
case "bulk_delete": $this->onPageRequest_bulk_delete(); break;
|
||||||
$this->onPageRequest_delete($event);
|
case "list": $this->onPageRequest_list($event); break;
|
||||||
}
|
case "beta-search": $this->onPageRequest_beta_search($event); break;
|
||||||
else if($event->get_arg(0) === "bulk_delete") {
|
|
||||||
$this->onPageRequest_bulk_delete();
|
|
||||||
}
|
|
||||||
else if($event->get_arg(0) === "list") {
|
|
||||||
$this->onPageRequest_list($event);
|
|
||||||
}
|
|
||||||
else if($event->get_arg(0) === "beta-search") {
|
|
||||||
$this->onPageRequest_beta_search($event);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -243,7 +235,7 @@ class CommentList extends Extension {
|
|||||||
$i_comment_count = Comment::count_comments_by_user($duser);
|
$i_comment_count = Comment::count_comments_by_user($duser);
|
||||||
$com_per_page = 50;
|
$com_per_page = 50;
|
||||||
$total_pages = ceil($i_comment_count / $com_per_page);
|
$total_pages = ceil($i_comment_count / $com_per_page);
|
||||||
$page_num = $this->sanity_check_pagenumber($page_num, $total_pages);
|
$page_num = clamp($page_num, 1, $total_pages);
|
||||||
$comments = $this->get_user_comments($duser->id, $com_per_page, ($page_num - 1) * $com_per_page);
|
$comments = $this->get_user_comments($duser->id, $com_per_page, ($page_num - 1) * $com_per_page);
|
||||||
$this->theme->display_all_user_comments($comments, $page_num, $total_pages, $duser);
|
$this->theme->display_all_user_comments($comments, $page_num, $total_pages, $duser);
|
||||||
}
|
}
|
||||||
@ -361,7 +353,7 @@ class CommentList extends Extension {
|
|||||||
$database->cache->set("comment_pages", $total_pages, 600);
|
$database->cache->set("comment_pages", $total_pages, 600);
|
||||||
}
|
}
|
||||||
|
|
||||||
$current_page = $this->sanity_check_pagenumber($current_page, $total_pages);
|
$current_page = clamp($current_page, 1, $total_pages);
|
||||||
|
|
||||||
$threads_per_page = 10;
|
$threads_per_page = 10;
|
||||||
$start = $threads_per_page * ($current_page - 1);
|
$start = $threads_per_page * ($current_page - 1);
|
||||||
@ -568,21 +560,6 @@ class CommentList extends Extension {
|
|||||||
}
|
}
|
||||||
// do some checks
|
// do some checks
|
||||||
|
|
||||||
/**
|
|
||||||
* @param int $pagenum
|
|
||||||
* @param int $maxpage
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
private function sanity_check_pagenumber(/*int*/ $pagenum, /*int*/ $maxpage) {
|
|
||||||
if(!is_numeric($pagenum) || $pagenum <= 0) {
|
|
||||||
$pagenum = 1;
|
|
||||||
}
|
|
||||||
if($pagenum > $maxpage) {
|
|
||||||
$pagenum = $maxpage;
|
|
||||||
}
|
|
||||||
return $pagenum;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int $image_id
|
* @param int $image_id
|
||||||
* @param User $user
|
* @param User $user
|
||||||
|
@ -252,6 +252,8 @@ class Pools extends Extension {
|
|||||||
* When displaying an image, optionally list all the pools that the
|
* When displaying an image, optionally list all the pools that the
|
||||||
* image is currently a member of on a side panel, as well as a link
|
* image is currently a member of on a side panel, as well as a link
|
||||||
* to the Next image in the pool.
|
* to the Next image in the pool.
|
||||||
|
*
|
||||||
|
* @var DisplayingImageEvent $event
|
||||||
*/
|
*/
|
||||||
public function onDisplayingImage(DisplayingImageEvent $event) {
|
public function onDisplayingImage(DisplayingImageEvent $event) {
|
||||||
global $config;
|
global $config;
|
||||||
@ -374,16 +376,10 @@ class Pools extends Extension {
|
|||||||
private function list_pools(Page $page, /*int*/ $pageNumber) {
|
private function list_pools(Page $page, /*int*/ $pageNumber) {
|
||||||
global $config, $database;
|
global $config, $database;
|
||||||
|
|
||||||
if(is_null($pageNumber) || !is_numeric($pageNumber))
|
$pageNumber = clamp($pageNumber, 1, null) - 1;
|
||||||
$pageNumber = 0;
|
|
||||||
else if ($pageNumber <= 0)
|
|
||||||
$pageNumber = 0;
|
|
||||||
else
|
|
||||||
$pageNumber--;
|
|
||||||
|
|
||||||
$poolsPerPage = $config->get_int("poolsListsPerPage");
|
$poolsPerPage = $config->get_int("poolsListsPerPage");
|
||||||
|
|
||||||
|
|
||||||
$order_by = "";
|
$order_by = "";
|
||||||
$order = $page->get_cookie("ui-order-pool");
|
$order = $page->get_cookie("ui-order-pool");
|
||||||
if($order == "created" || is_null($order)){
|
if($order == "created" || is_null($order)){
|
||||||
@ -404,8 +400,7 @@ class Pools extends Extension {
|
|||||||
ON p.user_id = u.id
|
ON p.user_id = u.id
|
||||||
$order_by
|
$order_by
|
||||||
LIMIT :l OFFSET :o
|
LIMIT :l OFFSET :o
|
||||||
", array("l"=>$poolsPerPage, "o"=>$pageNumber * $poolsPerPage)
|
", array("l"=>$poolsPerPage, "o"=>$pageNumber * $poolsPerPage));
|
||||||
);
|
|
||||||
|
|
||||||
$totalPages = ceil($database->get_one("SELECT COUNT(*) FROM pools") / $poolsPerPage);
|
$totalPages = ceil($database->get_one("SELECT COUNT(*) FROM pools") / $poolsPerPage);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user