public function getPagedList($conds, $order, $pageNum = 1, $pageSize = 20, $showNum = 9) { $count = $this->where($conds)->count(); if (!$count) { return $count; } $totalPage = ceil($count / $pageSize); $pageNum < 1 && ($pageNum = 1); $pageNum > $totalPage && ($pageNum = $totalPage); $limit = ($pageNum - 1) * $pageSize . ', ' . $pageSize; $list = $this->getList($conds, $order, $limit); if (false === $list) { return $list; } $numbers = array(); $left = ceil($showNum / 2); $right = $showNum - $left; if ($pageNum - $left <= 0) { for ($index = 1; $index <= min($totalPage, $showNum); $index++) { array_push($numbers, $index); } } elseif ($pageNum + $right >= $totalPage) { for ($index = $totalPage; $index > max($totalPage - $showNum, 1); $index--) { array_unshift($numbers, $index); } } else { for ($index = $pageNum - $left + 1; $index <= $pageNum + $right; $index++) { array_push($numbers, $index); } } return array('current_page' => $pageNum, 'total_page' => $totalPage, 'total_count' => $count, 'show_num' => $numbers, 'paged_url' => get_curr_url(true), 'data_list' => $list); }
function genToken($userdata = NULL) { $characters = '0123456789abcdefghijklmnopqrstuvwxyz'; $string = ''; for ($p = 0; $p < 30; $p++) { $string .= $characters[mt_rand(0, strlen($characters))]; } return base64_encode(get_curr_url($_SERVER) . ";" . $string . ";" . $userdata); }