该dede5.7动态导航下拉菜单的实现代码

评论:dede5.7动态导航下拉菜单的实现代码,需要的朋友可以参考




1。在channel.lib.php taglib文件夹文件更改包括取代我

复制代码代码如下所示:
< PHP
功能lib_channel($标签,refobj美元)
{
全球_sys_globals美元美元美元,ENVS,表;
ATTLIST美元=typeid | 0,瑞德| 0,排| 100,西| 1型|儿子,currentstyle | ;
fillattsdefault($标签-> cattribute ->项目,$ ATTLIST);
提取物($标签-> cattribute ->项目,extr_skip);
元标签-> getinnertext innerText = $();
如果(空($ typeid){ } 'typeid ENVS美元!= 0)
{
typeid =美元美元的'typeid ENVS { };
瑞德=美元美元的'reid ENVS { };
其他{ }
瑞德= 0;
}
如果(合型= =| |型= ='太阳'美元)美元=儿子类型;
如果($ innerText = =)$ innerText = getsystemplets(channel_list .htm);
如果($瑞德= = 0美元typeid > 0)
{
dbrow美元=美元DSQL -> GetOne(瑞德选择从` dnzsw04_arctype ` id是typeid美元);
如果(is_array(dbrow美元美元美元))瑞德dbrow { 'reid};
}
liketype美元=;
如果($ = =最重要的类型)
{
为SQL =选择ID,typename,typedir,isdefault,属于语法,namerule2,描述
从` dnzsw04_arctype `瑞德= 0和隐藏的<> 1阶的sortrank ASC 0美元的限制,行;
}
否则如果($ type 子)
{
/ /如果($ _sys_globals { 'typeid} > 0){ 'typeid typeid =美元美元_sys_globals};
如果($ typeid = = 0){
返回' ';
}
为SQL =选择ID,typename,typedir,isdefault,属于语法,namerule2,描述
从` dnzsw04_arctype `瑞德= $ typeid'and ishidden <> 1阶的sortrank ASC 0美元的限制,行;
}
否则如果($ type = )
{
如果(瑞德= 0){
返回' ';
}
为SQL =选择ID,typename,typedir,isdefault,属于语法,namerule2,描述
从` dnzsw04_arctype `瑞德= $ reid'and ishidden <> 1阶的sortrank ASC 0美元的限制,行;
}
/ / < > $ typeid的ID
新dedetagparse DTP2美元=();
$ DTP2 -> setnamespace(场
$ DTP2 -> LoadSource($ innerText);
dsql2 =克隆DSQL美元美元;
DSQL -> setquery美元($ SQL);
$ DSQL ->执行();
$行= $行;
美元'autoindex} = 0 = {;
($ i = 0;$ i $ $行;$ + +)
{
如果(美元关口> 1)liketype美元- R;
为($ = 0;$ j $;
{
如果(美元关口> 1)liketype美元- R;
如果($行= $ DSQL -> GetArray())
{
如果(合型= =自$行{ 'id' } = = $ typeid) / /列中的处理、立柱式
{
如果($ currentstyle = '!)
{
linkokstr = currentstyle美元美元;
{ } =行'typelink美元的getonetypeurla(合排);
linkokstr美元= str_replace(~ typelink ~
linkokstr美元= str_replace(~ typename ~
liketype = linkokstr美元美元;
}
}其他
{
{ } =美元'typelink排排'typeurl } = {美元的getonetypeurla(合排);
如果(is_array($ DTP2 -> CTags))
{
foreach($ DTP2 ->下tagid美元= > $ CTAg){
如果(isset($行{ $标签-> getName()))))
{
$ DTP2 ->分配(tagid美元美元,排{ $标签-> GetName()});
}
(preg_match( / ^ sonchannel { 0-9 } * $ /标签-> GetName(美元)))
{
美元($ tagid DTP2 ->分配,lib_channel_son(CTAG美元美元,排{ 'id' },dsql2美元));
}
}
}
liketype美元(约合DTP2 -> getResult);
}
}
如果(美元关口> 1)liketype美元- R;
'autoindex'} { $ = + +;
循环队列
如果($ 1)
{
$ I = $ - 1;
liketype美元= R;
}
为$ i循环
复位($ dsql2);
DSQL -> FreeResult(美元);
返回的liketype;
}
功能lib_channel_son(CTAG typeid = 0美元,美元,美元dsql2)
{
行| ATTLIST美元= 100,西| 1,currentstyle | ;
fillattsdefault($标签-> cattribute ->项目,$ ATTLIST);
提取物($标签-> cattribute ->项目,extr_skip);
元标签-> getinnertext innerText = $();
dsql3 =克隆dsql2美元美元;
liketype美元=;
/ /如果($ _sys_globals { 'typeid} > 0){ 'typeid typeid =美元美元_sys_globals};
如果($ typeid = = 0){
返回' ';
}
为SQL =选择ID,typename,typedir,isdefault,属于语法,namerule2,描述
从` dnzsw04_arctype `瑞德= $ typeid'and ishidden <> 1阶的sortrank ASC 0美元的限制,行;
/ / < > $ typeid的ID
新dedetagparse DTP2美元=();
$ DTP2 -> setnamespace(场
$ DTP2 -> LoadSource($ innerText);
dsql2美元-> setquery($ SQL);
dsql2美元->执行();
$行= $行;
($ i = 0;$ i $ $行;$ + +)
{
如果(美元关口> 1)liketype美元- R;
为($ = 0;$ j $;
{
如果(美元关口> 1)liketype美元- R;
如果($行= dsql2美元-> GetArray())
{
{ } =美元'typelink排排'typeurl } = {美元的getonetypeurla(合排);
如果(is_array($ DTP2 -> CTags))
{
foreach($ DTP2 ->下tagid美元= > $ CTAg){
如果(isset($行{ $标签-> getName()))))
{
$ DTP2 ->分配(tagid美元美元,排{ $标签-> GetName()});
}
(preg_match( / ^ sonchannel { 0-9 } * $ /标签-> GetName(美元)))
{
美元($ tagid DTP2 ->分配,lib_channel_son(CTAG美元美元,排{ 'id' },dsql3美元));
}
}
}
liketype美元(约合DTP2 -> getResult);
}
如果(美元关口> 1)liketype美元- R;
循环队列
如果($ 1)
{
$ I = $ - 1;
liketype美元= R;
}
为$ i循环
复位($ dsql3);
dsql2美元-> FreeResult();
返回的liketype;
}
>

2。电话
这是我所调用的代码

复制代码代码如下所示:
{dede:channel typeid='1'}

{场:typename / }



{ } {场:场:sonchannel0 typename / } { /领域:sonchannel0 }



{ /迪迪:通道}