“织梦新变量”这个概念通常指的是在织梦的 自定义模型 中,为内容模型添加的、除了系统默认字段之外的、由用户自己定义的字段,这些新变量极大地扩展了织梦系统的灵活性,使其能够适应各种不同的网站类型,比如商品、软件、小说、招聘信息等。

(图片来源网络,侵删)
这些自定义字段的“类型”决定了它们的数据存储方式、在前台如何显示以及后台如何输入。
新变量的主要类型及详解
在织梦后台的“核心” -> “内容模型管理” -> “选择一个模型” -> “字段管理”中,你可以添加各种类型的字段,以下是常见的变量类型及其用途:
单行文本
- 说明:最常用的类型,用于输入简短的信息,如标题、作者、关键词等。
- 数据存储:直接存储为文本。
- 后台表单:
<input type="text">输入框。 - 适用场景:产品名称、新闻来源、作者姓名、简短描述等。
多行文本
- 说明:用于输入较长的文本内容,支持换行。
- 数据存储:存储为文本,保留换行符。
- 后台表单:
<textarea>文本域。 - 适用场景:产品简介、新闻摘要、活动详情、个人简介等。
HTML文本编辑器
- 说明:功能强大的富文本编辑器,可以插入图片、表格、链接,设置格式等,这是编写文章正文的主要方式。
- 数据存储:存储为HTML代码。
- 后台表单:集成织梦自带的或第三方富文本编辑器(如百度UEditor)。
- 适用场景:文章正文、产品详细介绍、新闻内容、页面内容等。
数字
- 说明:专门用于输入数字,可以进行排序和简单的数学运算。
- 数据存储:存储为整数。
- 后台表单:
<input type="number">数字输入框。 - 适用场景:价格、库存数量、排序权重、评分、年份等。
下拉选择
- 说明:提供一个下拉菜单,让用户从预设的几个选项中选择一个。
- 数据存储:存储为文本(你预设的选项值)。
- 后台表单:
<select>下拉选择框。 - 适用场景:性别、国家、学历、状态(如:推荐、热门)、颜色分类等。
- 设置:在“选项值”中填写,每行一个,格式如
选项名称|选项值。男|male。
单选按钮
- 说明:提供多个互斥的选项,用户只能选择其中一个。
- 数据存储:存储为文本(你预设的选项值)。
- 后台表单:一组
<input type="radio">单选按钮。 - 适用场景:与“下拉选择”类似,但选项较少时更直观,如:是否推荐(是/否)、是否置顶(是/否)。
- 设置:与“下拉选择”类似,在“选项值”中设置。
多选按钮
- 说明:提供多个选项,用户可以选择一个或多个。
- 数据存储:存储为文本,多个选项值之间用逗号 分隔。
- 后台表单:一组
<input type="checkbox">复选框。 - 适用场景:标签、技能、适用人群等,一个软件可以支持多个操作系统。
- 设置:与“下拉选择”类似,在“选项值”中设置。
文件上传
- 说明:允许用户上传一个文件,如图片、文档、压缩包等。
- 数据存储:存储上传后的文件路径。
- 后台表单:文件上传按钮。
- 适用场景:产品图片、附件下载、PDF文档、软件安装包等。
图片上传
- 说明:专门用于上传图片,是文件上传的特例,通常会生成缩略图。
- 数据存储:存储上传后的图片路径。
- 后台表单:图片上传按钮,并可选择是否生成缩略图。
- 适用场景:文章配图、产品图集、用户头像等。
时间日期
- 说明:提供一个日期时间选择器,方便用户选择特定的时间点。
- 数据存储:存储为时间戳或标准日期格式。
- 后台表单:
<input type="datetime-local">或日期时间选择器。 - 适用场景:活动开始时间、发布日期、生日、有效期等。
如何在前台调用这些新变量?
这是使用新变量的关键一步,在织梦的模板文件(通常是 article_article.htm, list_article.htm 等)中,你可以使用 {dede:field.字段名/} 或 {dede:field.字段名 function='htmlspecialchars(@me)'/} 的方式来调用。
调用语法:
{dede:field.你的自定义字段名/}

(图片来源网络,侵删)
示例:
假设你为“产品”模型添加了以下新变量:
- 字段名:
price(类型:数字) - 字段名:
brand(类型:下拉选择) - 字段名:
specs(类型:多行文本) - 字段名:
manual(类型:文件上传)
在文章模板 article_product.htm 中调用:
<h1>{dede:field.title/}</h1>
<!-- 调用数字类型的价格 -->
<p>价格:<span class="price">{dede:field.price/}</span> 元</p>
<!-- 调用下拉选择的品牌 -->
<p>品牌:{dede:field.brand/}</p>
<!-- 调用多行文本的规格说明,通常需要保留换行,可以使用 nl2br 函数 -->
<p>规格说明:<br/>{dede:field.specs function='nl2br(@me)'/}</p>
<!-- 调用文件上传的产品手册,生成下载链接 -->
<p>产品手册:<a href="/{dede:field.manual/}" target="_blank">点击下载</a></p>
<!-- 调用上传的产品主图 -->
<img src="/{dede:field.litpic/}" alt="{dede:field.title/}" />
注意事项:
- 字段名:调用时使用的
字段名必须和你在后台“字段管理”中设置的“字段名称”完全一致,且区分大小写。 - 安全性:对于用户输入的内容(如多行文本),建议使用
htmlspecialchars函数进行转义,防止XSS攻击。{dede:field.content function='htmlspecialchars(@me)'/}。 - 路径:对于文件和图片,存储的通常是相对路径,如果你的网站结构有变化,可能需要调整路径前缀(如加上
/uploads/)。
高级应用:使用自定义表单
模型添加字段,织梦还有一个强大的功能叫做 “自定义表单”。
-
区别:
- 内容模型字段:用于发布内容(文章、商品等),数据存储在
dede_archives和dede_addonxx表中,会出现在网站的内容列表和详情页。 - 自定义表单:用于收集用户提交的信息,如留言、报名、在线订单、招聘等,数据存储在独立的
dede_diyform表中,通常不直接显示为网站内容,而是由管理员在后台查看和管理。
- 内容模型字段:用于发布内容(文章、商品等),数据存储在
-
自定义表单的类型:其字段类型与内容模型的字段类型基本一致(文本、数字、下拉、单选、多选、文件、图片等),但应用场景完全不同。
| 变量类型 | 数据存储 | 前台调用示例 | 主要用途 |
|---|---|---|---|
| 单行文本 | 文本 | {dede:field.author/} |
、来源等 |
| 多行文本 | 文本 | {dede:field.intro function='nl2br(@me)'/} |
简介、详情等 |
| HTML文本 | HTML代码 | {dede:field.body/} |
文章正文、富文本内容 |
| 数字 | 整数 | {dede:field.price/} |
价格、数量、排序权重 |
| 下拉选择 | 文本 | {dede:field.status/} |
状态、分类、等级 |
| 单选按钮 | 文本 | {dede:field.is_rec/} |
是否推荐、是否置顶 |
| 多选按钮 | 文本 (逗号分隔) | {dede:field.tags/} |
标签、技能、属性 |
| 文件上传 | 文件路径 | <a href="/{dede:field.file/}">下载</a> |
附件、文档、软件包 |
| 图片上传 | 图片路径 | <img src="/{dede:field.img/}"> |
产品图、文章配图 |
| 时间日期 | 时间戳 | {dede:field.pubdate function='MyDate('Y-m-d', @me)'/} |
发布时间、活动时间 |
理解这些新变量的类型和调用方法,是灵活运用织梦DedeCMS进行二次开发、构建功能丰富网站的基础。
