dede缩略图如何设置为原图?

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

这可以通过修改模板文件或修改程序代码来实现,下面我将为您提供几种最常用和最有效的方法,强烈推荐使用第一种方法(修改模板),因为它最安全、最灵活。

dede 缩略图为原图
(图片来源网络,侵删)

修改模板文件(最推荐,最安全)

这是最理想的方法,因为它不涉及修改程序核心文件,即使未来升级程序,你的修改也不会被覆盖,你只需要在需要显示原图的模板里,把调用缩略图的标签换成调用原图的标签即可。

核心思路: DedeCMS 在上传图片时,原图的路径信息也会被保存在数据库中,我们只需要找到并调用这个原图路径的标签。

步骤:

  1. 找到原图标签 在你的模板文件中,找到调用缩略图的标签,它通常是下面这个样子:

    dede 缩略图为原图
    (图片来源网络,侵删)
    {dede:field name='litpic'/}

    这个 litpic 指的就是缩略图。

    与缩略图对应,原图的标签是 picname,你只需要将 {dede:field name='litpic'/} 替换为 {dede:field name='picname'/} 即可。

  2. 在首页、列表页等模板中应用 打开你需要显示原图的模板文件,

    • 首页模板: /templets/default/index.htm
    • 列表页模板: /templets/default/list_article.htm
    • 页模板: /templets/default/article_article.htm

    在这些文件中,找到循环输出文章列表的部分,定位到 <img> 标签的 src 属性,将其修改为调用原图。

    dede 缩略图为原图
    (图片来源网络,侵删)

    修改前(调用缩略图):

    <a href="[field:arcurl/]"><img src="[field:litpic/]" alt="[field:title/]" /></a>

    修改后(调用原图):

    <a href="[field:arcurl/]"><img src="[field:picname/]" alt="[field:title/]" /></a>
  3. 更新缓存 修改完模板文件后,登录 DedeCMS 后台,点击顶部菜单的 “生成” -> “更新主页HTML”“更新栏目HTML”,让系统重新生成页面。

优点:

  • 安全: 不修改程序文件,升级无忧。
  • 灵活: 可以自由控制哪些地方显示原图,哪些地方显示缩略图,首页列表用缩略图,某个专题页用原图。

修改程序文件(不推荐,但有特定用途)

如果你希望整个系统的所有地方都默认调用原图,而不是缩略图,那么可以考虑修改程序文件。请务必在修改前备份原文件!

核心思路: 修改系统调用文章列表数据的底层代码,将默认的缩略图字段 litpic 替换为原图字段 picname

步骤:

  1. 定位核心文件 打开 DedeCMS 的根目录,找到并打开 /include/common.inc.php 文件,这个文件是系统的公共函数库。

  2. 修改函数 在该文件中,找到 GetArcList 函数,这个函数是用于获取文章列表数据的,我们需要修改它的默认查询字段。

    找到类似这样的代码段(具体行号可能因版本不同而异):

    // GetArcList 函数内部
    $query = "SELECT arc.id,arc.title,arc.shorttitle,arc.typeid,arc.ismake,
              arc.senddate,arc.arcrank,arc.click,arc.litpic,arc.memberid,
              arc.goodpost,arc.badpost,arctype.typedir,arctype.typename,
              arctype.isdefault,arctype.defaultname,arctype.namerule,
              arctype.namerule2,arctype.ispart,arctype.moresite,
              arctype.siteurl
              FROM `#@__archives` arc
              LEFT JOIN `#@__arctype` arctype ON arc.typeid=arctype.id
              WHERE {$orwhere} $ordersql LIMIT $startrow,$row";

    我们需要将查询结果中的 arc.litpic 修改为 arc.picname

    修改后:

    // GetArcList 函数内部
    $query = "SELECT arc.id,arc.title,arc.shorttitle,arc.typeid,arc.ismake,
              arc.senddate,arc.arcrank,arc.click,arc.picname,arc.memberid, // 将 litpic 改为 picname
              arc.goodpost,arc.badpost,arctype.typedir,arctype.typename,
              arctype.isdefault,arctype.defaultname,arctype.namerule,
              arctype.namerule2,arctype.ispart,arctype.moresite,
              arctype.siteurl
              FROM `#@__archives` arc
              LEFT JOIN `#@__arctype` arctype ON arc.typeid=arctype.id
              WHERE {$orwhere} $ordersql LIMIT $startrow,$row";
  3. 更新缓存 保存文件后,同样需要在后台 “生成” -> “更新主页HTML”“更新栏目HTML”,让修改生效。

警告:

  • 这种方法会影响所有调用 GetArcList 函数的地方,全局生效。
  • 如果未来升级 DedeCMS,这个文件会被覆盖,你需要重新修改。
  • 如果你的模板里某些地方明确需要缩略图,这种方法会破坏你的布局。

通过修改栏目设置(特定场景)

如果你只想让某个特定栏目下的文章在列表页显示原图,可以在后台修改栏目的“列表选项”。

步骤:

  1. 登录 DedeCMS 后台。
  2. 进入 “核心” -> “栏目管理”
  3. 找到你想要修改的那个栏目,点击后面的 “更改” 按钮。
  4. 在栏目编辑页面,找到 “列表选项” 这个选项卡。
  5. 在里面找到 “列表模板(list_artlist.htm)” 这个选项,不要修改它
  6. 找到 *“使用列表模板(list_.htm)”**,确保它指向的是你的列表模板文件,list_article.htm
  7. 关键一步: 在这里并没有直接的选项可以“调用原图”,所以这个方法不能直接实现你的需求,但它引出了第四种方法。

使用SQL命令(批量修复或特殊处理)

如果你的缩略图丢失了,或者数据库中 litpic 字段为空,但 picname 字段有值,你可以通过SQL命令将 picname 的值同步到 litpic 字段,这样,你的模板就无需修改,继续使用 {dede:field.litpic/} 也能显示原图了。

警告: 操作数据库前,务必备份数据库!

步骤:

  1. 登录你的网站数据库管理工具(如 phpMyAdmin)。

  2. 选择你的 DedeCMS 数据库。

  3. 点击“SQL”选项卡,执行以下命令:

    UPDATE `dede_archives` SET `litpic` = `picname` WHERE `litpic` = '' OR `litpic` IS NULL;
    • dede_archives 是 DedeCMS 默认的文档主表表名,如果你的前缀不是 dede_,请自行修改。
    • 这个命令的作用是:将 dede_archives 表中,所有 litpic 字段为空或 NULL 的记录的 litpic 值,更新为对应记录的 picname 值。
  4. 执行成功后,你的文章列表就会显示原图了。

总结与建议

方法 优点 缺点 适用场景
修改模板 安全、灵活、升级无忧 需要手动修改模板文件 强烈推荐,适用于所有需要局部修改的场景。
修改程序 全局生效,一劳永逸(相对) 风险高、破坏性强、升级覆盖 不推荐,除非你确定整个系统都需要原图,且不打算升级。
修改栏目 无直接效果 无法实现需求 无。
SQL命令 批量修复数据,无需改模板 有风险,操作需谨慎 用于批量修复 litpic 字段为空的问题,使其能正常显示原图。

对于绝大多数用户,请选择【方法一:修改模板文件】,这是最专业、最安全、最符合 DedeCMS 设计理念的做法。

-- 展开阅读全文 --
头像
dede完善资料页面如何正确操作?
« 上一篇 03-04
c语言getchar头文件
下一篇 » 03-04

相关文章

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

目录[+]