ThinkPHP文章内容分页
taotaoit ThinkPHP 2018-11-01 2351 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

8032949 2683 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (260)
Mysql (59)
DedeCms (33)
jQuery (74)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

1,后台编辑文章内容的时候,分页符号用|||

2,Home/Model/ProductsModel.class.php获取文章内容并分页

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
     * 查询产品信息
     */
    public function getProductsDetails($obj){
        $productId = (int)$obj["productId"];
        $pcurr = (int)I("pcurr");
        $sql ="SELECT * FROM __PREFIX__products WHERE productId=$productId AND isShow=1 AND productFlag=1";    
        $rs = $this->queryRow($sql);
        $str = $rs['productContent']; //文章内容
        $line = '|||'; //分页符号
        $pages = $this->pageQueryContent($str,$line,$pcurr,1); //调取内容分页函数
        $rs["pages"] = $pages; //获取分页列表
        return $rs;
    }
3,ThinkPHP/Library/Think/Model.class.php添加内容分页函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
     * 内容分页函数
     * @access public
     * @param string $str 待分页的内容
     * @param string $line 分页符
     * @param int $page 页码
     * @param int $pageSize 每页条数
     * @return array('total','pageSize','start','root','totalPage','currPage');
     */
    public function pageQueryContent($str,$line = '|||',$page = 0,$pageSize = 0){
        $pageSize = (intval($pageSize)==0)?C('PAGE_SIZE'):$pageSize;
        if($pageSize==0)return array();
        $page = (intval($page)<=0)?I(C('VAR_PAGE'),1):intval($page);
        $page = ($page<=0)?1:$page;
        $start = ($page-1)*$pageSize;
        $pager = array();
        if($str=='')return array();
        $result = explode($line,$str);
         
        //计算页码信息
        $pager['total'] = count($result);
        $pager['pageSize'] = $pageSize;
        $pager['start'] = $start;
        $pager['root'] = array_slice($result, ($page-1)*$pageSize, $pageSize);
        $pager['totalPage'] = ($pager['total']%$pageSize==0)?($pager['total']/$pageSize):(intval($pager['total']/$pageSize)+1);
        $pager['currPage'] = $page;
        return $pager;
    }
4,前台展示页面代码

1
2
3
<volist name="pages['root']" key="key" id="v">
{$v|htmlspecialchars_decode}
</volist>
分页js代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script> 
    <if condition="$pages['totalPage'] gt 1">
    laypage({
        cont: 'page-items',
        pages: {$pages["totalPage"]}, //总页数
        skip: true, //是否开启跳页
        skin: '#1aacdf',
        groups: 3, //连续显示分页数
        curr: function(){ //通过url获取当前页,也可以同上(pages)方式获取
            var page = location.search.match(/pcurr=(\d+)/);
            return page ? page[1] : 1;
        }(),
        jump: function(e, first){ //触发分页后的回调
            if(!first){ //一定要加此判断,否则初始时会无限刷新
                var nuewurl = ST.splitURL("pcurr");
                var ulist = nuewurl.split("?");
                if(ulist.length>1){
                    location.href = nuewurl+'&pcurr='+e.curr;
                }else{
                    location.href = '?pcurr='+e.curr;
                }
                 
            }
        }
    });
    </if>
</script>

版权声明:本站原创文章,允许自由转载。

相关推荐
thinkphp 3.2.3 Runtime\Logs日志文件太多怎么关闭日志功能
ThinkPHP | 2019-11-05 7615
'LOG_RECORD' => false, // 默认不记录日志 'LOG_TYPE' => 'File', // 日志记录类型 默认为文件方式 'LOG_LEVEL' => 'EMERG,ALERT,CRIT,ERR',// 允许记录的...
thinkphp 提示Class 'think\Db' not found
ThinkPHP | 2020-12-15 6211
明明有use think\Db; 还是提示Class 'think\Db' not found $list= Db::table('m_my_reserve_assess') ->alias('mra') ->field('mra.id,mra.insert_ti...
评论:0条
评论加载中...
发表评论