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

    织梦dedecms5.7 无限级多级栏目菜单调用方法
    POST TIME:2020-04-12 22:02
    站长亲测可用
    以前在用到5.7无限级栏目列表菜单时下载了网上的资料都未成功,因此我参考网上及dedecms本身的channel.lib.php及cattree.lib.php制作了调用标签。
    1、在include aglib建立randomartlist.lib.php
    内容如下:
    <?php
    if(!defined('DEDEINC'))exit('RequestError!');

    functionlib_randomartlist(&$ctag,&$refObj)
    {
    global$dsql;
    //属性处理
    //topid指定顶级树id,指定后,前一个属性将无效
    $attlist="typeid|0,showall|,currentstyle|,cacheid|";
    FillAttsDefault($ctag->CAttribute->Items,$attlist);
    extract($ctag->CAttribute->Items,EXTR_SKIP);
    $revalue='';
    //读取固定的缓存块
    $cacheid=trim($cacheid);
    if($cacheid!=''){
    $revalue=GetCacheBlock($cacheid);
    if($revalue!='')return$revalue;
    }
    //如果属性里没指定栏目id,从引用类里获取栏目信息
    if(empty($typeid))
    {
    if(isset($refObj->TypeLink->TypeInfos['id']))
    {
    $typeid=$refObj->TypeLink->TypeInfos['id'];
    $reid=$refObj->TypeLink->TypeInfos['reid'];
    $topid=$refObj->TypeLink->TypeInfos['topid'];
    }
    else{
    $typeid=0;
    }
    }
    else
    {

    $row2=$dsql->GetOne("SELECTreid,topid,channeltype,ispartFROM`dede_arctype`WHEREreid='$topid'");
    if(!is_array($row2))
    {
    $typeid=$reid=$topid=$channeltype=$ispart=0;
    }else{
    $reid=$row2['reid'];
    $channeltype=$row2['channeltype'];
    $ispart=$row2['ispart'];
    $typepid=$row2['id'];
    }
    }
    //调用Typeid
    if(!empty($topid))
    {
    $topQuery="SELECTid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepathFROM`dede_arctype`WHEREreid='$topid'Andishidden<>1orderbysortrankasc";
    }
    $dsql->Execute('t',$topQuery);
    while($row=$dsql->GetArray('t'))
    {
    $row['typelink']=GetOneTypeUrlA($row);
    //处理同级栏目中,当前栏目的样式
    if($row['id']==$typeid&&$currentstyle!='')
    {
    $linkOkstr=$currentstyle;
    $linkOkstr=str_replace("~rel~",$row['rel'],$linkOkstr);
    $linkOkstr=str_replace("~id~",$row['id'],$linkOkstr);
    $linkOkstr=str_replace("~typelink~",$row['typelink'],$linkOkstr);
    $linkOkstr=str_replace("~typename~",$row['typename'],$linkOkstr);
    $revalue.=$linkOkstr;
    }
    else
    {
    $revalue.="<li><ahref='{$row['typelink']}'>{$row['typename']}</a></li> ";
    }
    randomartlistSon($row['id'],$typeid,$currentstyle,$revalue);
    }
    if($cacheid!=''){
    WriteCacheBlock($cacheid,$revalue);
    }
    return$revalue;
    }

    functionrandomartlistSon($id,$typeid,$currentstyle,&$revalue)
    {
    global$dsql;
    $query="SELECTid,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepathFROM`dede_arctype`WHEREreid='{$id}'Andishidden<>1orderbysortrankasc";
    $dsql->Execute($id,$query);
    $thisv='';
    while($row=$dsql->GetArray($id))
    {
    $row['typelink']=GetOneTypeUrlA($row);
    //处理同级栏目中,当前栏目的样式
    if($row['id']==$typeid&&$currentstyle!='')
    {
    $linkOkstr=$currentstyle;
    $linkOkstr=str_replace("~rel~",$row['rel'],$linkOkstr);
    $linkOkstr=str_replace("~id~",$row['id'],$linkOkstr);
    $linkOkstr=str_replace("~typelink~",$row['typelink'],$linkOkstr);
    $linkOkstr=str_replace("~typename~",$row['typename'],$linkOkstr);
    $thisv.=$linkOkstr;
    }
    else
    {
    $thisv.="<li><ahref='{$row['typelink']}'>{$row['typename']}</a></li> ";
    }

    randomartlistSon($row['id'],$typeid,$currentstyle,$thisv);
    }
    if($thisv!='')$revalue.="<ul> $thisv</ul> ";
    }

    2、调用方式:
    <divclass="alist">

    <ul>
    {dede:randomartlisttopid='12'currentstyle="<li><ahref='~typelink~'class='thisclass'>~typename~</a></li>"}
    <li><ahref="{dede:fieldname='typeurl'/}"title="{dede:fieldname='typename'/}">{dede:fieldname='typename'/}</a></li>
    {/dede:randomartlist}
    </ul>
    </div>
    3、css方式:
    .alist{}
    /*第一层修饰*/
    .alistul{}
    .alistulli{}
    .alistullia{}
    .alistullia:hover,.alistulli.thisclass{}
    /*第二层修饰*/
    .alistulliul{}
    .alistulliulli{}
    .alistulliullia{}
    .alistulliullia:hover,.alistulliulli.thisclass{}

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

    截屏,微信识别二维码

    微信号:veteran88

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

     打开微信

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