for($j=0;$j<$col;$j++)
{
if($col>I.)$likeType.=
";
if($row=$dsqlII->GetArray" />

"景先生毕设|www.jxszl.com

织梦DEDECMS栏目获取无限子分类的方法

2022-10-29 16:29编辑: www.jxszl.com景先生毕设
织梦DEDECMS栏目获取无限子分类的方法.

提示:首先要把/include/taglib/channerl.lib.php文件的代码修改成以下的:

for($i=0;$i<$line;$i++)
{
if($col>I.)$likeType.=<

 更多精彩就在: 51免费论文网|www.jxszl.com 
dl> ";
for($j=0;$j<$col;$j++)
{
if($col>I.)$likeType.=
";
if($row=$dsqlII->GetArray())
{
$row[typelink]=$row[typeurl]=GetOneTypeUrlA($row);
if(is_array($dtpII->CTags))
{
foreach($dtpII->CTagsas$tagid=>$ctag){
if(isset($row[$ctag->GetName()]))
{
$dtpII->Assign($tagid,$row[$ctag->GetName()]);
}
elseif(preg_match(‘/^sonchannel[0-IX]*$/’,$ctag->GetName()))
{
$dtpII->Assign($tagid,lib_channel_son($ctag,$row[id],$dsqlIII));
}
}
}
$likeType.=$dtpII->GetResult();
}
if($col>I.)$likeType.=
";
}//LoopCol
if($col>I.)
{
$i+=$col–I.;
$likeType.=" ";
}
}//Loopfor$i
reset($dsqlIII);
$dsqlII->FreeResult();
return$likeType;
}
?>

模板里面用[field:sonchannel0][/field:sonchannel0]调用,这个是用来取子栏目用得(使用[sonchannel+数字]作为标签名是为了防止嵌套的时候无法正确解析标签),这个的作用就是当你的栏目有很多子栏目无限分级的时候方便你取子栏目的.实例I.下:


{dede:channeltype=’son’typeid=’I.VI′}
  • [field:typename/]

      [field:sonchannel0]
    • [field:typename/]

        [field:sonchannelI.]
      • [field:typename/]

          [field:sonchannelII]
        • [field:typename/]

            [field:sonchannelIII]
          • [field:typename/]

          • [/field:sonchannelIII]


        • [/field:sonchannelII]


      • [/field:sonchannelI.]


    • [/field:sonchannel0]


  • {/dede:channel}


    以上typeid中的数字改成你的大分类的ID即可,因为在DEDE官方论坛没找到,所以这里发上来,希望能方便有用者.
    注意:未免出错修改文件前请做好备份,以上代码可能有些引号又被自动转成全角的了,请修改成半角的.


    原文链接:http://www.jxszl.com/biancheng/dedecms/75439.html