dedecms织梦调用三级四级无限级栏目教程

站长新闻 12-05 浏览 134

调用三级四级无限级栏目效果图

dedecms织梦调用三级四级无限级栏目教程


第一种自定义函数递归法
适用于前端简单样式用户,在 include/extend.func.php 最下面添加   
  /**
    * 取出所有分类
    * @param     int   $channel  频道ID
    * @return    string  www.80zhan.com织梦模板下载
    * 调用{dede:global.getalltype function='getalltype()'/}
    */
 
    function getalltype($channel=0,$line=10)
    {
             $line = empty($line) ? 10 : $line;
             global $dsql,$result;
            
             $dsql->SetQuery("SELECT id,typename,typenamedir,typelitpic,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
                FROM `dede_arctype` WHERE reid='$channel' And ishidden<>1 order by sortrank asc limit 0, $line ");
             $dsql->Execute($channel);
             if($dsql->GetTotalRow($channel)>0)
             {
                       $result .= "

    \r\n";
                           while($row = $dsql->GetArray($channel))
                           {
                                    $id = $row['id'];
                                    $typename = $row['typename'];
                                    $typelink = GetOneTypeUrlA($row);
     
                                    $result .= "      
  • \r\n";
                                    $result .= "                {$typename}\r\n";
                                    getalltype($id,$line);
                                    $result .= "      
  • \r\n";
                           }
                $result .= "
\r\n";
             }
             return $result;
    }
前台模板调用标签
{dede:global.getalltype function='getalltype()'/}
第二种标签嵌套法
适用于只调用出一级、二级、三级、四级的用户,直接在模板里写   

                 {dede:channelartlist row=7 typeid=top}
                
                

  •                        {dede:field name='typename'/}
                          

                             {dede:channel type=son noself=yes}
                            
                            

    •                        [field:typename/]
                            

           
            [field:id runphp=yes]
            global $dsql;
            $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype`
            WHERE reid=@me And ishidden<>1 order by sortrank asc limit 0,10";
            $dsql->SetQuery($sql);
            $dsql->Execute('t');
            $result = '';
            while($row = $dsql->GetArray('t'))
            {
                $typename = $row['typename'];
                $typeurl = GetOneTypeUrlA($row);
            $result .= <<< TPL
           
      • {$typename}

      •     TPL;
            }
            @me = $result;
            [/field:id]
                              

                            

    •                        {/dede:channel}
                            

                
  •   
                 {/dede:channelartlist}
       

上面的是输出到三级栏目,如果需要四级栏目可以这样写   

    [field:id runphp=yes]
    global $dsql;
    $sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `dede_arctype`
    WHERE reid=@me And ishidden<>1 order by sortrank asc limit 0,10";
    $dsql->SetQuery($sql);
    $dsql->Execute('t');
    $result = '';
    while($row = $dsql->GetArray('t'))
    {
        $row['typeurl'] = GetOneTypeUrlA($row);
             $result .= "{$row[typename]}";
             //四级
             $nsql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
             FROM `dede_arctype` WHERE reid=$row[id] And ishidden<>1 order by sortrank asc limit 0,10";
             $dsql->SetQuery($nsql);
             $dsql->Execute('n');
             while($nrow = $dsql->GetArray('n'))
             {
                       $nrow['typeurl'] = GetOneTypeUrlA($nrow);
                       $result .= "{$nrow[typename]}";
             }
    }
    @me = $result;
    [/field:id]
 

标签:
本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

热门推荐