2023年6月21日发(作者:)
phpcms⾃定义分页样式使⽤phpcms建站的朋友经常会遇到⾃定义分页样式,那么如何使⽤phpcms来⾃定义分页样式呢?
phpcms做⽹站的时候,可能很多时候分页样式都是根据需求来的,这时很多⼈都会去修改全局⽂件⾥的pages()函数,这样问题就来了:这个分页函数连后台也会影响到的,就是说,这个分页函数是全站共⽤的。下⾯提供解决⽅法:(这个得修改⽂件,修改前记得备份)
打开 这个⽂件,找到分页函数,复制⼀下,粘贴到默认分页函数的下⾯,重新命名,⽐如我的就命名为wz_pages,保存。 打开 phpcms/libs/classes/template_,找到207⾏的: $str .= '$pages = pages($'.$op.'_total, $page, $pagesize,$urlrule);'; 在这⾏的下⾯加上:
$str .= '$wz_pages = wz_pages($'.$op.'_total, $page, $pagesize, $urlrule);'; 保存。最后,如果你要使⽤你⾃定义的分页函数,那么在模板中直接⽤{$wz_pages}就可以了,以后要修改样式,直接修改:
这个⽂件中的wz_pages函数就可以了,不会影响到后台。 后续优化:
使⽤过程中,发现使⽤SQL分页的不能正常使⽤,得再添加如下代码:
打开 phpcms/libs/classes/template_,找到178⾏的: $str .= '$r = $get_db->sql_query("'.$sql.'");$s = $get_db->fetch_next();$pages=pages($s['count'], $page, $pagesize, $urlrule);'; 在他下⾯增加: $str .= '$r = $get_db->sql_query("'.$sql.'");$s =$get_db->fetch_next();$wz_pages=wz_pages($s['count'], $page, $pagesize, $urlrule);';
这样,SQL的分页也正常了。 再次后续优化:
有朋友提到,会员中⼼的收藏列表分页不能使⽤上⾯的办法。
因为收藏列表的分页函数直接在其他⽂件定好了,所以通过修改模板缓存⽂件是不可⾏的,下⾯提供修改办法: 具体修改见下⾯:
?第61⾏ $this->pages = pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
把上⾯这⾏修改成:
$this->pages = wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
(模板中的{$pages}不⽤改为{$wz_pages}) 上⾯是第⼀种办法。
不过这样⼦的话,可能后台也会影响到了,这个地⽅好像是控制好多地⽅的, 也可以这样修改,还是上⾯那个⽂件,61⾏不要修改。直接在61⾏下⾯添加:
$this->wz_pages= wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
再去到: 718⾏,把下⾯这⾏ $pages = $this->favorite_db->pages; 修改为:
$wz_pages = $this->favorite_db->wz_pages;
模板中的{$pages}要修改为{$wz_pages}若我要做成下⾯的样式改如何实现:
⽐如上⾯的末页系统⾃带的是尾页找到在第三⼗⾏把尾页改成 末页
然后解析来在⾃定义函数
⾸先在:这个⽂件,⾃定义函数/** * ⾃定义分页函数 * * @param $num 信息总数 * @param $curr_page 当前分页 * @param $perpage 每页显⽰数 * @param $urlrule URL规则 * @param $array 需要传递的数组,⽤于增加额外的⽅法 * @return 分页 */function wz_pages($num, $curr_page, $perpage = 20, $urlrule = '', $array = array(),$setpages = 10) {if(defined('URLRULE') && $urlrule == '') {$urlrule = URLRULE;$array = $GLOBALS['URL_ARRAY'];} elseif($urlrule == '') {$urlrule = url_par('page={$page}');}$multipage = '';if($num > $perpage) {$page = $setpages+1;$offset = ceil($setpages/2-1);$pages = ceil($num / $perpage);if (defined('IN_ADMIN') && !defined('PAGES')) define('PAGES', $pages);$from = $curr_page - $offset;$to = $curr_page + $offset;$more = 0;if($page >= $pages) {$from = 2;$to = $pages-1;} else {if($from <= 1) {$to = $page-1;$from = 2;} elseif($to >= $pages) {$from = $pages-($page-2);$to = $pages-1;}$more = 1;}//$multipage .= ''.$num.L('page_item').'';if($curr_page>0) {$multipage .= '
第⼆步骤: ?第61⾏
$this->pages = pages($this->number, $page, $pagesize, $urlrule, $array, $setpages); 把上⾯这⾏修改成:
$this->pages = wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
在页⾯中调⽤:
- {$wz_pages}
css样式⾥⾯添加.page ul{width:99%;margin:0 auto;}.page ul li{float:left;border:1px solid #ccc;line-heigth:25px;margin:0 2px;padding:0 4px;}.page ul lia{display:block;}.page ul li a:hover{color:red;}.thisclass{background:#ccc;}
到此介绍完毕了
本⽂来⾃: 51模板集(
) 详细出处参考:
2023年6月21日发(作者:)
phpcms⾃定义分页样式使⽤phpcms建站的朋友经常会遇到⾃定义分页样式,那么如何使⽤phpcms来⾃定义分页样式呢?
phpcms做⽹站的时候,可能很多时候分页样式都是根据需求来的,这时很多⼈都会去修改全局⽂件⾥的pages()函数,这样问题就来了:这个分页函数连后台也会影响到的,就是说,这个分页函数是全站共⽤的。下⾯提供解决⽅法:(这个得修改⽂件,修改前记得备份)
打开 这个⽂件,找到分页函数,复制⼀下,粘贴到默认分页函数的下⾯,重新命名,⽐如我的就命名为wz_pages,保存。 打开 phpcms/libs/classes/template_,找到207⾏的: $str .= '$pages = pages($'.$op.'_total, $page, $pagesize,$urlrule);'; 在这⾏的下⾯加上:
$str .= '$wz_pages = wz_pages($'.$op.'_total, $page, $pagesize, $urlrule);'; 保存。最后,如果你要使⽤你⾃定义的分页函数,那么在模板中直接⽤{$wz_pages}就可以了,以后要修改样式,直接修改:
这个⽂件中的wz_pages函数就可以了,不会影响到后台。 后续优化:
使⽤过程中,发现使⽤SQL分页的不能正常使⽤,得再添加如下代码:
打开 phpcms/libs/classes/template_,找到178⾏的: $str .= '$r = $get_db->sql_query("'.$sql.'");$s = $get_db->fetch_next();$pages=pages($s['count'], $page, $pagesize, $urlrule);'; 在他下⾯增加: $str .= '$r = $get_db->sql_query("'.$sql.'");$s =$get_db->fetch_next();$wz_pages=wz_pages($s['count'], $page, $pagesize, $urlrule);';
这样,SQL的分页也正常了。 再次后续优化:
有朋友提到,会员中⼼的收藏列表分页不能使⽤上⾯的办法。
因为收藏列表的分页函数直接在其他⽂件定好了,所以通过修改模板缓存⽂件是不可⾏的,下⾯提供修改办法: 具体修改见下⾯:
?第61⾏ $this->pages = pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
把上⾯这⾏修改成:
$this->pages = wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
(模板中的{$pages}不⽤改为{$wz_pages}) 上⾯是第⼀种办法。
不过这样⼦的话,可能后台也会影响到了,这个地⽅好像是控制好多地⽅的, 也可以这样修改,还是上⾯那个⽂件,61⾏不要修改。直接在61⾏下⾯添加:
$this->wz_pages= wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
再去到: 718⾏,把下⾯这⾏ $pages = $this->favorite_db->pages; 修改为:
$wz_pages = $this->favorite_db->wz_pages;
模板中的{$pages}要修改为{$wz_pages}若我要做成下⾯的样式改如何实现:
⽐如上⾯的末页系统⾃带的是尾页找到在第三⼗⾏把尾页改成 末页
然后解析来在⾃定义函数
⾸先在:这个⽂件,⾃定义函数/** * ⾃定义分页函数 * * @param $num 信息总数 * @param $curr_page 当前分页 * @param $perpage 每页显⽰数 * @param $urlrule URL规则 * @param $array 需要传递的数组,⽤于增加额外的⽅法 * @return 分页 */function wz_pages($num, $curr_page, $perpage = 20, $urlrule = '', $array = array(),$setpages = 10) {if(defined('URLRULE') && $urlrule == '') {$urlrule = URLRULE;$array = $GLOBALS['URL_ARRAY'];} elseif($urlrule == '') {$urlrule = url_par('page={$page}');}$multipage = '';if($num > $perpage) {$page = $setpages+1;$offset = ceil($setpages/2-1);$pages = ceil($num / $perpage);if (defined('IN_ADMIN') && !defined('PAGES')) define('PAGES', $pages);$from = $curr_page - $offset;$to = $curr_page + $offset;$more = 0;if($page >= $pages) {$from = 2;$to = $pages-1;} else {if($from <= 1) {$to = $page-1;$from = 2;} elseif($to >= $pages) {$from = $pages-($page-2);$to = $pages-1;}$more = 1;}//$multipage .= ''.$num.L('page_item').'';if($curr_page>0) {$multipage .= '
第⼆步骤: ?第61⾏
$this->pages = pages($this->number, $page, $pagesize, $urlrule, $array, $setpages); 把上⾯这⾏修改成:
$this->pages = wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
在页⾯中调⽤:
- {$wz_pages}
css样式⾥⾯添加.page ul{width:99%;margin:0 auto;}.page ul li{float:left;border:1px solid #ccc;line-heigth:25px;margin:0 2px;padding:0 4px;}.page ul lia{display:block;}.page ul li a:hover{color:red;}.thisclass{background:#ccc;}
到此介绍完毕了
本⽂来⾃: 51模板集(
) 详细出处参考:
发布评论