织梦CMS(DedeCMS)是国内广泛使用的开源内容管理系统。针对其代码常识,我为您梳理了15个核心知识点,涵盖标签语法、时间调用、逻辑控制、安全优化及目录结构等方面:

一、 标签与模板语法
循环与数据获取:固定块标记 datalist 用于从绑定类成员函数中获取数组并输出;遍历二维数组时可使用 {tag:blockname bind='GetArcList' bindtype='class' rstype='arrayu'}...{/tag:blockname}。
条件判断语法:仅支持简单的 if 和 else 语法,直接用 {else} 表示分支,但不支持 {else if}。若需复杂条件,建议直接使用 PHP 语法。
变量引用规则:在条件判断中,允许使用 var.name、global.name、field.name、cfg.name 等格式来表示相应的系统或自定义变量。
文件包含机制:可通过 {dede:include file='文件路径'/} 或 {dede:include filename='文件路径'/} 的方式将外部文件引入到当前模板中。
PHP代码嵌入:支持在模板中直接编写 PHP 代码,语法为 {dede:php} php代码... {/dede:php} 或单行形式 {dede:php php代码... /}。
二、 时间与日期格式化
列表页时间调用:常使用 [field:pubdate function="GetDateMK(@me)" /] 来输出标准的年月日格式。
内容页时间调用:通常使用 {dede:field name='pubdate' function='GetDateMk(@me)' /} 获取发布时间。
相对时间计算:利用 runphp='yes' 结合 time() 函数进行时间差计算,可实现“今日”、“X天前”等动态显示效果。
高级时间格式化:可借助 PHP 的 strftime() 函数实现高度自定义的时间格式(如 %Y年%m月%d日 %H:%M:%S),灵活适配不同排版需求。
三、 功能扩展与二次开发
点击率统计实现:可在内容页模板中使用 runphp 执行 SQL 语句更新数据库中的 click 字段,或通过 AJAX 异步请求 /plus/count.php 实现无刷新统计。
自定义函数注册:如需扩展时间或其他处理逻辑,可在 /include/helpers/extend.helper.php 中添加自定义 PHP 函数,并在模板中通过 function="custom_date(@me, 'Y年m月d日')" 调用。
游客问答限制解除:默认情况下游客无法提问或回答,需修改 /ask/control 目录下的 question.php 等文件,删除相关的登录状态校验代码以实现开放互动。
四、 安全防护与目录结构
核心安全加固:安装后必须删除 install 文件夹;将后台默认目录 dede 改名;开启验证码并修改默认的 admin 账号密码;关闭不必要的会员和评论功能。
冗余文件清理:应定期删除存在安全隐患的文件,如 plus/guestbook(留言板)、plus/task(计划任务)、dede/file_xx.php(后台文件管理器)以及不需要的 SQL 运行器。
敏感目录权限管控:templets(模板目录)、uploads(上传目录)和 data(数据目录)是黑客攻击的重点目标。必须严格限制这些目录的脚本执行权限,必要时可将 data 目录移至根目录之外以提升安全性。