dede如何给栏目添加缩略图功能?

99ANYc3cd6
预计阅读时长 14 分钟
位置: 首页 DEDE建站 正文

第一步:修改数据库,添加缩略图字段

这是最核心的一步,我们需要在栏目表 (dede_arctype) 中增加一个新的字段来存储缩略图的路径。

  1. 登录你的网站数据库管理工具

    • 这通常是 phpMyAdmin,你可以在你的虚拟主机控制面板(如 cPanel, Plesk)中找到它。
    • 输入你的数据库用户名和密码进行登录。
  2. 选择正确的数据库

    在左侧的数据库列表中,选择你的DedeCMS网站所使用的数据库。

  3. 执行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 '': 表示如果这个字段没有值,则默认为空字符串。
  4. 执行并验证

    • 点击 "执行" 按钮。
    • 执行成功后,我们可以验证一下,回到数据库的 "结构" 标签页,在 dede_arctype 表的字段列表中,你应该能看到新增加的 typeimg 字段了。

至此,数据库修改完成。


第二步:修改后台栏目模板,增加上传缩略图的功能

我们需要让后台在添加/编辑栏目时,能够方便地上传这个缩略图。

  1. 找到并编辑模板文件

    • 通过FTP或你的主机文件管理器,登录到网站服务器。
    • 找到并下载以下文件:/dede/templets/catalog_add.htm/dede/templets/catalog_edit.htm
    • 这两个文件分别是“添加栏目”和“编辑栏目”的后台模板。
  2. 在文件中添加上传代码

    • 在这两个文件中,找到 <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" ...>: 这是触发图片选择器的按钮。
  3. 保存并上传文件

    • 修改 catalog_add.htmcatalog_edit.htm 后,将它们重新上传到原来的位置。

登录你的DedeCMS后台,进入“栏目管理” -> “添加栏目”,你应该能看到新增的“栏目缩略图”选项了,点击“浏览...”按钮,会弹出一个DedeCMS自带的选择图片的窗口,你可以选择已经上传到媒体库的图片,或者上传新图片。


第三步:在前台调用栏目缩略图

最后一步,就是在你的网站模板文件中,通过调用 {dede:field.typeimg/} 这个标签来显示缩略图。

  1. 找到你的栏目列表模板

    • 这个模板通常位于 /templets/你的默认模板目录/ 目录下,文件名可能是 list_栏目ID.htmlist_1.htm)或者 channel_list.htm(如果你的所有栏目都共用一个列表模板)。
    • 最佳实践:建议为每个需要显示缩略图的栏目单独创建一个列表模板,list_1.htm,这样控制更精确。
  2. 在模板中添加调用代码

    • 打开你的栏目列表模板文件。
    • {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代码中判断字段内容,上面的例子实现了“如果缩略图为空,则显示一张默认图片”的逻辑,用户体验更好。
  3. 保存并更新缓存

    • 保存你的模板文件。
    • 登录DedeCMS后台,点击“生成” -> “更新主页HTML”、“更新栏目HTML”和“更新文档HTML”,让新的模板生效。

总结与注意事项

  1. 表前缀:如果你的数据库表前缀不是 dede_,请务必在第一步的SQL语句中修改正确。
  2. 权限:确保你的网站服务器对 /dede/templets/ 目录和 /templets/ 目录有写入权限。
  3. 缓存:修改后台或前台模板后,一定要更新网站缓存,否则可能看不到效果。
  4. 默认图片:强烈建议在调用缩略图时使用 runphp 功能设置一个默认图片,这样当某些栏目没有上传缩略图时,页面布局不会错乱。
  5. CSS样式:你可能需要为 <img> 标签添加一些CSS样式,比如设置宽度、高度、边距等,以达到最佳的显示效果。

通过以上三个步骤,你就成功地为DedeCMS的栏目增加了缩略图功能,希望这个详细的教程能帮到你!

-- 展开阅读全文 --
头像
dede无法生成缩略图怎么办?
« 上一篇 03-02
mapminmax c语言
下一篇 » 03-02

相关文章

取消
微信二维码
支付宝二维码

目录[+]