关于给ECSHOP文章详细内容增加分页导航
2016-09-11 20:39 来源:www.chinab4c.com 作者:ecshop专家
ECSHOP毕竟不是CMS系统,文章发布这块没有考虑分页功能,也是可以理解的嘛。
但是个别用户喜欢在网站上发布篇幅很长的文章,这时候加一个“分页导航”就显的有那么点重要性了,
下面我们就通过二次开来实现这个功能。
以下教程是以 2.7.2版 + 官方默认模板为例进行讲解的。
1)、
先来改造后台的文章编辑器,其实那个 fckeditor 编辑器是带有分页按钮的,下面我们就让它现出原形。
打开 /admin/includes/lib_main.php 文件
将
$editor->ToolbarSet = 'Normal';
修改为
$editor->ToolbarSet = 'Default';
然后再返回文章编辑页面,刷新一下,看看是不是多出了很多功能键,
操作方法:
把光标定位在你想分页的位置,然后点一下第二排功能键的最后一个即可,具体如下图所示
2)、接着修改前台程序,打开 /article.php 文件
找到
$cache_id = sprintf('%X', crc32($_REQUEST['id'] . '-' . $_CFG['lang']));
将之修改为
$page=isset($_REQUEST['page']) ? intval($_REQUEST['page']) : 1;
$cache_id = sprintf('%X', crc32($_REQUEST['id'] . '-' .$page.'-'. $_CFG['lang']));
继续,找到 $smarty->assign('article', $article);
在它的上面增加代码段 /* 文章分页 */
$article_arr=explode("<div style=\\"page-break-after: always\\"><span style=\\"display: none\\"> </span></div>",$article['content']);
$page_cnt=count($article_arr);
if($page){
if($page > $page_cnt) $page = $page_cnt;
if($page < 1) $page = 1;
$article["content"]=$article_arr[$page-1];
}else{
$article["content"]=$article_arr[0];
}
if($page_cnt>1){
for($i=1;$i<=$page_cnt;$i++){
if($page==$i) $page_nav .=" <span><font color=#ff0033>{$i}</font></span> ";
else{
$url = $_SERVER['SCRIPT_NAME'].'?id='.$article_id.'&page='.$i;
$page_nav .=" [ <a href=\\"{$url}\\"><span>{$i}</span></a> ] ";
}
}
}
$smarty->assign('page_nav',$page_nav);
3)、
最后一步是修改模板文件 ,打开 /themes/default/article.dwt
找到
{$article.content}
在它后面增加下面代码
<!-- {if $page_nav} 翻页-->
<div class="listpage" style="background:none; padding-top:0; padding-bottom: 10px;">{$page_nav}</div>
<!-- {/if} -->
注意:
此方法不能实现自动分页,需要你在后台发布文章的时候插入分页符,
个人认为此种方法,虽然稍微繁琐些,但是可控性更强,分页逻辑上更合理。
最近更新
常用插件
- ecshop2.7.1邮件发送插件
ecshop2.7.1邮件发送插件:该插件主要的开发思想是源于ecshop短信发送系统...
- ecshop二次开发商品购买增
图片1香...
- ecshop2.7.2生成虚拟订单2.
以前我们开发过ecshop下的虚拟订单,就是客户在访问的时候,会自动生...
- ecshop最小购买数量控制插
ecshop最小购买数量控制插件,这个插件主要是为我们提供一个十分方便...
- ecshop没登陆情况下订单查
ecshop没登陆情况下订单查询插件,主要是针对ecshop在没有登陆的情况下...