ECMALL 文章分页功能实现-进来顶!

2016-07-07 16:48 来源:www.chinab4c.com 作者:ecshop专家

文章分页功能已经实现,测试美化后在这里发布,有需要的可以进来顶一下,如果没人要只能是自己保留了!呵呵

太晚了!先发一个测试地址吧
我的艺家

基本测设完成,还是先把修改方法写出来吧,多谢大家的支持!

第一步:添加编辑器的分页按钮
打开 \includes\ecapp.base.php 定位到如下代码修改红色部分
/* 指定使用哪种主题 */
$themes = array(
'normal' =>'plugins:"inlinepopups,preview,fullscreen,pagebreak,paste'.($if_media ? ',media' : '' ).'",
theme:"advanced",
theme_advanced_buttons1:"code,fullscreen,preview,removeformat,|,bold,italic,underline,strikethrough,|," +
"formatselect,fontsizeselect,|,forecolor,backcolor",
theme_advanced_buttons2:"bullist,numlist,|,outdent,indent,blockquote,|,justifyleft,justifycenter," +
"justifyright,justifyfull,|,link,unlink,charmap,image,|,pastetext,pasteword,|,undo,redo,|,media,pagebreak",
theme_advanced_buttons3 : "",',
'simple' =>'theme:"simple",',
);
修改后编辑器就可以插入 分页标签了(<!-- pagebreak -->),但前台文章还不能分页显示,往下来!

第二步:修改文章模块
打开 \includes\models\article.model.php 在最后添加一个page_break函数
/**
* 文章内容分页
* 由于我的网站有部分文章调用用的不是默认的article.app.php,所以传递了$app,$act相关函数
* @author PCJINGL
* @return void
*/
function page_break($article, $page = 0, $app, $act, $article_id)
{
$G_cfg = '<p><!-- pagebreak --></p>';// 分页符,由于在设计视图回车换行会加个<p></p>标签,当然也可以直接用'<!-- pagebreak -->',还有就是最好在代码视图粘贴分页符。
$arr_content = explode($G_cfg, $article['content']);// 按分页符把文章内容切成数组
$page_num= sizeof($arr_content);// 所切数组的大小
if($page <= 0) $page = 1;// 当$page不存在时,为首页
if($page > $page_num && $page_num > 0) $page = $page_num;// 当$page大于数组大小值时,为尾页
$article['content'] = $arr_content[$page-1];
if($page_num > 1) {
if($page <= 1){
$article['pages_up']['app'] = $app;
$article['pages_up']['article_id'] = $article_id;
$article['pages_up']['page_num'] = 1;
}else{
$article['pages_up']['app'] = $app;
$article['pages_up']['article_id'] = $article_id;
$article['pages_up']['page_num'] = $page-1;
}
for($i=0;$i<$page_num;$i++) {
$article['pages'][$i]['app'] = $app;
$article['pages'][$i]['article_id'] = $article_id;
$article['pages'][$i]['page_num'] = $i+1;
if($i+1 == $page) {
$article['pages'][$i]['current_page'] = 1;
} else {
$article['pages'][$i]['current_page'] = 0;
}
}
if($page >= $page_num){
$article['pages_down']['app'] = $app;
$article['pages_down']['article_id'] = $article_id;
$article['pages_down']['page_num'] = $page_num;
}else{
$article['pages_down']['app'] = $app;
$article['pages_down']['article_id'] = $article_id;
$article['pages_down']['page_num'] = $page+1;
}
}
return $article;
}

打开\app\article.app.php 定位到如下代码添加红色部分
if ($article['link']){ //外链文章跳转
header("HTTP/1.1 301 Moved Permanently");
header('location:'.$article['link']);
return;
}
/* 分页处理 */
$article = $this->_article_mod->page_break($article,intval($_GET['page']),$_GET['app'],$_GET['act'],$article_id);


第三步:修改文章显示模板
打开 \themes\mall\default\article.view.html 定位到如下代码添加红色部分
<div class="default">
<!-- {if $article.store_id} -->
{$article.content|escape:editor}
<!-- {else} -->
{$article.content}
<!-- {/if} -->
</div>
<!-- {if $article.pages} -->
<div class="page_break">
<ul><li><a href="{url app=$article.pages_up.app&act=view&article_id=$article.pages_up.article_id&page=$article.pages_up.page_num}">{$lang.prev_page}</a></li>
<!--{foreach from=$article.pages item=page}--><li {if $page.current_page eq 1}class="current_page"{/if}><!--{if $page.current_page eq 1}-->{$page.page_num}<!--{else}--><a href="{url app=$page.app&act=view&article_id=$page.article_id&page=$page.page_num}">{$page.page_num}</a><!--{/if}--></li><!--{/foreach}-->
<li><a href="{url app=$article.pages_down.app&act=view&article_id=$article.pages_down.article_id&page=$article.pages_down.page_num}">{$lang.next_page}</a></li></ul>
</div>
<!-- {/if} -->



第四步:添加CSS样式
打开 \themes\mall\default\styles\default\css\ecmall.css 添加红色部分
.page_break{ width: 730px; margin-bottom:10px; text-align:center;}
.page_break ul{margin:5px 5px;}
.page_break ul li{ display:inline; margin:2px; padding:4px; border: 1px solid #dcdcdc; text-align:center;font-size: 12px; font-family:"宋体";}
.page_break ul li a{display:inline; color: #000; text-decoration: none;}
.page_break ul li a:hover{text-decoration: underline;}
.page_break ul li a:visited {text-decoration: none; color: #000;}
.current_page{ border: 1px solid #fff; color:#FF0000;}


OK!文章分页基本完成,对于开启伪静态的朋友还需要修改两个地方。我先吃饭,稍后再来写!


回答:
欣赏楼主的钻研精神。可以的话能否共享一下,大家都会支持楼主的!

LZ的研究精神值得我们学习,望能再接再厉!!同时也希望LZ的成果能共享,造福社区会员!!

支持楼主!! 共同钻研ECMALL

我想要啊
http://www.alimgw.com

不错
好东东

虽然用不到.不过好东西还是要顶的

逛街老大顶,我也顶。

我是2.2.1的首页出错啊

Fatal error: Call to a member function get_users_count() on a non-object in D:\apache2.2\htdocs\ecmall\includes\ecapp.base.php on line 578

強者~~~~~~~頂