在网站开发和内容管理系统(CMS)优化中,调整论坛显示的封面图片是一项常见的任务。本文将详细介绍如何通过修改代码实现加载帖子中的第一张图片作为封面图的功能。以下是具体步骤:
首先,我们需要找到并编辑两个关键文件。
### 1. 编辑 forum_forumdisplay.php 文件 定位到以下路径的文件:
`source/module/forum/forum_forumdisplay.php`
在文件中,大于809行的位置找到如下代码段:

if($thread['rushreply']) {
    $rushtids[$thread['tid']] = $thread['tid'];
}
    

在这段代码之后,添加以下代码:

$threada= C::t('forum_attachment')->fetch_all_by_id('tid', $thread['tid'], 'aid');
$threadaid = reset($threada);
$threadpic = C::t('forum_attachment_n')->fetch_by_aid_uid($threadaid['tableid'], $threadaid['aid'], $thread['authorid']);
$thread['pic'] = $threadpic['attachment'];
    

完成上述操作后,您可以在列表页模板中使用 `$thread['pic']` 来加载一张封面图片。请注意,默认情况下,此方法会加载帖子中最后一张插入的图片。
### 2. 修改 table_forum_announcement.php 文件 如果您希望加载的是帖子中的第一张图片而不是最后一张,还需要对另一个文件进行修改。找到以下路径的文件:
`source/class/table/table_forum_announcement.php`
在该文件中,找到以下代码:

$orderby = 'ORDER BY '.DB::order($orderby, 'DESC');
    

将其修改为:

$orderby = 'ORDER BY '.DB::order($orderby, 'ASC');
    

### 总结 通过以上两步操作,您可以在论坛列表页加载发帖时上传的第一张图片作为封面图。这种方法不仅提高了用户体验,还使您的论坛更加美观和专业。请确保在执行这些更改之前备份原始文件,以便在需要时可以恢复。
希望这篇指南能帮助您更好地理解和实现这一功能!如果有任何疑问或需要进一步的帮助,请随时联系我们。
EyouCms 是一款简单易用的企业网站管理系统,点击了解更多。