您好,欢迎来到菜鸟吧源码网-本站资源仅供学习与参考,禁止用于商业或违法行为!
  • 首 页
  • 下载APP
  • 公告:菜鸟吧APP于2024.9.15正式上线,请首页右上角进入下载,本站资源均来源于互联网及会员投稿发布,所有资源仅供学习参考研究使用,请勿商用或其它非法用途,商用请购买正版,否则产生一切后果由用户自行承担!谢谢!

     

    当前位置:主页 > 站长学堂 > dede教程 >
    修改dede源码,让dede:channelartlist排除指定typeid
    时间:2020-02-27 11:48 作者:菜鸟哥 浏览:收藏 挑错 打印

    找到 \include\taglib\channelartlist.lib.php,   查找 $attlist


    $attlist = 'typeid|0,row|20,cacheid|';
    修改为:
    $attlist = 'typeid|0,row|20,cacheid|,notypeid|0';   [此处添加了一个所要排除typeid的参数---notypeid]

    查找:  
    $dsql->SetQuery("Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath   from `dede_arctype` where $tpsql order by sortrank asc limit $totalnum");

    在其前面添加(注意是在前面添加):

    //否定指定ID
    if($notypeid!=0) {
        $tpsql = $tpsql."and not(id in($notypeid)) ";
    }

    模板调用:
    {dede:channelartlist typeid ='114' notypeid='123,124,125,126,127,128'}
    其中notypeid='123,124,125,126,127,128' 中的 123,124,125,126,127,128 为114的子栏目

    修改后的channelartlist.lib.php

    <?php
    if(!defined('DEDEINC')) exit('Request Error!');
    require_once(DEDEINC.'/arc.partview.class.php');
    functionlib_channelartlist(&$ctag,&$refObj)
    {
    global$dsql,$envs,$_sys_globals;
    //处理标记属性、innertext
    $attlist= 'typeid|0,row|20,cacheid|,notypeid|0';
    FillAttsDefault($ctag->CAttribute->Items,$attlist);
    extract($ctag->CAttribute->Items, EXTR_SKIP);
    $innertext= trim($ctag->GetInnerText());
    $artlist= '';
    //读取固定的缓存块
    $cacheid= trim($cacheid);
    if($cacheid!='') {
    $artlist= GetCacheBlock($cacheid);
    if($artlist!='') return$artlist;
    }
    if(empty($typeid))
    {
    $typeid= ( !empty($refObj->TypeLink->TypeInfos['id']) ?  $refObj->TypeLink->TypeInfos['id'] : 0 );
    }
    if($innertext=='') $innertext= GetSysTemplets('part_channelartlist.htm');
    $totalnum= $row;
    if(empty($totalnum)) $totalnum= 20;
    //获得类别ID总数的信息
    $typeids= array();
    if($typeid==0 || $typeid=='top') {
    $tpsql= " reid=0 And ispart<>2 And ishidden<>1 And channeltype>0 ";
    }
    else
    {
    if(!ereg(',',$typeid)) {
    $tpsql= " reid='$typeid' And ispart<>2 And ishidden<>1 ";
    }
    else{
    $tpsql= " id in($typeid) And ispart<>2 And ishidden<>1 ";
    }
    }
    //否定指定ID
    if($notypeid!=0) {
    $tpsql= $tpsql."and not(id in($notypeid)) ";
    }
    $dsql->SetQuery("Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
    from `dede_arctype` where $tpsqlorder by sortrank asc limit $totalnum");
    $dsql->Execute();
    while($row= $dsql->GetArray()) {
    $typeids[] = $row;
    }
    if(!isset($typeids[0])) return'';
    $GLOBALS['itemindex'] = 0;
    $GLOBALS['itemparity'] = 1;
    for($i=0;isset($typeids[$i]);$i++)
    {
    $GLOBALS['itemindex']++;
    $pv= newPartView($typeids[$i]['id']);
    $pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
    $pv->SetTemplet($innertext,'string');
    $artlist.= $pv->GetResult();
    $GLOBALS['itemparity'] = ($GLOBALS['itemparity']==1 ? 2 : 1);
    }
    //注销环境变量,以防止后续调用中被使用
    $GLOBALS['envs']['typeid'] = $_sys_globals['typeid'];
    $GLOBALS['envs']['reid'] = '';
    if($cacheid!='') {
    WriteCacheBlock($cacheid, $artlist);
    }
    return$artlist;
    }
    ?>

    郑重声明:
    本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系站长索要。
    如有侵犯您的版权,请给我们来信:cainiaovip8@qq.com,我们尽快处理。

    织梦中TAG标签字数长度限制解决方法织梦中TAG标签字数长度限制解决方法
    织梦后台突然打不开或打开后空白的解决方法织梦后台突然打不开或打开后空白的解决
    织梦系统解决后台“DEDECMS安全提示”的方法织梦系统解决后台“DEDECMS安全提示”