织梦获取多级栏目的方法

2017-04-13 14:29:05 dedecms

今天偶尔在群里面发现这个

织梦

获取多级栏目的方法

代码,虽然不清楚到底怎么使用,但毕竟是有点用的代码,算是收集一下,织梦获取多级栏目的修改方法如下:

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}

代码格式是最简单的,样式大家可以修改,今天的

织梦教程

就发布到这里,感谢大家来到织梦无忧网,若是你感觉着教程对你有所帮助,请分享给朋友们。