楼主
piis   发表于 2014-11-28 01:27:33 |栏目: |分类:dedecms教程
我们都知道织梦模板引擎标签功能非常的强大,只要了解这些模板标签,在前台调用各种形式的内容数据就可以得心应手。

当然,如果我们能再加点技术,对织梦默认的标签再加以改进,那就可以更加完美,实现更多功能了。

最近在对自己小站的栏目进行扩展和细分,由原来的五个一级栏目变成十个一级栏目,每个一级栏目再细分为四到八个二级栏目,以便更好的管理内容。

但是这样做之后就遇到一个问题,比如我不想让其中一个栏目里面的内容在首页的最新文章列表中显示,按照织梦现有的办法,就是在arclist标签的typeid属性里把想显示文章的栏目ID全部设置上。

但如果栏目ID太多,维护起来就相当麻烦,于是我想既然arclist支持flag和noflag,那么应该也可以支持typeid和notypeid吧?

于是经过一番研究,再跟踪了一下源码,发现织梦默认并不支持notypeid,于是只有自己动手修改了,下面就给大家分享一下自己的成果。

首先找到并打开/include/taglib/arclist.lib.php文件,在大概第130行的位置找到下面这段代码:

            return lib_arclistDone
                   (
                     $refObj, $ctag, $typeid, $ctag->GetAtt('row'), $ctag->GetAtt('col'), $titlelen, $infolen,
                     $ctag->GetAtt('imgwidth'), $ctag->GetAtt('imgheight'), $listtype, $orderby,
                     $ctag->GetAtt('keyword'), $innertext, $envs['aid'], $ctag->GetAtt('idlist'), $channelid,
                     $ctag->GetAtt('limit'), $flag,$ctag->GetAtt('orderway'), $ctag->GetAtt('subday'), $ctag->GetAtt('noflag'),
                     $tagid,$pagesize,$isweight         
                 );


在最后面的括弧前面加上如下代码(注意前面的半角逗号):

            ,$ctag->GetAtt('notypeid')


然后再找到这一段代码:

            function lib_arclistDone(&$refObj, &$ctag, $typeid=0, $row=10, $col=1, $titlelen=30, $infolen=160,
                    $imgwidth=120, $imgheight=90, $listtype='all', $orderby='default', $keyword='',
                    $innertext='', $arcid=0, $idlist='', $channelid=0, $limit='', $att='', $order='desc', $subday=0, $noflag='',
            $tagid='', $pagesize=0, $isweight='N')

在最后的括号前面加上如下代码(注意前面的半角逗号):

            ,$notypeid=0


最后在里面找到下面这一句代码:

            $orwheres[] = ' arc.arcrank > -1 ';


在其前面添加如下代码:

            if(!empty($notypeid))
            {
                $orwheres[] = " and arc.typeid NOT IN (".GetSonIds($notypeid).")";
            }


到这里,所有代码就修改完毕了。保存之后就在arclist标签里试试添加一个notypeid属性吧。对于网站栏目多,内容显示又错综复杂的情况,这样的属性还是蛮实用的。

下面是示例:

            {dede:arclist row=6 orderby=pubdate type='image.' channelid='1' notypeid='9'}

说明:本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!如有侵犯您的版权,请及时联系我们,我们将尽快处理。


小坏源码社区 - 论坛版权1、本站源码全部来自于互联网,如有侵权,请联系网站客服或者发送邮件到xhymsq@qq.com删除
2、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和小坏源码社区的同意
3、本站源码仅供会员测试研究技术使用,禁止从事商业用途,如有违者,自行承担法律责任
4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
5、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
6、小坏源码社区管理员和版主有权不事先通知发贴者而删除本文

回复 只看该作者 使用道具 举报

的撒旦

论坛元老

沙发
的撒旦   发表于 2015-4-17 21:16:52 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

啊啊飒飒

论坛元老

板凳
啊啊飒飒   发表于 2015-4-17 21:16:55 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

assassin

论坛元老

地板
assassin   发表于 2015-4-17 21:16:55 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

assassin

论坛元老

5#
assassin   发表于 2015-4-17 21:16:56 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

撒等等撒

论坛元老

6#
撒等等撒   发表于 2015-4-17 21:16:58 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

文虞

论坛元老

7#
文虞   发表于 2015-5-16 16:00:49 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

cut

金牌会员

8#
cut   发表于 2015-5-16 16:00:52 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

caijingxin

金牌会员

9#
caijingxin   发表于 2015-5-16 16:00:54 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

liajian

论坛元老

10#
liajian   发表于 2015-5-16 16:00:54 |栏目:
此帖仅作者可见

只看该作者 使用道具 举报

高级模式  
B Color Image Link Quote Code Smilies |上传

本版积分规则

作者相关信息

更多discuzx模板

精品推荐

极品资源

原创模板

下载排行

热门标签

 
 
技术支持
加入VIP
链接失效
VIP交流群
源码建站交流
源码合买群
源代码合买
免费源码交流群
小坏源码社区交流群
工作时间:
9:00-21:00
 
快速回复 返回顶部 返回列表