中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Dede實(shí)現(xiàn)同時(shí)一級、二級、三級欄目循環(huán)調(diào)用

2018-10-06    來源:愛站科技

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

本文講述的是Dede實(shí)現(xiàn)同時(shí)一級、二級、三級欄目循環(huán)調(diào)用,需要的朋友可以參考下其中的內(nèi)容詳情。

一、修改文件:\include\taglib目錄下的channel.lib.php,請將以下代碼全部復(fù)制替換上述文件

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?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,description
??????????From?dede_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,description
????????????From?`dede_arctype`?where?reid='$reid'?And?ishidden1?order?by?sortrank?asc?limit?0,$row";
????}
????//And?id'$typeid'
????$needRel?=?false;
????$dtp2?=?new?DedeTagParse();
????$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?.=?"
\r\n";
????????for($j=0;$j$col;$j++)
????????{
????????????if($col>1)?$likeType?.=?"
\r\n";
????????????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']}'";
????????????????}
????????????????//處理同級欄目中,當(dāng)前欄目的樣式
????????????????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->CTags?as?$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?.=?"
\r\n";
????????????$GLOBALS['autoindex']++;
????????}//Loop?Col
????????if($col>1)
????????{
????????????$i?+=?$col?-?1;
????????????$likeType?.=?"????
\r\n";
????????}
????}//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?ishidden1?order?by?sortrank?asc?limit?0,$row";
????//And?id'$typeid'
????$dtp2?=?new?DedeTagParse();
????$dtp2->SetNameSpace("field","[","]");
????$dtp2->LoadSource($innertext);
????$dsql2->SetQuery($sql);
????$dsql2->Execute();
????$line?=?$row;
????for($i=0;$i?$line;$i++)
????{
????????if($col>1)?$likeType?.=?"
\r\n";
????????for($j=0;$j$col;$j++)
????????{
????????????if($col>1)?$likeType?.=?"
\r\n";
????????????if($row=$dsql2->GetArray())
????????????{
????????????????$row['typelink']?=?$row['typeurl']?=?GetOneTypeUrlA($row);
????????????????if(is_array($dtp2->CTags))
????????????????{
????????????????????foreach($dtp2->CTags?as?$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?.=?"
\r\n";
????????}//Loop?Col
????????if($col>1)
????????{
????????????$i?+=?$col?-?1;
????????????$likeType?.=?"????
\r\n";
????????}
????}//Loop?for?$i
????reset($dsql3);
????$dsql2->FreeResult();
????return?$likeType;
}
?>
?

?

二、在模板調(diào)用
實(shí)例:

?

{dede:channel?type='son'?typeid='22'}
??????????????[field:typename/]
????????????????????ul>
????????????????????[field:sonchannel0]
????????????????????li>a?href="http://www.dede58.com/[field:typelink/]">[field:typename/]a>li>
?????????????????????????[field:sonchannel1]
????????????????????????li>a?href="http://www.dede58.com/[field:typelink/]">---[field:typename/]a>li>
?????????????????????????????[field:sonchannel2]
????????????????????????????li>a?href="http://www.dede58.com/[field:typelink/]">===[field:typename/]a>li>
????????????????????????????????[field:sonchannel3]
????????????????????????????????li>a?href="http://www.dede58.com/[field:typelink/]">===[field:typename/]a>li>
?????????????????????????????????[/field:sonchannel3]
?????????????????????????????[/field:sonchannel2]
?????????????????????????[/field:sonchannel1]
????????????????????[/field:sonchannel0]
????????????????????ul>

?{/dede:channel}
?

模板調(diào)用??? [field:sonchannel0] [/field:sonchannel0] 這個(gè)是用來取子欄目用得(使用[sonchannel+數(shù)字] 作為標(biāo)簽名是為了防止嵌套的時(shí)候無法正確解析標(biāo)簽)

這個(gè)的作用就是當(dāng)你的欄目有很多子欄目,無限分級的時(shí)候方便你取子欄目的,更多相關(guān)內(nèi)容請繼續(xù)關(guān)注西部數(shù)碼技術(shù)頻道。

標(biāo)簽: isp 代碼 西部數(shù)碼

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:織夢的聯(lián)動信息類型只能增加一級和三級選擇怎么辦

下一篇:織夢CMS二次開發(fā) 全站收藏總次數(shù)統(tǒng)計(jì)