分页的原理其实只是explode("<div style=\"page-break-after: always\"><span style=\"display: none\"> </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\"> </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 .=" <span><font color=#ff0033>{$i}</font></span> ";
14. else{
15. $url = $_SERVER['SCRIPT_NAME'].'?id='.$article_id.'&page='.$i;
16. $page_nav .=" [ <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&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. }
复制代码
注意分页字段要和编辑器生成的一致
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\"> </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 .=" <span><font color=#ff0033>{$i}</font></span> ";
14. else{
15. $url = $_SERVER['SCRIPT_NAME'].'?id='.$article_id.'&page='.$i;
16. $page_nav .=" [ <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&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. }
复制代码