找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 161|回复: 0

[cms教程] Dede实现嵌套获取栏目及其子栏目列表

[复制链接]

该用户从未签到

发表于 2021-7-12 12:54:52 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
因为时间仓促可能有些不成熟 这里只是抛砖引玉了
         
        修改 channerl.lib.php
       
       
               
                       
                               
                                       
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 && $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'
$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 1) $likeType .= "\r\n";
for($j=0;$j1) $likeType .= "\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);
$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 ('sonchannel' == $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
$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();
$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 1) $likeType .= "\r\n";
for($j=0;$j1) $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 ('sonchannel' == $ctag->GetName())
{
$dtp2->Assign($tagid,lib_channel_son($ctag,$row['id',,$dsql2));
}
}
}
$likeType .= $dtp2->GetResult();
}
if($col>1) $likeType .= "\r\n";
}//Loop Col
if($col>1)
{
$i += $col - 1;
$likeType .= " \r\n";
}
}//Loop for $i
$dsql2->FreeResult();
return $likeType;
}
?>
                               
                       
               
       
模板调用


       
               
                       
                               
{dede:channel type='son' typeid='14'}
[url=,[field:typename/,[/url]

[field:sonchannel,
[*,[url=,[field:typename/,[/url]
[/field:sonchannel,

{/dede:channel}
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-11-2 06:36

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表