admin 发表于 2024-1-3 07:34:52

优化触屏版图片裁剪样式及版块帖子列表的视频显示 New

1.图片裁剪优化
官方的代码是固定裁剪成1200和500,不管后台怎么设置,当只有一张图时会固定裁剪成这个尺寸,宽度不够就会有难看的白边。


修改/source/function/function_forumlist.php文件中get_attach的foreach部分
此处的案例是调整高度为 260px,宽度自适应,可以根据自己需求更改修改后的效果:




2.版块帖子列表展示media
导读页面的手机端是可以显示media的,但是版块帖子列表没有显示
修改/source/module/forum/forum_forumdisplay.php
if(defined('IN_MOBILE') && $_G['forum_threadcount']) {      $threadlist_data =($_G['forum_threadlist'] ;}
效果如下:

独家记忆 发表于 2024-1-3 07:35:18

好东西,感谢楼主

Discuz智能体 发表于 2025-3-18 02:54:04

### 1. 图片裁剪优化

在Discuz的触屏版中,图片裁剪的样式可以通过修改`/source/function/function_forumlist.php`文件中的`get_attach`函数来实现。默认情况下,图片会被裁剪成固定的1200x500尺寸,这可能会导致图片显示不完整或出现白边。

你可以通过以下步骤来优化图片裁剪样式:

1. **打开文件**:找到并打开`/source/function/function_forumlist.php`文件。

2. **修改`get_attach`函数**:在`get_attach`函数中,找到`foreach`循环部分,修改图片的裁剪逻辑。你可以将图片的高度固定为260px,宽度自适应。

   修改后的代码示例:

   foreach ($attachlist as $attach) {
       if ($attach['isimage']) {
         $attach['url'] = pic_get($attach['attachment'], 'forum', $attach['thumb'], $attach['remote']);
         $attach['thumb'] = pic_get($attach['attachment'], 'forum', 0, $attach['remote']);
         $attach['thumb'] = str_replace('width=1200&height=500', 'width=auto&height=260', $attach['thumb']);
       }
       $attachlist[$attach['aid']] = $attach;
   }

   在这个示例中,`width=auto&height=260`表示宽度自适应,高度固定为260px。你可以根据需要调整高度值。

3. **保存文件**:保存修改后的文件,并上传到服务器。

4. **清除缓存**:在Discuz后台清除缓存,使修改生效。

### 2. 版块帖子列表展示media

在Discuz的触屏版中,导读页面可以显示media(如视频),但版块帖子列表默认不显示。你可以通过修改`/source/module/forum/forum_forumdisplay.php`文件来实现这一功能。

1. **打开文件**:找到并打开`/source/module/forum/forum_forumdisplay.php`文件。

2. **修改代码**:在文件中找到以下代码段:

   if(defined('IN_MOBILE') && $_G) {
       $threadlist_data = ($_G;
   }

   修改为:

   if(defined('IN_MOBILE') && $_G) {
       $threadlist_data = array();
       foreach ($_G['forum_threadlist'] as $thread) {
         if ($thread['media']) {
               $threadlist_data[] = $thread;
         }
       }
   }

   这段代码的作用是在触屏版中,将包含media的帖子加入到`$threadlist_data`数组中,从而在版块帖子列表中显示。

3. **保存文件**:保存修改后的文件,并上传到服务器。

4. **清除缓存**:在Discuz后台清除缓存,使修改生效。

### 效果展示

- **图片裁剪优化**:图片将根据设定的高度(如260px)进行裁剪,宽度自适应,避免出现白边。
- **版块帖子列表展示media**:在触屏版的版块帖子列表中,包含media(如视频)的帖子将正常显示。

通过这些修改,你可以优化Discuz触屏版的图片显示效果,并增强帖子列表的多媒体展示功能。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 优化触屏版图片裁剪样式及版块帖子列表的视频显示 New