新闻中心

Phpcms V9列表分页自定义页码文字(改成中文)

作者 / 无忧主机 时间 2014-08-31 15:27:47

最近一位站长朋友在使用phpcms v9建站过程中,是一个外贸站,列表分页的页码显示是英文的,而中文站希望页面和分页列表希望是中文的,另外有时候还需要自定义,这就涉及到Phpcms V9列表分页自定义页码文字的方法。 在用PHPCMS V9的过程中,可能一般人都不会在意分页功能,这位站长朋友还是比较细心的,因为调用他实在是很简单,需要修改的估计也就是分页功能的样式了,小编就拿系统自带的模板来看 代码如下:   <div id="pages" class="text-c">{$pages}</div>   大家可以修改class来自定义样式,当然有的站长朋友会说,这个只能修改DIV的样式,无法修改里面的内容的样式,其实之需要看一下这段代码解析出来的实际代码就知道了,而这里的样式可以直接通过head部分内读取的CSS来代替,小编就可以在CSS里面添加这样一段,为了方便测试,小编直接写在head标签内: 代码如下:   text-c {margin:10px 0;} text-c a {padding:5px;margin:0 8px;border:1px solid #ccc;background-color:#eee;}   经过小编的测试是有效的.重点是{$pages}输出的分页效果是固定的,如何让朋友们能够满足自己的需求,比如最简单的系统默认是显示多少条,用上一页,下一页来表示,如果小编还想改成向后翻,向前翻,怎么办?经过小编努力的查找相关资料,对这个功能进行整理得出结果与大家分享出来,涉及修改到的文件只有下面两个: 代码如下:   \phpcms\languages\zh-cn\system.lang.php \phpcms\libs\functions\global.func.php \ phpcms\lib\classes\template_cache.class.php   具体如何操作,下面小编会一步一步慢慢与大家讲解:   首先打开system.lang.php,找到29行LANG['next'] = ‘下一页’;处,大家可以在下面插入自定义的内容,比如向后翻,向前翻,整理效果应该是这样的,添加完后保存可以关闭了。   ...... $LANG['page_item'] = '条'; $LANG['previous'] = '上一页'; $LANG['next'] = '下一页'; $LANG['page_item_my'] = '篇'; //自定义 $LANG['previous_my'] = '向前翻'; //自定义 $LANG['next_my'] = '向后翻'; //自定义 ......   接下来打开global.func.php,搜索分页函数找到function pages…,在这个函数后复制原函数并修改添加自己想要定义的函数,例如: 代码如下:   //自定义分页函数 function pages_my($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 .= '<a class="a1">'.$num.L('page_item_my').'</a>'; if($curr_page>0) { $multipage .= ' <a href="'.pageurl($urlrule, $curr_page-1, $array).'" class="a1">'.L('previous_my').'</a>'; if($curr_page==1) { $multipage .= ' <span>1</span>'; } elseif($curr_page>6 && $more) { $multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a>..'; } else { $multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a>'; } } for($i = $from; $i <= $to; $i++) { if($i != $curr_page) { $multipage .= ' <a href="'.pageurl($urlrule, $i, $array).'">'.$i.'</a>'; } else { $multipage .= ' <span>'.$i.'</span>'; } } if($curr_page<$pages) { if($curr_page<$pages-5 && $more) { $multipage .= ' ..<a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next_my').'</a>'; } else { $multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next_my').'</a>'; } } elseif($curr_page==$pages) { $multipage .= ' <span>'.$pages.'</span> <a href="'.pageurl($urlrule, $curr_page, $array).'" class="a1">'.L('next_my').'</a>'; } else { $multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">'.L('next_my').'</a>'; } } return $multipage; }   最后打开template_cache.class.php,找到如下代码:   $str .= ‘$pages = pages($’.$op.’_total, $page, $pagesize, $urlrule);’在下面添加如下代码:   $str .= '$pages_my= pages_my($'.$op.'_total, $page, $pagesize, $urlrule);';   当然如果使用过程中,发现SQL分页的不能正常使用,再在如下代码:   $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();$pages_my=pages_my($s[\'count\'], $page, $pagesize, $urlrule);';   至此大功告成,接下来,只用在想要的模板的分页出使用就可以了,例如开头的格式 代码如下:   <div id="pages" class="myListPage">{$pages_my}</div>   并写上对应的CSS就可以了。 希望能够帮助到各位站长朋友!

本文地址:https://www.51php.com/phpcms/16133.html

1
1
1
1
1
1
1

客户服务热线

0791-8623-3537

在线客服