杰奇cms2.4章节分页阅读教程 提高网站访问PV必备
此教程不要随意外传。
适用于2.4任意版本,如果是官网版,需要自行解密下方步骤涉及的文件。
1.打开/modules/article/class/package.php,在文件第二行,也就是<?php下方添加
function str_split_unicode($str, $l = 3000) { if ($l > 0) { $ret = array(); $len = mb_strlen($str, "GBK"); for ($i = 0; $i < $len; $i += $l) { $ret[] = mb_substr($str, $i, $l, "GBK"); } return $ret; } return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY); }
3000代表一页的字数(单纯的字符,不是汉字)
然后在文件内查找$jieqiTpl->assign("jieqi_content", $tmpvar); ,替换为如下。
if (isset($_REQUEST["cid"])) { //重新获取一遍章节id,赋予新字段t_cid $_REQUEST["cid"] = intval($_REQUEST["cid"]); $t_cid = $_REQUEST["cid"]; } $t_url = jieqi_geturl("article", "chapter", $t_cid, $this->id, $tmpisvip, $this->metas["articlecode"]); //以杰奇自身的方法,生成当前页面的路径。 $jieqiTpl->setCaching(0); if (isset($_REQUEST["cpage"])) { //以cpage为参数,从前台闯入,表示当前页的页码 $_REQUEST["cpage"] = intval($_REQUEST["cpage"]); $t_page = $_REQUEST["cpage"]; if($_REQUEST["cpage"] > 0){ //根据页码开始调用章节数组中的数据,并且和前面定义的当前页面链接,组合成上一页链接,并且页面走完的时候设置为空值,方便前台判断。 $cpage = $_REQUEST["cpage"] - 1; $t_url = str_replace('.html','',$t_url); $t_preview = $t_url."_".$cpage.".html"; }else{ $cpage = 0; $t_preview = ""; } }else{ $cpage = 0; $t_page = ""; } $tmpvar = str_split_unicode($tmpvar); $t_num = sizeof($tmpvar); //判断章节被分成了几页,用来生成比例。 if($t_num >= $cpage + 2){ //组合成下一页链接 $npage = $cpage + 2; $t_url = str_replace('.html','',$t_url); $t_next = $t_url."_".$npage.".html"; }else{ $t_next = ""; } $tmpvar = $tmpvar[$cpage]; $jieqiTpl->assign("jieqi_content", $tmpvar); //章节内容 $jieqiTpl->assign("t_next", $t_next); //下一页链接 $jieqiTpl->assign("t_preview", $t_preview); //上一页链接 $jieqiTpl->assign("t_page", $t_page);
2.打开/modules/article/templates/style.html,把上一章,下一章的a标签替换为如下:
{?if $t_preview != ""?}<a href="{?$t_preview?}" id="t_preview">上一页</a>{?else?}<a href="{?$preview_page?}">上一章</a>{?/if?}
{?if $t_next != ""?}<a href="{?$t_next?}" id="t_next">下一页</a>{?else?}<a href="{?$next_page?}">下一章</a>{?/if?}
3.打开伪静态设置,如apache,添加一条
rewrite ^/book/([0-9]+)/([0-9]+)_([0-9]+)\.html$ /modules/article/reader.php?aid=$1&cid=$2&cpage=$3;
4.彻底清除杰奇的缓存,就行了