2016年6月

duxcms3调用导航:

<!--list{app="site" label="nav" parent_id="0"}-->
名称: {$list.name} ---- 链接: {$list.url}<br>
<!--{/list}-->

parent_id 上级栏目ID
group_id 导航分组ID
name 导航名称
url 导航链接
subname 栏目副名称
image 封面图
keyword 关键词
description 导航描述
sort 排序

 

文章页调用当前页面tag

<!--loop{$tagList as $vo }-->
<a target='_blank' class='tag' href='{$vo.url}' >#{$vo.name}</a>
<!--{/loop}-->

 

3.0的DUX完善了自定义模型和筛选模型,负载能力也比2.0有很大提升

so刚出测试版就搭建了一个站点用以测试

在使用中发现了一些细节的问题

1、列表顺序

比方说列表页排列顺序和点击筛选后顺序是正序的,这个需要修改

 /app/article/controller/IndexController.php

$classIds = target('article/ArticleClass')->getSubClassId($classId);
        $where['_sql'] = 'B.class_id in (' . $classIds . ') ORDER BY B.content_id desc';
 
        $attrList = [];
        if($classInfo['filter_id']) {
            $filter = target('site/SiteFilter')->getFilter('article/ArticleClass', $classIds, ['id' => $classId]);
            if ($filter['status']) {
                $where['_sql'] = 'A.content_id in (' . $filter['ids'] . ') ORDER BY B.content_id desc';
            }
            $attrList = $filter['attrList'];
        }

大约36,42行的位置加入ORDER BY B.content_id desc,可以在不影响响应速度的前提下把顺序改为倒序。

2、内页响应时间

/*
        target('site/SiteContent')->where(['content_id' => $info['content_id']])->setInc('view');

        $where = [];
        $where['A.status'] = 1;
        $where['_sql'] = 'A.create_time < ' . $info['create_time'];
        $where['B.class_id'] = $info['class_id'];
        $nextInfo = target('article/Article')->loadList($where, 1);

        $where = [];
        $where['A.status'] = 1;
        $where['_sql'] = 'A.create_time > ' . $info['create_time'];
        $where['B.class_id'] = $info['class_id'];
        $prevInfo = target('article/Article')->loadList($where, 1);*////这里注释用以减少sql查询

/app/article/controller/InfoController.php

注释掉大约62-75行之间的代码,可以极大的提升内页响应时间,3W数据内页响应时间从2S缩短到0.02S

开发过程中入库的时候为了避免一些不必要的错误

要把html代码进行转意再入库

用到了如下函数

htmlspecialchars()

会把诸如< > & "'之类的转意成&lt  &gt ,可以避免很多sql语句代码上的错误和麻烦

输出的时候再使用htmlspecialchars_decode() 再把字符转意回html代码