织梦获取多级栏目的方法

今天偶尔在群里面发现这个织梦获取多级栏目的方法代码,虽然不清楚到底怎么使用,但毕竟是有点用的代码,算是收集一下,织梦获取多级栏目的修改方法如下:
function getall($id){    global $dsql;    $sql = "SELECT id,typename,typedir,isdefault,ispart,defaultname,    namerule2,moresite,siteurl,sitepath FROM `dede_arctype` WHERE reid=$id";    $dsql->SetQuery($sql);    $dsql->Execute();    while($row = $dsql->GetArray()) {        $row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);        $arrs[] = $row;    }    for($i=0;$i<count($arrs);$i++){        $row2 = $dsql->GetOne("SELECT id FROM `dede_arctype` WHERE reid='$arrs[$i][id]'");        if($row2['id'] > 0){            $arrs[$i]['son'] = getall($arrs[$i][id]);        }    }    return $arrs;}
把上面的代码放入include/extend.func.php文件夹里面,顺便说一下,织梦默认的增加函数就是讲函数代码放入这个PHP文件,然后在模板需要调用代码的地方添加:
{dede:php}$res = getall(5);$html = '';for($i=0;$i<count($res);$i++){    $html .="<li class='dm_on'><a onclick='dm_sidenav(/"mua".$res[$i][id]."/",this)'      href='###' rurl='".$res[$i][typeurl]."'>".$res[$i][typename]."</a>";        if(!empty($res[$i][son])){            $lv2 = $res[$i][son];            $html .="<ul id='mua".$res[$i][id]."'>";            for($j=0;$j<count($lv2);$j++){              $html .="<li><a onclick='dm_sidenav(/"muoa".$lv2[$j][id]."/",this)'               rurl='".$lv2[$j][typeurl]."'>".$lv2[$j][typename]."</a>";                  if(!empty($lv2[$j][son])){                     $lv3 = $lv2[$j][son];                     $html .="<ul id='muoa".$lv2[$j][id]."' style='display:none;'>";                        for($u=0;$u<count($lv3);$u++){                      $html .="<li><a href='".$lv3[$u][typeurl]."'>".$lv3[$u][typename]."</a> </li>";                        }                     $html .="</ul>";                  }             $html .="</li>";            }            $html .='</ul>';         }    $html .='</li>';}echo $html;{/dede:php}
代码格式是最简单的,样式大家可以修改,今天的织梦教程就发布到这里,感谢大家来到织梦无忧网,若是你感觉着教程对你有所帮助,请分享给朋友们。
支付宝扫码打赏 微信扫码打赏

如果本文对你有帮助,欢迎打赏本站

喜欢 ()or分享
    匿名评论
  • 评论
人参与,条评论