让织梦artlist标签增加notypeid属性实现栏目过滤

这篇具有很好参考价值的文章主要介绍了让织梦artlist标签增加notypeid属性实现栏目过滤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

织梦的标签功能非常强大,只要熟悉这些标签,在前台调用各种形式的后台数据就能得心应手。当然,如果能懂点技术,对织梦的标签再加以改进,那就更完美了。

我最近在对自己小站的栏目进行扩展和细分,由原来的七个一级栏目变成十二个一级栏目,每个一级栏目再细分为四到八个二级栏目,以便更好的管理内容。但我遇 到了一个问题,其中一个栏目我不想让它在首页的最新文章列表中显示,按照织梦现有的办法,就是在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')

然后再找到这一段代码(大概在168行):

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.' imgwidth='108' imgheight='150' channelid='1' notypeid='9'}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持yii666。文章来源地址https://www.toymoban.com/news/detail-432756.html

到了这里,关于让织梦artlist标签增加notypeid属性实现栏目过滤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 织梦dede调用四级栏目的实现方法

    织梦调用四级子栏目,首先需要修改文件:includetaglibchannel.lib.php,请将以下代码全部复制替换上述文件: rn\\\";if($row=$dsql-GetArray()){$row[\\\'sonids\\\'] = $row[\\\'rel\\\'] = \\\'\\\';if($needRel){$row[\\\'sonids\\\'] = GetSonIds($row[\\\'id\\\'], 0, false);if($row[\\\'sonids\\\']==\\\'\\\') $row[\\\'rel\\\'] = \\\'\\\';else $row[\\\'rel\\\'] = \\\" rel=\\\'dropmenu{$row[\\\'id\\\']}\\\'\\\";

    2024年02月02日
    浏览(88)
  • 织梦如何让channelartlist标签支持limit属性

     打开文件:includetaglibchannelartlist.lib.php 1、将 修改为 2、在“$dsql-SetQuery”前面添加 修改为 到这里就全部修改完成了,使用方法 limit:(起始ID从0开始)表示限定的记录范围(如:limit=\\\'1,2\\\' 表示从ID为1的记录开始,取2条记录 以上就是本文的全部内容,希望对大家的学习有所帮

    2024年02月02日
    浏览(28)
  • 织梦DedeCMS 分表实现一个栏目对应一个表(图)

    一直在考虑做个什么网站项目,思考了很久很久,终于想到了一个idea,首先确定网站+论坛的形式,论坛选择pw,那网站选择什么呢? 以前一直是ecms(帝国)的粉丝,虽然一直用ecms,很赞它的一些内核设计,特别是多表储存,但唯一可惜的可能就是WC分不开身吧,网站的美工和人

    2024年02月04日
    浏览(43)
  • 织梦dedecms获取当前栏目路径及栏目名称的方法

    标签如下: 当前: 复制代码 代码如下: {dede:type} [field:typename/] {/dede:type} 因为{dede:field  name=\\\'arcurl\\\'/} 这个获取当前页面路径的标签只能在内容页使用,栏目页没有效果的。所以在栏目页想获取当前栏目的路径及名称的话,就要用上面这个标签。 而获取网站所有栏目名称及路径

    2023年04月18日
    浏览(69)
  • 如何获取织梦cms当前栏目的顶级栏目名称

    在用织梦做一些项目时,时常会碰到需要在当前页面调用顶级栏目名称的时候,织梦默认{dede:field name=\\\'typename\\\' /} 可以获取当前栏目页上一级栏目的名称,而不是当前栏目顶级栏目名称。 使用时一定要注意是不是需要修改查询语句表的前缀 下面拓展出一个方法来实现这个效果

    2024年02月02日
    浏览(47)
  • dedecms织梦让likearticle的mytypeid支持多个栏目和子栏目

    在使用dede:likearticle时,如果你想获取多个指定栏目下的相关文章,而刚好这个多个栏目下还有子栏目时,官方的程序不能满足你的需求,你需要改一下 打开 includetagliblikearticle.lib.php 找到 在它下面加入 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多

    2024年02月02日
    浏览(40)
  • 织梦dedecms调用得到文章所属的副栏目id及副栏目名称的教程

    标签调用代码 函数代码,在includeextend.func.php 中增加如下代码: 注意:织梦标签artlist不能调用副栏目中的文章内容的问题,即文章属于互联网这个副栏目,但互联网栏目中却不显示这个文章。需要修改系统文件./include/taglib/arclist.lib.php。 修改为 以上就是本文的全部内容,希

    2024年02月02日
    浏览(47)
  • 织梦dedecms后台栏目怎么显示没有审核的文档数量

    在织梦的后台当中如果是没有审核的文章有很多,每次审核都要打开待审核文档,如果内容有很多,就很麻烦。 修改的方法: 打开/include/typeunit.class.admin.php文件 找到: function ListAllType 在上面加上下面的代码: 将: $this-GetTotalArc($id). 替换为: $this-GetTotalArc($id).$this-GetTotalA

    2024年02月03日
    浏览(59)
  • 【CSS】简记CSS效果:通过transition(动画过渡属性)实现侧边栏目滑入滑出

    在资金明细的页面中,点击按钮时筛选区域从左侧滑出,完成筛选点击确认后调用接口完成数据查询,筛选区域滑入左侧; https://www.cnblogs.com/yadiblogs/p/10145625.html  

    2024年02月10日
    浏览(47)
  • dedecms织梦php7+删除不了后台栏目的解决方法

    明明提示删除成功了,可是栏目还在后台栏目管理里,那是因为你的web环境PHP版本太高,例如PHP7的,织梦最新版本20180109还不能完全兼容PHP7,要么降低你的PHP版本为PHP5,要么修改一下这个文件。 PHP7+高版本环境下,织梦dedecms删除网站栏目失败。主要原因是语句书写不严谨,

    2024年02月03日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包