`
sibyl_pisces
  • 浏览: 145960 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

dede嵌套获取栏目及其子栏目列表

 
阅读更多

 

修改 channerl.lib.php
<?php
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();
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 ishidden<>1 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 ishidden<>1 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 ishidden<>1 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 < $line;$i++)
{
if($col>1) $likeType .= "<dl>\r\n";
for($j=0;$j<$col;$j++)
{
if($col>1) $likeType .= "<dd>\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 .= "</dd>\r\n";
$GLOBALS['autoindex']++;
}//Loop Col
if($col>1)
{
$i += $col - 1;
$likeType .= " </dl>\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 ishidden<>1 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 .= "<dl>\r\n";
for($j=0;$j<$col;$j++)
{
if($col>1) $likeType .= "<dd>\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 .= "</dd>\r\n";
}//Loop Col
if($col>1)
{
$i += $col - 1;
$likeType .= " </dl>\r\n";
}
}//Loop for $i
$dsql2->FreeResult();
return $likeType;
}
?>

模板调用

{dede:channel type='son' typeid='14'}
<div><a href="[field:typelink/]">[field:typename/]</a></div>

<ul>
[field:sonchannel]
<li><a href="[field:typelink/]">[field:typename/]</a></li>
[/field:sonchannel]
</ul>
{/dede:channel}

 

http://www.23sc.cn/Web/Jc/Cms/2011/10/7809.html

 

分享到:
评论

相关推荐

    DEDE栏目添加图片

    在DEDE CMS中,栏目是一种组织内容的方式,它可以看作是网站的一个子频道或者分类,用于整理和展示相关的文章或信息。栏目不仅可以包含文本内容,还可以包括图片、视频等多种媒体形式。 添加DEDE栏目图片的步骤通常...

    dede批量建子栏目

    标题中的“dede批量建子栏目”指的是使用DEDECMS(织梦内容管理系统)进行大量二级栏目的自动化创建。DEDECMS是一款广泛使用的开源CMS,它允许用户通过后台管理界面轻松构建网站结构,包括创建栏目和子栏目。批量建...

    dede5.7增加栏目图片banner或栏目图片

    标题 "dede5.7增加栏目图片banner或栏目图片" 指的是在织梦(DedeCMS)5.7版本中对网站栏目的功能增强,特别是关于栏目图像的添加和编辑。织梦内容管理系统(DedeCMS)是一款基于PHP+MySQL技术开发的开源CMS系统,...

    dede5.7栏目增加缩略图

    在DEDE5.7中,栏目是一个组织内容的重要方式,每个栏目可以包含多个子栏目或文章,用于分类展示网站信息。 这个"dede5.7栏目增加缩略图"插件的核心功能是扩展了DEDE5.7原有的栏目管理功能,允许管理员在创建或编辑...

    DEDE栏目内容调用成企业简介类的单页面如何实现

    - 继续在"常规选项"下设置"栏目交叉"为"自动获取同名栏目内容",确保内容能被正确地调用。 - 在"高级选项"里,设置"列表模板"为`{style}/danye.htm`,这里的`danye.htm`是你刚才创建的新模板的文件名。 最后,...

    DEDE频道页显示所有子栏目名称与简介

    简单介绍一下,做织梦DEDE程序的人,都知道,如果做频道封面页,最麻烦的就是各个封面,里面要显示其子栏目的名称,简介缩略图,如果运气不好,如果有10个封面页,就得做10个模板,本人亲测,解决了做10个模板的问题...

    dede增加栏目图片banner或栏目图片

    注意事项:如果你只给父栏目添加了图片,而子栏目想用父栏目图片请使用下面的方法调用: 复制代码 &lt;img src="{dede:field.typeid runphp='yes'}$ID = @me; $sql = "relID = "$row[reid]"sql = "SELECT `arcpic` ...

    织梦的一个列表嵌套循环读取

    为了实现嵌套循环,我们可以在模板中先使用`{dede:channel}`标签获取顶级分类,然后在每个分类内部再嵌套一个`{dede:arclist}`标签来读取该分类下的产品。例如: ```html {dede:channel type='top' row='4'} &lt;h3&gt;{...

    DEDE内容页调用栏目的SEO标题、描述、关键字的方法

    提供的代码将默认的描述标签替换为动态获取栏目描述的代码,同样使用了`{dede:field...}`标签,通过查询`dede_arctype`表中的`description`字段,获取到栏目对应的描述信息。 3. **关键词(Meta Keywords)**:...

    dede5.7每个栏目增加缩略图

    修改了以前各个栏目是同一缩略图的bug 各个栏目可以上传不同的缩略图 测试通过 贡献给大家 dede5 7栏目增加缩略图修改正子栏目缩略图2013 10 21 rar 更多技术文档我的博客:http: l00365 blog 163 com

    织梦dede 加强获取arcurl各种情况 自定义函数

    自定义函数列表##################################### 1.function getUrlByID($ID) $ID--栏目ID 根据栏目id判断如果此栏目下只有一篇文章则返回这篇文章的arcurl 否则返回栏目typeurl 2.function ...

    织梦N级栏目树调用

    1. **织梦标签系统**:织梦采用自定义标签的方式来实现页面内容的调用和展示,如`{dede:channel type='son'}`标签用于获取当前栏目的子栏目。在实现N级栏目树时,我们需要掌握如何嵌套和组合这些标签,以递归地获取...

    dede5.7修复自由列表不能获取多个关键字

    标题 "dede5.7修复自由列表不能获取多个关键字" 指的是在织梦内容管理系统(DEDECMS,简称dede)的5.7版本中,存在一个关于自由列表功能的问题,即无法检索和显示包含多个关键字的内容。这个问题可能涉及到网站内容...

    dede搜索页面调用栏目文章需要修改的文件

    dede搜索页面调用栏目文章需要修改的文件, arc.searchview.class.php

    dede5.7栏目增加缩略图(修正版)

    修正版应该修复了这个问题,确保所上传的缩略图能在前端页面正常显示,无论是在栏目列表还是单独的栏目详情页。 3. 数据库结构调整:为了存储和检索缩略图信息,修正版可能修改了DEDE5.7的数据库结构,新增了用于...

    dede标签大全_dede标签生成工具

    1. 常用内容标签:如`{dede_archives}`用于获取文章内容,`{dede_column}`用于获取栏目信息,`{dede_link}`用于链接管理,`{dede_image}`则处理图片标签,它们是构建DEDE网站的基础。 2. 条件判断标签:如`{dede_if...

    360批量增加DEDE子目录助手

    【标题】"360批量增加DEDE子目录助手"涉及到的是一个针对织梦内容管理系统(DedeCMS)的辅助工具。织梦内容管理系统是一款基于PHP+MySQL开发的开源CMS,广泛应用于网站建设和管理。这款360批量增加DEDE子目录助手...

    dede栏目当单页面使用企业站元素贴心服务(Ahua原创)2.pdf

    4. 这里的`{dede:ahuagetarc}`标签是Ahua开发的,它具有DEDE CMS内置的`arclist`标签的所有功能,可以方便地在任何页面获取栏目下的特定文章或最底部的文章内容,非常适合企业站的单页应用。 5. 注意,此标签是收费...

    dede织梦自动更新首页栏目页HTML插件UTF-8版

    2、 自动更新网站首页和需要更新的栏目页,需要更新的栏目页是有新文章生成的栏目,没有新文章更新的栏目不会更新,提高了更新的性能。 3、 可以按照栏目或者总数更新文章。按照栏目更新文章,每个栏目更新指定篇数...

Global site tag (gtag.js) - Google Analytics