什么是 DedeCMS 小助手?
DedeCMS 小助手(Helper) 是指一系列被设计用来辅助完成特定任务的 PHP 类或函数集合,你可以把它理解成是 DedeCMS 系统自带的一个“工具箱”或“函数库”。

这个“工具箱”里的工具(类/函数)并非直接面向最终用户(比如网站访客),而是主要面向开发者和模板制作者,它们封装了许多 DedeCMS 底层的复杂操作,使得开发者在编写模板文件(.htm)或进行二次开发(编写 .php 文件)时,可以非常方便、快捷地调用系统功能,而无需关心其内部的实现细节。
小助手的核心作用与优势
- 提高开发效率:这是最核心的作用,开发者无需重复“造轮子”,比如要获取栏目列表、调用文章列表、处理分页等,直接调用小助手提供的现成方法即可,大大缩短了开发时间。
- 代码简洁易读:在模板文件中,使用简短的小助手函数(如
{dede:arclist})比编写复杂的 PHP 代码要清晰得多,使得模板文件更易于维护和理解。 - 降低学习成本:对于初学者来说,通过学习和使用小助手,可以快速掌握 DedeCMS 的常用功能,而无需一开始就深入理解其复杂的底层架构。
- 功能封装与解耦:小助手将系统底层逻辑(如数据库查询、缓存处理、权限验证等)进行了封装,当底层逻辑需要升级或修改时,只要保证小助手的接口(函数名、参数)不变,那么上层的模板和开发代码就无需修改,提高了系统的稳定性和可维护性。
- 标准化操作:确保了全站对同一功能的调用方式是统一的,避免了因开发者个人习惯不同而导致的代码混乱。
小助手的主要类型和常见示例
小助手主要分为两大类:标签库助手和PHP 函数助手。
标签库助手
这是最常用的一类,主要用于 .htm 模板文件中,它们以 {dede:标签名 属性='值'} 的形式出现。
-
{dede:arclist}- 文章列表助手
(图片来源网络,侵删)- 作用:用于获取指定条件的文章列表,是使用频率最高的标签之一。
- 示例:在首页调用最新10篇带缩略图的文章。
{dede:arclist row='10' titlelen='30' typeid='1' imgwidth='120' imgheight='90'} <li> <a href="[field:arcurl/]">[field:title/]</a> <img src="[field:litpic/]" alt="[field:title/]" width="120" height="90" /> </li> {/dede:arclist}
-
{dede:channel}- 栏目列表助手- 作用:用于获取栏目列表,可以用于主导航、侧边栏等。
- 示例:调用顶级栏目列表。
<nav> {dede:channel type='top'} <a href="[field:typeurl/]">[field:typename/]</a> {/dede:channel} </nav>
-
{dede:field}- 字段值助手- 作用:用于获取当前文档或栏目的某个字段值。
- 示例:在文章内容页
article_article.htm中,显示文章的发布时间和来源。发布时间:{dede:field.pubdate function='strftime("%Y-%m-%d %H:%M:%S",@me)'/} 来源:{dede:field.source/}
-
{dede:php}- PHP 代码助手- 作用:允许在模板中直接嵌入 PHP 代码,进行更灵活的逻辑处理。(注意:此标签有安全风险,不推荐在非必要情况下使用,特别是对用户输入的内容要严格过滤)
- 示例:在模板中直接调用 PHP 函数。
{dede:php} echo "当前时间是:" . date("Y-m-d H:i:s"); {/dede:php}
PHP 函数助手
这类助手主要在 PHP 文件(如自定义模型、插件、修改核心文件等)中使用,它们通常以 助手类名::方法名() 或全局函数的形式调用。

-
GetOneArchive()- 获取单篇文档信息- 作用:根据档案ID(
arcid)获取文章的标题、栏目ID、发布时间等详细信息。 - 示例:在PHP文件中获取某篇文章的标题。
require_once(DEDEINC."/archives.class.php"); $arc = new Archives(123); // 123是文章ID $arc->Fields['title']; // 就可以直接获取文章标题 // 或者使用更底层的函数 $row = GetOneArchive(123); $title = $row['title'];
- 作用:根据档案ID(
-
GetSonIds()- 获取所有子栏目ID- 作用:递归获取指定栏目及其所有子栏目的ID,常用于调用某个栏目及其子栏目的内容。
- 示例:获取栏目ID为5及其所有子栏目的ID字符串。
$sonids = GetSonIds(5); // $sonids 的值可能是 "5,12,13,14"
-
ShowMsg()- 提示信息助手- 作用:在操作完成后,向用户显示一个提示信息,并可以指定跳转页面。
- 示例:在后台处理完表单提交后,显示成功信息并跳转。
ShowMsg("操作成功!", "javascript:history.go(-1)", 0, 2000); // 参数:提示信息, 跳转URL, 跳转方式(0=返回,1=跳转), 等待时间(毫秒)
-
paster()- 文本处理助手- 作用:用于处理从编辑器(如FCKEditor)中获取的HTML内容,例如过滤不安全的标签、转换图片路径等。
- 示例:保存文章内容前进行处理。
$body = paster($body); // 对文章内容进行安全处理
如何学习和使用小助手?
-
官方文档:最权威的学习资料,DedeCMS 官网提供了详细的标签手册和函数参考,虽然旧版文档可能有些过时,但大部分基础标签和函数仍然适用。
- 标签手册:可以查到所有
{dede:}标签的用法、属性和示例。 - 函数参考:可以查到常用PHP函数助手的说明。
- 标签手册:可以查到所有
-
分析现有模板:这是最快的学习方式,打开 DedeCMS 默认的模板文件(位于
/templets/目录下),观察里面是如何使用各种小助手标签的,然后对照官方文档理解其含义。 -
使用代码编辑器的“转到定义”功能:如果你在修改 PHP 文件,使用 VS Code、PhpStorm 等现代编辑器,可以按住
Ctrl并点击函数名(如GetOneArchive),编辑器会自动跳转到该函数的定义文件中,通过阅读源码,你可以最深入地理解一个助手是如何工作的。 -
实践出真知:尝试自己动手,想在首页调用特定标签的文章,就去找
{dede:arclist}的用法;想在文章页显示作者简介,就去找{dede:field.author/}相关的标签。
重要注意事项
- 版本差异:不同版本的 DedeCMS(如 5.7、5.8、DedeBIZ)其小助手的实现和接口可能存在差异,升级系统时,需要注意模板和代码中使用的助手是否仍然兼容。
- 安全第一:特别是
{dede:php}标签,因为它会直接执行任意 PHP 代码,如果被恶意利用,后果不堪设想,尽量避免在模板中使用,或在必须使用时对输入进行严格校验。 - 性能考虑:小助手内部通常会涉及数据库查询,在循环(如
{dede:loop})中要谨慎使用可能触发数据库查询的助手,以免造成性能问题,优先考虑使用更高效的标签(如{dede:arclist}代替在循环里用{dede:sql})。
DedeCMS 小助手是 DedeCMS 系统的精髓所在,是连接模板、PHP 开发和底层系统的桥梁,对于任何希望高效使用、定制或维护 DedeCMS 网站的人来说,深入理解并熟练运用小助手都是一项必备的核心技能,它就像一个强大的瑞士军刀,能帮你轻松应对各种开发需求。
