dedechannerl标签无限子分类及多层子目录实现方法.docx
文本预览下载声明
{dede: channerl}标签无限子分类及多层子目录实现方法{dede: channerl}获取栏目及子栏目分类修改 channerl.lib.php 在include\taglib下 修改了一下 支持无限嵌套?phpfunction 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 $typeid0){$dbrow = $dsql-GetOne(Select reid From xkzzz_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,descriptionFrom xkzzz_arctype where reid=0 And ishidden1 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,descriptionFrom xkzzz_arctype where reid=$typeid And ishidden1 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,descriptionFrom `xkzzz_arctype` where reid=$reid And ishidden1 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($col1) $likeType .= dl\r\n;for($j=0;$j$col;$j++){if($col1) $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);$l
显示全部