HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/bs.kntsleep.com/system/basic/class/pages.class.php
<?php
/*
 * Copyright (c) Huyin Information Technology Co., Ltd. All Rights Reserved.
 * BOSSCMS Content Management System (https://www.bosscms.net/)
 */
defined('IS_OK') or exit('Access Forbidden');

class pages
{
	/**
	 *
	 * @param number $pages  分页总数
	 * @param number $page   当前分页数
	 * @param number $btns   分页按钮最大数
	 * @param string $url    分页按钮链接地址,不设置调用当前页面地址
	 * @param string $name   页面地址的分页参数
	**/
	public static function btns($pages, $page=null, $btns=null, $url=null, $name='pages')
	{
		global $G;
		$data = array();
		if(!$pages){
			$pages = 1;
		}
		if(!isset($btns)){
			$btns = 10;
		}
		$btns = ($btns-1)/2;
		if(!isset($url)){
			$url = $G['path']['url'];
			$domain = '';
		}
		if(isset($page)){
			if($page <= 0){
				$page = 1;
			}
		}else{
			$page = 1;
			if(isset($G['get'][$name]) && is_numeric($G['get'][$name]) && $G['get'][$name]>0){
				$page = ceil($G['get'][$name]);
			}
		}
		if($page > $pages){
			$page = $pages;
		}
		$data[$name] = $page;
		$prev = $page-1;
		if($prev <= 0){
			$prev = 1;
		}
		$data['first'] = array(
			'number' => 1,
			'url' => url::pages($url, 1, $name, true, $domain),
			'current' => 1==$page
		);
		$data['prev'] = array(
			'number' => $prev,
			'url' => url::pages($url, $prev, $name, true, $domain),
			'current' => $prev==$page
		);
		$next = $page+1;
		if($next > $pages){
			$next = $pages;
		}
		$data['next'] = array(
			'number' => $next,
			'url' => url::pages($url, $next, $name, true, $domain),
			'current' => $next==$page
		);
		$data['last'] = array(
			'number' => $pages,
			'url' => url::pages($url, $pages, $name, true, $domain),
			'current' => $pages==$page
		);
		/* 判断分页按钮数量的开始页和结束页 Boss*cms */
		if($page-$btns>=1 && $page+$btns<=$pages){
			$start = ceil($page-$btns);
			$end = ceil($page+$btns);
		}else if($page-$btns >= 1){
			$start = ceil($page-$btns-($btns-($pages-$page)));
			if($start < 1){
				$start = 1;
			}
			$end = $pages;
		}else if($page+$btns <= $pages){
			$start = 1;
			$end = ceil($page+$btns+($btns-($page-1)));
			if($end > $pages){
				$end = $pages;
			}
		}else{
			$start = 1;
			$end = $pages;
		}
		for($i=$start; $i<=$end; $i++){
			$data['list'][] = array(
				'number' => $i,
				'url' => url::pages($url, $i, $name, true, $domain),
				'current' => $page==$i
			);
		}
		$data['display'] = count($data['list'])>1;
		return $data;
	}	
}
?>