核心思路
- 创建自定义表单:为图片集模型创建一个“数据表单”,用于存储你需要的额外信息(比如摄影师、拍摄地点、图片描述等)。
- 创建自由列表:在首页需要显示的位置,通过自由列表功能,调用指定栏目下的图片集内容。
- 在自由列表中绑定自定义字段:在自由列表的模板中,使用特定的标签来调用第一步中创建的自定义字段数据。
第一步:为图片集模型添加自定义字段
假设我们要为图片集添加一个 photographer (摄影师) 和 location (拍摄地点) 这两个字段。

(图片来源网络,侵删)
-
进入自定义表单管理
- 登录你的 DedeCMS 后台。
- 在左侧菜单栏,找到 核心 -> 频道模型 -> 自定义表单。
-
创建新的数据表单
- 点击右上角的 [增加新表单] 按钮。
- 表单名称:填写一个你容易识别的名称,
imgset_extra_info。 - 数据表:系统会自动生成一个表名,如
dede_addonimgset_extra_info,无需修改。 - 默认表单模板:可以留空,因为我们不打算在前台用户提交时使用。
- 列表页模板:可以留空。
- 发布页模板:可以留空。
- 后台列表模板:可以留空或填写你喜欢的样式。
- 提交后,这个表单就创建好了。
-
添加具体字段
- 在刚刚创建的
imgset_extra_info表单管理页面,点击右上角的 [字段管理]。 - 点击 [增加新字段] 按钮。
- 字段名称:
photographer(英文,不含空格)。 - :
摄影师(中文,用于后台显示)。 - 字段类型:选择
单行文本。 - 其他选项:如是否必填、默认值等,根据你的需求设置。
- 提交。
- 重复此操作,再添加一个
location字段,类型也为单行文本。
- 在刚刚创建的
-
关联字段与模型
(图片来源网络,侵删)- 这是最关键的一步!你需要将这个自定义表单与图片集模型关联起来。
- 返回后台首页,进入 核心 -> 频道模型 -> 内容模型管理。
- 找到并点击 [图片集] 模型。
- 在打开的页面中,找到 “绑定自定义表单” 或类似字样的选项。
- 在下拉菜单中,选择你刚刚创建的
imgset_extra_info表单。 - 保存设置。
-
在后台录入数据
- 现在去发布或编辑一个图片集文章。
- 在编辑页面的下方,你应该能看到一个名为
imgset_extra_info或图片集附加信息的选项卡。 - 点击它,你就可以填写
摄影师和拍摄地点了。
第二步:创建自由列表调用图片集
我们需要在首页创建一个模块来调用这些图片集。
-
进入自由列表管理
- 在后台,找到 核心 -> 自由列表。
-
创建新的自由列表
(图片来源网络,侵删)- 点击右上角的 [增加自由列表] 按钮。
- 列表名称:填写一个名称,如
首页图片集推荐。 - 列表模板:选择一个你准备好的模板文件,
default/index_imglist.htm,我们稍后会创建这个模板文件。 - 按SQL语句查询:选择此项,这是最灵活的方式。
- SQL语句:填写以下代码,假设你要调用
ID为3的栏目下的图片集。SELECT a.*,b.* FROM `dede_archives` AS a LEFT JOIN `dede_addonimages` AS b ON a.id = b.aid WHERE a.arcrank > -1 AND a.typeid = '3' ORDER BY a.sortrank DESC LIMIT 0, 10
dede_archives: 主表,存放文章基本信息。dede_addonimages: 图片集附加表,存放图片集相关信息。a.id = b.aid: 关联条件,非常重要!a.typeid = '3': 替换成你要调用的栏目ID。LIMIT 0, 10: 表示调用10条记录。
- 保存。
第三步:编写自由列表模板并调用自定义字段
这是最后一步,也是显示数据的关键。
-
创建模板文件
- 通过 FTP 或服务器的文件管理器,进入你的模板目录
/templets/。 - 创建一个新的 HTML 文件,
index_imglist.htm。
- 通过 FTP 或服务器的文件管理器,进入你的模板目录
-
编写模板代码
- 打开
index_imglist.htm文件,输入以下代码,这段代码会循环调用自由列表中的数据,并显示图片集的缩略图、标题、自定义字段以及图片集内的图片。
{dede:freelist/} <!-- 自由列表的起始标签,系统会自动填充循环内容 --> <div style="clear:both;"></div> <!-- 循环开始 --> <div class="imgset-item"> <!-- 调用图片集的缩略图 --> <a href="[field:arcurl/]"> <img src="[field:litpic/]" alt="[field:title/]" /> </a> <!-- 调用图片集标题 --> <h3><a href="[field:arcurl/]">[field:title/]</a></h3> <!-- 调用自定义字段 - 摄影师 --> <p class="photographer">摄影师: <span>[field:photographer/]</span></p> <!-- 调用自定义字段 - 拍摄地点 --> <p class="location">拍摄地点: <span>[field:location/]</span></p> <!-- 调用图片集内的图片列表 (这是DedeCMS调用图片集特有的方法) --> <div class="img-gallery"> [field:id function="Getimgs(@me, 120, 90, 5)"/] <!-- Getimgs 函数说明: @me: 当前图片集的ID 120: 图片缩略图宽度 90: 图片缩略图高度 5: 最多显示的图片数量 --> </div> </div> <!-- 循环结束 --> {/dede:freelist/} <!-- 添加一些CSS样式让显示更美观 --> <style> .imgset-item { float: left; width: 200px; margin: 10px; border: 1px solid #eee; padding: 5px; } .imgset-item img { width: 100%; height: auto; } .photographer, .location { font-size: 12px; color: #666; margin: 5px 0; } .img-gallery img { width: 50px; height: 50px; margin-right: 5px; border: 1px solid #ccc; } </style> - 打开
-
更新首页
- 回到 DedeCMS 后台,找到 生成 -> 更新主页HTML。
- 点击“更新主页”,首页就会根据你设置的自由列表和模板重新生成。
常见问题与注意事项 (FAQ)
-
为什么自定义字段调用不出来?
- 最可能的原因:忘记在第一步中将自定义表单绑定到图片集模型,请务必检查“内容模型管理”中的图片集模型设置。
- 字段名称错误:确保模板中
[field:字段名/]的字段名与你在自定义表单中设置的“字段名称”(英文)完全一致,包括大小写。 - 自由列表SQL错误:检查你的SQL语句是否正确,特别是
JOIN的表名和关联条件a.id = b.aid。
-
Getimgs函数不生效?- 确保你调用的是一个 图片集 类型的文章,普通文章没有这个函数。
- 检查函数中的参数是否正确。
-
自由列表里的数据是旧的?
- 在自由列表管理页面,找到你创建的列表,点击 [更新] 按钮,这会重新执行SQL查询并缓存结果。
- 如果还是不行,可以尝试 [删除] 后再重新创建。
-
字段为空怎么办?
确保你已经至少在一个图片集文章中填写了这个自定义字段的内容。
通过以上三个步骤,你应该就能成功地在 DedeCMS 首页调用并显示图片集的自定义字段了,这个方法虽然步骤多一些,但非常灵活,可以扩展出各种你需要的效果。
