千家信息网

用dedecms专题模板的方法

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,小编给大家分享一下用dedecms专题模板的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!dedecms专题模板怎么用
千家信息网最后更新 2026年10月31日用dedecms专题模板的方法

小编给大家分享一下用dedecms专题模板的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

dedecms专题模板怎么用?

DeDeCms的专题相关信息bbs上相对较少,之前查阅了很多资料都未找到其解决方案

推荐学习:织梦cms

无柰只有靠自己动手丰衣足食;在官方的版本上有这样的一段话:

1、文章列表用ID1,ID2,ID3这样形式分开,系统会自动排除不同节点的相同文章;

2、关于单条记录模板里的[field:fieldname /]标记的使用,请参考关于系统帮助关于 arclist 标记的说明;

3、节点ID是节点的唯一标识,允许在专题模板中用{dede:specnote id='标识'/}这样来表示单个节点。

4、正常的情况下,每个节点显示的是"节点文章列表"里的文档,如果你指定为"自动获取模式",那么必须指定关键字和栏目ID。

可是经测试{dede:specnote id='标识'/}这个并没有升效;因此开始解决这个,以替换掉原来比较死板{dede:field name='note'/}标签;

举例说明:

我要分两栏显示不同节点的文章,目前用"note"就不能实现,只能是同一节点分栏,难免就显得有些捌扭,不够灵活。

下面我就把自己解决方案写下供同学们参考,首先得申明一点,只能是实现了功能,可算法不一定是最好的,因为我不太熟悉DEDECMS代码且没有认真的研究过,希望大家海涵!

步骤1:

文件位置:{include/inc_archives_view.php}

代码如下:

//广告标记//-----------------------else if($ctag->GetName()=="myad"){$this->dtp->Assign($tagid,$this->PartView->GetMyAd($typeid,$ctag->GetAtt("name")));}// 专题标识// by phpfanselse if($ctag->GetName()=="specnote"){$this->dtp->Assign($tagid,$this->ChannelUnit->GetSpecList('',$this->ChannelUnit->specrule,$ctag->GetAtt("id")));}

  介绍:{在广告标记下增加专题标识}这样专题文章列表页就可以识别specnote标签了

步骤2:

文件位置:{include/inc_channel_unit.php}

var $specrule;//-------------//php5构造函数//-------------

介绍:增加了对$pecrule变量的定义

步骤3:

文件位置:{include/inc_channel_unit.php}

代码如下:

else if($ftype=="specialtopic"){$this->specrule = $fvalue;$fvalue = $this->GetSpecList($fname,$fvalue); }

   介绍:这儿增加了$this->specrule = $fvalue;这句,以便获取addonspec表的note字段数据;

步骤4:

  文件位置:{include/inc_channel_unit.php}

代码如下:

//获得专题文章的列表//--------------------------------function GetSpecList($fname,$noteinfo,$noteid=""){if(!isset($GLOBALS['__SpGetArcList'])) require_once(dirname(__FILE__)."/inc/inc_fun_SpGetArcList.php");if($noteinfo=="") return "";$rvalue = "";$tempStr = GetSysTemplets("channel/channel_spec_note.htm");$dtp = new DedeTagParse(); 

$dtp->LoadSource($noteinfo);if(is_array($dtp->CTags)){foreach($dtp->CTags as $k=>$ctag){$notename = $ctag->GetAtt("name");if($noteid!="" && $ctag->GetAtt("noteid")!=$noteid){ continue; } //指定名称的专题节点if($noteid!="" && $ctag->GetAtt("noteid")===$noteid) {$isauto = $ctag->GetAtt("isauto");$idlist = trim($ctag->GetAtt("idlist"));$rownum = trim($ctag->GetAtt("rownum"));if(empty($rownum)) $rownum = 40;$keywords = "";$stypeid = 0;

if($isauto==1){$idlist = "";$keywords = trim($ctag->GetAtt("keywords"));$stypeid = $ctag->GetAtt("typeid");}

if(trim($ctag->GetInnerText())!="") $listTemplet = $ctag->GetInnerText();else $listTemplet = GetSysTemplets("spec_arclist.htm");$idvalue = SpGetArcList($this->dsql,$stypeid,$rownum,$ctag->GetAtt("col"),$ctag->GetAtt("titlelen"),$ctag->GetAtt("infolen"),$ctag->GetAtt("imgwidth"),$ctag->GetAtt("imgheight"),"all","default",$keywords,$listTemplet,100,0,$idlist);

$notestr = str_replace("~notename~",$notename,$tempStr);$notestr = str_replace("~spec_arclist~",$idvalue,$notestr);$rvalue .= $notestr;if($noteid!="" && $ctag->GetAtt("noteid")==$noteid){ break; }}}}$dtp->Clear();return $rvalue;}

介绍:有些小改动,自己对比一下就清楚了,这儿就不再哆嗦了

步骤5:

说明: 原{dede:field name='note'/}标签失效了,如果要用的朋友请自行修改步骤四部份。。

以上是用dedecms专题模板的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

专题 节点 文章 步骤 模板 标识 代码 位置 文件 标签 标记 参考 方法 不同 内容 广告 方案 篇文章 系统 解决方案 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州紫鲸互联网科技有限公司 互联网科技官网 厦门中拓互联网络科技有限公司 圆梦互联网科技 互联网络科技有限公司 互联网科技集团 互联网与未来科技 艾特科技互联网 极限挑战互联网科技 博兴的互联网电子科技公司 玖二柒互联网科技公司待遇 互联网和黑科技的看法 企晟互联网信息科技有限公司 明优互联网科技有限公司 中和天地互联网科技有限公司 上海钢联属于互联网科技股吗 宁波跨境商互联网科技有限公司 普陀区互联网教育科技管理办法 深圳互联网科技园地址 银川新华互联网科技学校招聘 互联网和科技技术 有马互联网科技 卓越科技(互联网 ) 狮子座互联网科技有限公司 互联网金融 科技创新 科技赋能互联网健康 广州新华互联网科技学校电竞方面 长沙互联网科技 盐城市攀科互联网科技有限公司 互联网科技创业有什么好项目
0