dede5.7 动态导航下拉菜单的实现代码
<p><span style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'>1.修改 include下面taglib文件夹里的channel.lib.php文件 替换成我的</span></p>
<div class="msgheader" style='margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 21.6px; clear: both; border-width: 1px; border-style: solid; border-color: rgb(0, 153, 204); background: rgb(246, 251, 255); overflow: hidden; font-family: tahoma, arial, "Microsoft YaHei";'>
<p class="right">
<span><u>复制代码</u></span></p>
<p>
代码如下:</p>
</div>
<p class="msgborder" style='margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; font-family: tahoma, arial, "Microsoft YaHei";'>
<br>
<?php<br>
function lib_channel(&$ctag,&$refObj)<br>
{<br>
global $_sys_globals,$envs,$dsql;<br>
$attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|";<br>
FillAttsDefault($ctag->CAttribute->Items,$attlist);<br>
extract($ctag->CAttribute->Items, EXTR_SKIP);<br>
$innertext = $ctag->GetInnerText();<br>
if(empty($typeid) && $envs['typeid']!=0)<br>
{<br>
$typeid = $envs['typeid'];<br>
$reid = $envs['reid'];<br>
}else{<br>
$reid=0;<br>
} <br>
if($type==''||$type=='sun') $type="son";<br>
if($innertext=='') $innertext = GetSysTemplets("channel_list.htm");<br>
if($reid==0 && $typeid>0)<br>
{<br>
$dbrow = $dsql->GetOne("Select reid From <a href="mailto:`dede_arctype">`dede_arctype</a>` where id='$typeid' ");<br>
if(is_array($dbrow)) $reid = $dbrow['reid'];<br>
}<br>
$likeType = '';<br>
if($type=='top')<br>
{<br>
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,description<br>
From <a href="mailto:`dede_arctype">`dede_arctype</a>` where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row";<br>
}<br>
else if($type=="son")<br>
{<br>
//if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid'];<br>
if($typeid==0) {<br>
return '';<br>
}<br>
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,description<br>
From <a href="mailto:`dede_arctype">`dede_arctype</a>` where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";<br>
}<br>
else if($type=="self")<br>
{<br>
if($reid==0) {<br>
return '';<br>
}<br>
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,description<br>
From <a href="mailto:`dede_arctype">`dede_arctype</a>` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row";<br>
}<br>
//And id<>'$typeid'<br>
$dtp2 = new DedeTagParse();<br>
$dtp2->SetNameSpace("field","[","]");<br>
$dtp2->LoadSource($innertext);<br>
$dsql2 = clone $dsql;<br>
$dsql->SetQuery($sql);<br>
$dsql->Execute();<br>
$line = $row;<br>
$GLOBALS['autoindex'] = 0;<br>
for($i=0;$i < $line;$i++)<br>
{<br>
if($col>1) $likeType .= "<dl>\r\n";<br>
for($j=0;$j<$col;$j++)<br>
{<br>
if($col>1) $likeType .= "<dd>\r\n";<br>
if($row=$dsql->GetArray())<br>
{<br>
if($type=='self' && $row['id']==$typeid) //处理同级栏目中,当前栏目的样式<br>
{<br>
if($currentstyle!='')<br>
{<br>
$linkOkstr = $currentstyle;<br>
$row['typelink'] = GetOneTypeUrlA($row);<br>
$linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr);<br>
$linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr);<br>
$likeType .= $linkOkstr;<br>
}<br>
}else<br>
{<br>
$row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);<br>
if(is_array($dtp2->CTags))<br>
{<br>
foreach($dtp2->CTags as $tagid=>$ctag){<br>
if(isset($row[$ctag->GetName()]))<br>
{<br>
$dtp2->Assign($tagid,$row[$ctag->GetName()]);<br>
}<br>
elseif (preg_match('/^sonchannel*$/',$ctag->GetName()))<br>
{<br>
$dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql2));<br>
}<br>
}<br>
}<br>
$likeType .= $dtp2->GetResult();<br>
}<br>
}<br>
if($col>1) $likeType .= "</dd>\r\n";<br>
$GLOBALS['autoindex']++;<br>
}//Loop Col<br>
if($col>1)<br>
{<br>
$i += $col - 1;<br>
$likeType .= " </dl>\r\n";<br>
}<br>
}//Loop for $i<br>
reset($dsql2);<br>
$dsql->FreeResult();<br>
return $likeType;<br>
}<br>
function lib_channel_son($ctag,$typeid = 0,$dsql2)<br>
{<br>
$attlist = "row|100,col|1,currentstyle|";<br>
FillAttsDefault($ctag->CAttribute->Items,$attlist);<br>
extract($ctag->CAttribute->Items, EXTR_SKIP);<br>
$innertext = $ctag->GetInnerText();<br>
$dsql3 = clone $dsql2;<br>
$likeType = '';<br>
//if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid'];<br>
if($typeid==0) {<br>
return '';<br>
}<br>
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,description<br>
From <a href="mailto:`dede_arctype">`dede_arctype</a>` where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row";<br>
//And id<>'$typeid'<br>
$dtp2 = new DedeTagParse();<br>
$dtp2->SetNameSpace("field","[","]");<br>
$dtp2->LoadSource($innertext);<br>
$dsql2->SetQuery($sql);<br>
$dsql2->Execute();<br>
$line = $row;<br>
for($i=0;$i < $line;$i++)<br>
{<br>
if($col>1) $likeType .= "<dl>\r\n";<br>
for($j=0;$j<$col;$j++)<br>
{<br>
if($col>1) $likeType .= "<dd>\r\n";<br>
if($row=$dsql2->GetArray())<br>
{<br>
$row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row);<br>
if(is_array($dtp2->CTags))<br>
{<br>
foreach($dtp2->CTags as $tagid=>$ctag){<br>
if(isset($row[$ctag->GetName()]))<br>
{<br>
$dtp2->Assign($tagid,$row[$ctag->GetName()]);<br>
}<br>
elseif (preg_match('/^sonchannel*$/',$ctag->GetName()))<br>
{<br>
$dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql3));<br>
}<br>
}<br>
}<br>
$likeType .= $dtp2->GetResult();<br>
}<br>
if($col>1) $likeType .= "</dd>\r\n";<br>
}//Loop Col<br>
if($col>1)<br>
{<br>
$i += $col - 1;<br>
$likeType .= " </dl>\r\n";<br>
}<br>
}//Loop for $i<br>
reset($dsql3);<br>
$dsql2->FreeResult();<br>
return $likeType;<br>
}<br>
?></p>
<p>
<br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><span style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'>2.调用</span><br style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'><span style='font-family: tahoma, arial, "Microsoft YaHei"; font-size: 14px;'>这是我调用的代码 </span></p>
<div class="msgheader" style='margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 21.6px; clear: both; border-width: 1px; border-style: solid; border-color: rgb(0, 153, 204); background: rgb(246, 251, 255); overflow: hidden; font-family: tahoma, arial, "Microsoft YaHei";'>
<p class="right">
<span><u>复制代码</u></span></p>
<p>
代码如下:</p>
</div>
<p class="msgborder" style='margin: 0px auto 3px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; clear: both; border-right: 1px solid rgb(0, 153, 204); background: rgb(221, 237, 251); overflow: hidden; border-left: 1px solid rgb(0, 153, 204); word-break: break-all; border-bottom: 1px solid rgb(0, 153, 204); word-wrap: break-word; font-family: tahoma, arial, "Microsoft YaHei";'>
<br>
{dede:channel typeid='1'}<br>
<li><br>
<a class="" href="" title=""><br>
<img src="***.gif" /></a><br>
<div class="sub"><br>
<ul> <br>
<li><a href=""></a></li><br>
</ul><br>
</div><br>
</li><br>
{/dede:channel}</p>
頁:
[1]