织梦实现三级多级栏目嵌套调用教程_织梦CMS教程
栏目:网络技术 发布时间:2017-08-04
将三级目录全部显示出来,而系统的channel标签只能获取下级分类,所以就报改了channel.lib.php这个文件,让他支持多级栏目嵌套,代码如下:<

将三级目录全部显示出来,而系统的channel标签只能获取下级分类,所以就报改了channel.lib.php这个文件,让他支持多级栏目嵌套,代码如下:

<?php
function lib_channel(&$ctag,&$refObj)
{
    global $_sys_globals,$envs,$dsql;
    $attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|";
    FillAttsDefault($ctag->CAttribute->Items,$attlist);
    extract($ctag->CAttribute->Items, EXTR_SKIP);
    $innertext = $ctag->GetInnerText();
    if(empty($typeid) && $envs['typeid']!=0)
    {
        $typeid = $envs['typeid'];
        $reid = $envs['reid'];
    }else{
        $reid=0;
    }

    if($type==''||$type=='sun') $type="son";
    if($innertext=='') $innertext = GetSysTemplets("channel_list.htm");

    if($reid==0 && $typeid>0)
    {
        $dbrow = $dsql->GetOne("Select reid From net_arctype where id='$typeid' ");
        if(is_array($dbrow)) $reid = $dbrow['reid'];
    }

    $likeType = '';
    if($type=='top')
    {
        $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
          From net_arctype where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row";
    }
    else if($type=="son")
    {
        //if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid'];
        if($typeid==0) {
            return '';
        }
        $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
          From net_arctype where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";
    }
    else if($type=="self")
    {
        if($reid==0) {
            return '';
        }
        $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
            From `net_arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row";
    }
    //And id<>'$typeid'
    $dtp2 = new DedeTagParse();
    $dtp2->SetNameSpace("field","[","]");
    $dtp2->LoadSource($innertext);
    $dsql2 = clone $dsql;
    $dsql->SetQuery($sql);
    $dsql->Execute();

    $line = $row;
    $GLOBALS['autoindex'] = 0;
    for($i=0;$i < $line;$i++)
    {
        if($col>1) $likeType .= "<dl>\r\n";
        for($j=0;$j<$col;$j++)
        {
            if($col>1) $likeType .= "<dd>\r\n";
            if($row=$dsql->GetArray())
            {
                if($type=='self' && $row['id']==$typeid) //处理同级栏目中,当前栏目的样式
                {
                    if($currentstyle!='')
                    {
                        $linkOkstr = $currentstyle;
                        $row['typelink'] = GetOneTypeUrlA($row);
                        $linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);
                        $linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);
                        $likeType .= $linkOkstr;
                    }
                }else
                {
                    $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);
                    if(is_array($dtp2->CTags))
                    {
                        foreach($dtp2->CTags as $tagid=>$ctag){
                            if(isset($row[$ctag->GetName()]))
                            {
                                $dtp2->Assign($tagid,$row[$ctag->GetName()]);
                            }
                            elseif (preg_match('/^sonchannel[0-9]*$/',$ctag->GetName()))
                            {
                                $dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql2));
                            }
                        }
                    }
                    $likeType .= $dtp2->GetResult();
                }
            }
            if($col>1) $likeType .= "</dd>\r\n";
            $GLOBALS['autoindex']++;
        }//Loop Col
        if($col>1)
        {
            $i += $col - 1;
            $likeType .= "    </dl>\r\n";
        }
    }//Loop for $i
    reset($dsql2);
    $dsql->FreeResult();
    return $likeType;
}
function lib_channel_son($ctag,$typeid = 0,$dsql2)
{
    $attlist = "row|100,col|1,currentstyle|";
    FillAttsDefault($ctag->CAttribute->Items,$attlist);
    extract($ctag->CAttribute->Items, EXTR_SKIP);
    $innertext = $ctag->GetInnerText();
    $dsql3 = clone $dsql2;
    $likeType = '';

    //if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid'];
    if($typeid==0) {
        return '';
    }
    $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description
          From net_arctype where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";
    //And id<>'$typeid'
    $dtp2 = new DedeTagParse();
    $dtp2->SetNameSpace("field","[","]");
    $dtp2->LoadSource($innertext);
    $dsql2->SetQuery($sql);
    $dsql2->Execute();
    $line = $row;

    for($i=0;$i < $line;$i++)
    {
        if($col>1) $likeType .= "<dl>\r\n";
        for($j=0;$j<$col;$j++)
        {
            if($col>1) $likeType .= "<dd>\r\n";
            if($row=$dsql2->GetArray())
            {
                $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);
                if(is_array($dtp2->CTags))
                {
                    foreach($dtp2->CTags as $tagid=>$ctag){
                        if(isset($row[$ctag->GetName()]))
                        {
                            $dtp2->Assign($tagid,$row[$ctag->GetName()]);
                        }
                        elseif (preg_match('/^sonchannel[0-9]*$/',$ctag->GetName()))
                        {
                            $dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql3));
                        }
                    }
                }
                $likeType .= $dtp2->GetResult();
            }
            if($col>1) $likeType .= "</dd>\r\n";
        }//Loop Col  
        if($col>1)
        {
            $i += $col - 1;
            $likeType .= "    </dl>\r\n";
        }
    }//Loop for $i
    reset($dsql3);
    $dsql2->FreeResult();
    return $likeType;
}
?>


将以上代码全部替换channel.lib.php文件内容后就可以了,附前端调用的示例:

{dede:channel type='top'}
[field:typename/]
<ul>
[field:sonchannel0]
<li><a href="[field:typelink/]">[field:typename/]</a></li>
[field:sonchannel1]
<li><a href="[field:typelink/]">---[field:typename/]</a></li>
[field:sonchannel2]
<li><a href="[field:typelink/]">===[field:typename/]</a></li>
[field:sonchannel3]
<li><a href="[field:typelink/]">===[field:typename/]</a></li>
[/field:sonchannel3]
[/field:sonchannel2]
[/field:sonchannel1]
[/field:sonchannel0]
</ul>
{/dede:channel}








# 如何投诉seo备案  # typeid  # global  # quot  # 网站设计网站建设升级  # 济源seo优化排名  # 县级政府建设网站  # 东莞抖音seo搜索优化  # 什么是seo推荐  # 大数据推广发布网站有哪些  # 专业营销推广创新方法  # 网站优化推广营销电话  # attlist  # 鄂州网站建设科技公司  # 遂宁双语网站建设方案  # 建设网站用什么app  # 大话西游sf推广网站  # 羊镇短视频推广营销  # 大学生营销推广案例分享  # 网站百度推广工作  # 店铺网站推广怎么做  # 养老网站推广  # 网站优化现在靠谱么  # 周口网络营销推广服务商  # FillAttsDefault  # 织梦CMS教程  # 三级栏目  # 多级栏目  # 嵌套调用  # 织梦  # 宋体  # 让他  # 将以  # 改了  # 就可以  # 栏目中  # 织梦实现三级多级栏目嵌套调用教程  # row  # currentstyle  # son  # col  # type  # reid  # dsql  # envs  # sys  # globals 


相关文章: 滨海新区新站SEO优化案例_SEO优化教程  如何解决福州网站内容重复的问题?_SEO优化教程  唐山高端品牌网站建设公司_唐山高端品牌网站建设_平山seo搜索优化  如何通过时间管理策略优化SEO?_SEO优化教程  简析网站建设的简单适用原则  网站建设应该包括哪些内容?  手机网站应当如何做推广呢?网站建设包括什么?  提高南阳网站排名的SEO策略_SEO优化教程  莆田仙游传统手工艺行业的SEO成功案例有哪些?_SEO优化教程  景区网站建设方案费用_景区网站建设_增城新塘网站制作推广  我们如何快速搭建一个手机网站?手机网站建设要注意什么?  银川SEO软件如何进行竞争对手分析?_SEO优化教程  江门网站响应式设计中色彩适配不同设备的实现路径_网站建设教程  企业网站基本建设外包怎么样?企业网站基本建设外包常见问题有什么?  市南区SEO失败案例教训_SEO优化教程  【网页设计公司网站】网站设计者和网站美工的区别是什么?公司网站首页设计要求怎样写?  有哪些内容优化策略可以帮助提升*SEO排名?_SEO优化教程  昆明高端网站建设公司有哪些_昆明高端网站建设公司_松原外贸网站建站和推广如何做  常熟SEO关键词优化的基本步骤有哪些?_SEO优化教程  企业网站建设开发公司哪家好_企业网站建设开发公司有哪些_金华市网站优化排名  龙江SEO优化服务包括哪些内容?_SEO优化教程  盐城网站建设优化企业推荐_盐城网站建设_娄底网站建设服务器  旅游酒店网站建设怎么做?  广德网站建设_厦门网站建设设计图  永新网站SEO推广技巧_SEO优化教程  品牌网站建设解决方案_品牌网站建设哪家好_全网营销推广收费低  网站建设要遵循哪些原则?  公司网站建设网站有哪些_公司网站建设网站是什么_安阳网站霸屏推广  资源共享平台网站建设怎么做?资源共享平台网站建设多少钱?  北京做网站建设公司有哪些_北京做网站建设公司排名_高邑个人关键词排名要求  芜湖网站建设品牌排行_芜湖网站建设_家装网站营销推广  建公司网站的详细步骤_建公司网站一般多少钱_中证网seo方案  如何评估短视频SEO软件的客户支持与售后服务?_SEO优化教程  AI技术在合肥SEO中的应用趋势如何?_SEO优化教程  如何判断网站建设公司的技术实力与安全能力_网站建设教程  上海政府网站建设方案_上海政府网站建设_价值营销推广案例网站  如何通过视频内容优化提升SEO?_SEO优化教程  【怎么自己做网站】如何制作网站,如何制作自己的网站?申请网站域名后,如何建立完整的网站?如何在网上制作自己的网页?  建设企业网站公司哪里好_建设企业网站的价格_朝阳网站推广费用多少  库尔勒企业网站如何*集成电商功能_网站建设教程  网站建设团队队名_网站建设团队_seo转换sd  【网页制作学习内容】制作网页的软件是什么?网页设计需要学习哪些软件?ui设计训练的内容是什么?  【模板建站】模板建站好不好?模板建站和自助建站有什么区别?  宁波网站建设策划方案公示_宁波网站建设策划方案_seo快速收录意思  成都网站建设如何通过SEO策略助力企业快速获客_网站建设教程  网站建设一般如何收费?  如何通过网站架构优化实现集团化服务协同_网站建设教程  长沙SEO内容更新策略是什么?_SEO优化教程  为什么在网站建设前需要网站策略?  上海浦东网站建设_浦东网站网站建设_英文SEO主管就业前景 


相关栏目: 【 网络营销44070 】 【 网络推广122852 】 【 网络优化116010 】 【 网址导航102054 】 【 网络技术82194 】 【 网络资讯43554