ecshop_文章页分页

分页的原理其实只是explode("<div style=\"page-break-after: always\"><span style=\"display: none\">&nbsp;</span></div>",$article['content']);把文章存成数组,根据编辑器的的分页标签
注意分页字段要和编辑器生成的一致


ECSHOP的文章内容没有分页功能,对于较短的文章来说没什么,如果赶上内容很长的文章,就不太好了。
下面我们来动手改造一下。

1、其实ECSHOP后台的文章编辑器(FCKeditor)是带有分页功能的,只是默认是隐藏的而已。

打开 /admin/includes/lib_main.php 文件


$editor->ToolbarSet = 'Normal';
修改为
$editor->ToolbarSet = 'Default';

保存后进入后台文章编辑页面,看看那个编辑器是不是有了变化,功能更多了吧。

使用方法:
直接把光标定位在你想分页的位置,然后点一下第二排功能键的最后一个即可,
如下图所示
分页.jpg
下载 (149.75 KB)
2010-3-19 15:53


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);

在它上面增加下面代码

   1. /* 文章分页 */   
   2.         $article_arr=explode("<div style=\"page-break-after: always\"><span style=\"display: none\">&nbsp;</span></div>",$article['content']);
   3.         $page_cnt=count($article_arr);        
   4.         if($page){
   5.                 if($page > $page_cnt)                $page        =        $page_cnt;
   6.                 if($page < 1)                                        $page        =        1;
   7.                 $article["content"]=$article_arr[$page-1];
   8.         }else{
   9.                 $article["content"]=$article_arr[0];
  10.         }
  11.         if($page_cnt>1){
  12.         for($i=1;$i<=$page_cnt;$i++){
  13.                 if($page==$i)        $page_nav        .=" &nbsp;&nbsp;<span><font color=#ff0033>{$i}</font></span> ";
  14.                 else{
  15.                         $url        =        $_SERVER['SCRIPT_NAME'].'?id='.$article_id.'&page='.$i;
  16.                         $page_nav        .=" &nbsp;&nbsp;[ <a href=\"{$url}\"><span>{$i}</span></a> ] ";
  17.                 }
  18.         }
  19.         }
  20.         $smarty->assign('page_nav',$page_nav);

复制代码
3、修改模板文件
打开 /themes/模板文件夹/article.dwt 文件


{$article.content}
后面增加下面代码

<!-- {if $page_nav} 翻页-->
        <div class="listpage" style="background:none; padding-top:0; padding-bottom: 10px;">{$page_nav}</div>
        <!-- {/if} -->











增强


基于论坛发布的分页做的增强修改
原帖地址http://bbs.ecshop.com/viewthread.php?tid=119888&amp;highlight=

演示站点:http://xianziss.com/article.php?id=447
效果图: page.jpg
下载 (4.33 KB)
2010-5-11 14:09

分页修改仿照了腾讯新闻的文章分页,具体代码如下:
前台article.php
在$smarty->assign('article',      $article);上面加下如下代码

   1. /*文章分页开始*/
   2. $article_arr=explode("<div style=\"page-break-after: always;\"><span style=\"display: none;\"> </span></div>",$article['content']);
   3. $page_cnt=count($article_arr);
   4. if($page){
   5. if($page>$page_cnt) $page=$page_cnt;
   6. if($page < 1)$page=1;
   7. $article["content"]=$article_arr[$page-1];
   8. }else{
   9.     $article["content"]=$article_arr[0];
  10. }
  11. if($page_cnt>1){
  12. for($i=1;$i<=$page_cnt;$i++){
  13.     if($page==$i){
  14.         $page_na.="<li><span>{$i}</span></li>";
  15.     }else{
  16.       $url=$_SERVER['SCRIPT_NAME'].'?id='.$article_id.'&page='.$i;
  17.       $page_na.="<li><a href=\"{$url}\">{$i}</a></li>";
  18.     }
  19. }
  20. $k = $_REQUEST['page'];
  21. $prev_url = $_SERVER['SCRIPT_NAME'].'?id='.$article_id.'&page='.($k-1);
  22. if($k==NULL)$k=1;
  23. $next_url = $_SERVER['SCRIPT_NAME'].'?id='.$article_id.'&page='.($k+1);
  24.

  25.


  26. if(($k+1)>$page_cnt){
  27. $page_nav=$page_na."<li><a href=\"{$prev_url}\" class=\"next\">上一页</a></li><li><span class=\"next\">下一页</span></li>";
  28. }else{
  29. if(($k-1)<=0){
  30. $page_nav=$page_na."<li><span class=\"next\">上一页</span></li><li><a href=\"{$next_url}\" class=\"next\">下一页</a></li>";
  31. }else{
  32. $page_nav=$page_na."<li><a href=\"{$prev_url}\" class=\"next\">上一页</a></li><li><a href=\"{$next_url}\" class=\"next\">下一页</a></li>";
  33. }
  34. }
  35.

  36. }
  37. $smarty->assign('page_nav',$page_nav);
  38. /*文章分页结束*/

复制代码

aticle.dwt
在 {$article.content} 下面加

   1. <!-- {if $page_nav} 翻页-->
   2.         <div class="listpage"  align="center"><ul>{$page_nav}</ul></div>
   3.         <!-- {/if} -->

复制代码

style.css

   1. .listpage{
   2. height:21px;
   3. margin-top:20px;
   4. margin-bottom:38px;
   5. text-align:center;
   6. width:100%;
   7. }
   8. .listpage span
   9. {
  10. background:url("images/split_v3.3.png") no-repeat scroll -5px -86px transparent;
  11. color:#FFFFFF;
  12. font-weight:bold;
  13. }
  14. .listpage a {
  15. background:url("images/split_v3.3.png") no-repeat scroll -5px -60px transparent;
  16. }
  17. .listpage span, .listpage a {
  18. display:inline-block;
  19. height:21px;
  20. line-height:21px;
  21. margin:0 auto 7px;
  22. text-align:center;
  23. width:23px;
  24. }
  25. .listpage a:link  {
  26. color:#0B3B8C;
  27. text-decoration:none;
  28. }
  29. .listpage ul {
  30. margin:0 auto;
  31. }
  32. .listpage li {
  33. display:inline;
  34. margin:3px;
  35. padding:0;
  36. font:12px/1.75 "宋体",arial,sans-serif;
  37. }
  38. ol, ul {
  39. list-style:none outside none;
  40. }
  41. .listpage span.next, .listpage a.next {
  42. background:url("images/split_v3.3.png") no-repeat scroll -5px -34px transparent;
  43. height:21px;
  44. width:51px;
  45. }
  46. .listpage span.next {
  47. color:#C4C4C4;
  48. font-weight:normal;
  49. }

复制代码


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值