第一步:修改数据库,添加缩略图字段
这是最核心的一步,我们需要在栏目表 (dede_arctype) 中增加一个新的字段来存储缩略图的路径。
-
登录你的网站数据库管理工具
- 这通常是
phpMyAdmin,你可以在你的虚拟主机控制面板(如 cPanel, Plesk)中找到它。 - 输入你的数据库用户名和密码进行登录。
- 这通常是
-
选择正确的数据库
在左侧的数据库列表中,选择你的DedeCMS网站所使用的数据库。
-
执行SQL语句添加字段
- 点击顶部的 "SQL" 标签页。
- 在下方的文本框中,复制并粘贴以下SQL语句:
ALTER TABLE `dede_arctype` ADD `typeimg` CHAR(255) NOT NULL DEFAULT '';
语句解释:
ALTER TABLEdede_arctype`表示我们要修改dedearctype这个表(注意:如果你的表前缀不是dede`,请改成你自己的表前缀)。ADDtypeimgCHAR(255) NOT NULL DEFAULT '': 表示增加一个名为typeimg的字段。CHAR(255): 字段类型,可以存储255个字符的字符串,足够存放图片路径了。NOT NULL: 表示这个字段不能为空。DEFAULT '': 表示如果这个字段没有值,则默认为空字符串。
-
执行并验证
- 点击 "执行" 按钮。
- 执行成功后,我们可以验证一下,回到数据库的 "结构" 标签页,在
dede_arctype表的字段列表中,你应该能看到新增加的typeimg字段了。
至此,数据库修改完成。
第二步:修改后台栏目模板,增加上传缩略图的功能
我们需要让后台在添加/编辑栏目时,能够方便地上传这个缩略图。
-
找到并编辑模板文件
- 通过FTP或你的主机文件管理器,登录到网站服务器。
- 找到并下载以下文件:
/dede/templets/catalog_add.htm和/dede/templets/catalog_edit.htm。 - 这两个文件分别是“添加栏目”和“编辑栏目”的后台模板。
-
在文件中添加上传代码
- 在这两个文件中,找到
<td height="24" colspan="2" bgcolor="#FFFFFF"><textarea name='content' style='width:100%;height:350px;'></textarea></td>这段代码(这是栏目描述的文本域)。 - 将它删除或注释掉,因为我们通常不需要在栏目列表里显示大段描述,或者,你也可以把它挪到其他位置。
- 在你想要显示缩略图上传控件的位置(比如原来栏目描述的位置),粘贴以下代码:
<tr> <td height="24" colspan="2" bgcolor="#FFFFFF"> <strong>栏目缩略图:</strong> <input type="text" name="typeimg" id="typeimg" style="width:300px" value="" /> <input type="button" name="set" value="浏览..." onclick="SelectImage('form1.typeimg','');" /> </td> </tr>代码解释:
<input type="text" name="typeimg" ...>: 这就是用来存放图片路径的输入框,name="typeimg"必须和我们数据库里的字段名一致。<input type="button" ...>: 这是触发图片选择器的按钮。
- 在这两个文件中,找到
-
保存并上传文件
- 修改
catalog_add.htm和catalog_edit.htm后,将它们重新上传到原来的位置。
- 修改
登录你的DedeCMS后台,进入“栏目管理” -> “添加栏目”,你应该能看到新增的“栏目缩略图”选项了,点击“浏览...”按钮,会弹出一个DedeCMS自带的选择图片的窗口,你可以选择已经上传到媒体库的图片,或者上传新图片。
第三步:在前台调用栏目缩略图
最后一步,就是在你的网站模板文件中,通过调用 {dede:field.typeimg/} 这个标签来显示缩略图。
-
找到你的栏目列表模板
- 这个模板通常位于
/templets/你的默认模板目录/目录下,文件名可能是list_栏目ID.htm(list_1.htm)或者channel_list.htm(如果你的所有栏目都共用一个列表模板)。 - 最佳实践:建议为每个需要显示缩略图的栏目单独创建一个列表模板,
list_1.htm,这样控制更精确。
- 这个模板通常位于
-
在模板中添加调用代码
- 打开你的栏目列表模板文件。
- 在
{dede:channel}这个循环标签内,你可以像调用其他字段一样调用typeimg。
示例代码:
{dede:channel type='son' typeid='0'} <li> <a href="[field:typelink/]"> <!-- 如果typeimg不为空,则显示图片,否则显示默认图片或文字 --> [field:typeimg runphp='yes'] if(@me == '') @me = '<img src="/images/default.jpg" alt="[field:typename/]">'; // 设置一个默认图片 else @me = '<img src="'.@me.'" alt="[field:typename/]">'; [/field:typeimg] <!-- 或者更简单的方式,直接显示,没有图就不显示 --> <!-- <img src="[field:typeimg/]" alt="[field:typename/]"> --> <span>[field:typename/]</span> </a> </li> {/dede:channel}代码解释:
[field:typelink/]: 获取栏目的链接地址。[field:typename/]: 获取栏目的名称。[field:typeimg/]: 获取我们第一步添加的栏目缩略图路径。runphp='yes': 这是一个非常有用的功能,允许我们在PHP代码中判断字段内容,上面的例子实现了“如果缩略图为空,则显示一张默认图片”的逻辑,用户体验更好。
-
保存并更新缓存
- 保存你的模板文件。
- 登录DedeCMS后台,点击“生成” -> “更新主页HTML”、“更新栏目HTML”和“更新文档HTML”,让新的模板生效。
总结与注意事项
- 表前缀:如果你的数据库表前缀不是
dede_,请务必在第一步的SQL语句中修改正确。 - 权限:确保你的网站服务器对
/dede/templets/目录和/templets/目录有写入权限。 - 缓存:修改后台或前台模板后,一定要更新网站缓存,否则可能看不到效果。
- 默认图片:强烈建议在调用缩略图时使用
runphp功能设置一个默认图片,这样当某些栏目没有上传缩略图时,页面布局不会错乱。 - CSS样式:你可能需要为
<img>标签添加一些CSS样式,比如设置宽度、高度、边距等,以达到最佳的显示效果。
通过以上三个步骤,你就成功地为DedeCMS的栏目增加了缩略图功能,希望这个详细的教程能帮到你!
