织梦怎么添加类目 织梦dedecms如何调用指定三级子栏目或多个栏目导航

软件教程 2024-02-11 07:08:13

拷贝<?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(); $cacheid=trim($cacheid);if($cacheid!=){ $likeType=GetCacheBlock($cacheid);if($likeType !=)return $likeType;} $reid=0; $topid=0;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 dede_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 dede_arctype where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row";}elseif($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 dede_arctype where reid=$typeid And ishidden<>1 order by sortrank asc limit 0,$row";}elseif($type=="self"){if($reid==0){return;} $sql="Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description From `dede_arctype` where reid=$reid And ishidden<>1 order by sortrank asc limit 0,$row";}//And id<>$typeid $needRel=false; $dtp2=newDedeTagParse(); $dtp2->SetNameSpace("field","[","]"); $dtp2->LoadSource($innertext); $dsql2=clone $dsql; $dsql->SetQuery($sql); $dsql->Execute(); $line=$row;//检查是否有子版块,并返回rel提示(用于二级菜单)if(ereg(:rel, $innertext)) $needRel=true;if(empty($sql))return; $dsql->SetQuery($sql); $dsql->Execute(); $totalRow=$dsql->GetTotalRow(); $GLOBALS[autoindex]=0;for($i=0;$i < $line;$i++){if($col>1) $likeType .="<dl>\r ";for($j=0;$j<$col;$j++){if($col>1) $likeType .="<dd>\r ";if($row=$dsql->GetArray()){ $row[sonids]=$row[rel]=;if($needRel){ $row[sonids]=GetSonIds($row[id],0,false);if($row[sonids]==) $row[rel]=;else $row[rel]=" rel=dropmenu{$row[id]}";}//处理同级版块中,当前版块的样式if(($row[id]==$typeid ||($topid==$row[id]&& $type==top))&&$currentstyle!=){if($currentstyle!=){ $linkOkstr=$currentstyle; $row[typelink]=GetOneTypeUrlA($row); $linkOkstr=str_replace("~rel~",$row[rel],$linkOkstr); $linkOkstr=str_replace("~id~",$row[id],$linkOkstr);$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->CTagsas $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 "; $GLOBALS[autoindex]++;}//Loop Colif($col>1){ $i +=$col -1;$likeType.=" </dl>\r ";}}//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 dede_arctype where reid=$typeid And ishidden<>1 order by sortrank asc limit 0,$row";//And id<>$typeid $dtp2=newDedeTagParse(); $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 ";for($j=0;$j<$col;$j++){if($col>1) $likeType .="<dd>\r ";if($row=$dsql2->GetArray()){ $row[typelink]=$row[typeurl]=GetOneTypeUrlA($row);if(is_array($dtp2->CTags)){foreach($dtp2->CTagsas $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 ";}//Loop Colif($col>1){ $i +=$col-1; $likeType .=" </dl>\r ";}}//Loop for $i reset($dsql3); $dsql2->FreeResult();return $likeType;}?>

发表回复