startmvc php框架学习社区
这里写的是自定义函数,当然也可以转化为拓展,实现更丰富的内容
此函数基于StartMVC V2.1.2实现
/function/下新建函数自定义文件或直接粘贴默认的文件里
/**
**
* page 分页数据处理自定义
*
* author QQ1977441805
* *
**/
if(!function_exists('page_html')){
function page_html($array=array(),$page='page',$li='li,page-item',$text='span,page-link',$prev="上一页",$next="下一页",$active='active',$disabled='disabled'){
if(is_array($array)&&!empty($array)){
if((empty($li) || !is_string($li))|| (empty($text) || !is_string($text))){
return;
}
$li = explode(',',$li);
$li_0 = isset($li[0])?$li[0]:'li';
$li_1 = isset($li[1])?$li[1]:'';
$text = explode(',',$text);
$text_0 = isset($text[0])?$text[0]:'span';
$text_1 = isset($text[1])?$text[1]:'';
$totalPage = $array['total'];
if($totalPage <= 10){
$min = 1;
$max = $totalPage;
} else {
$min = max(1, ($array['current'] - 5));
$max = min($totalPage, ($array['current'] + 5));
if($min === 1){
$max = 10;
} elseif($max === $totalPage) {
$min = ($totalPage - 9);
}
}
$html = '';
$prev_dbd = ($array['current'] > 1 ? null : $disabled);
$prev_page = ($array['current'] > 1 ? $array['current'] - 1 : 1);
$prev_href = ($array['current'] > 1 ? 'href="?'.$page.'='.$prev_page.'"' : null);
$next_dbd = ($array['current'] < $array['total'] ? null : $disabled);
$next_page = ($array['current'] < $array['total'] ? $array['current'] + 1 : $array['total']);
$next_href = ($array['current'] < $array['total'] ? 'href="?'.$page.'='.$next_page.'"' : null);
$html .= '<'.$li_0.' class="'.$li_1.' '.$prev_dbd.'"><'.$text_0.' class="'.$text_1.'" '.$prev_href.'">'.$prev.'';
for($i = $min; $i <= $max; $i++){
$class = ($i == $array['current'] ? $active : null);
$href = ($i == $array['current'] ? null : 'href="?'.$page.'='.$i.'"');
if($href){
$text_0 = 'a';
}
$html .='<'.$li_0.' class="'.$li_1.' '.$class.'"><'.$text_0.' class="'.$text_1.'" '.$href.'>'.$i.'';
}
$html .= '<'.$li_0.' class="'.$li_1.' '.$next_dbd.'"><'.$text_0.' class="'.$text_1.'" '.$next_href.'">'.$next.'';
return $html;
}else{
return;
}
}
}
效果图:
使用方法:
$pages = $this->db->pagerData();
$page_html = page_html($pages);
参数 | 值 | 说明 |
---|---|---|
$array | array | StartMVC pagerData 的数组 |
$page | String | 分页标识 |
$li | String | 基于常见的ul li 分页写法,此处传递的即为分页外层html闭合标签 仅支持闭合标签,例:li |
$text | String | 包裹页码的html闭合标签 仅支持闭合标签 例如:a span 当页码可点击时会强制转换a标签 |
$prev | String | 上一页显示的文字,符号 |
$next | String | 下一页显示的文字,符号 |
$active | String | 页码高亮样式 |
$disabled | String | 页码禁止点击样式 |