• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    修改dede源码,让dede:channelartlist排除指定typeid
    POST TIME:2017-11-13 01:14

    找到 \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');
    function lib_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 $tpsql order 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 = new PartView($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;
    }
    ?>
    ?

    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!