Discuz 门户列表页自动获取内容图片
2019-04-15 17:01发布
生成海报
在门户列表页中,默认为当文章中包含有图片是选择第一张作为列表页上的封面。如下图:
但是有时候为了美观与一致性需要在文章里面没有包含图片时,封面照样显示图片。那怎么办?方法(Discuz!X3.2亲测可行):1、在根目录下面sourcemoduleportal里面找到portal_list.php文件。打开127-129行代码为:
- if($value['pic']) {
- $value['pic'] = pic_get($value['pic'], '', $value['thumb'], $value['remote'], 1, 1);
- }
复制代码
含义也就是,获取文章中第一张图片作为封面(是在$value['pic']为true的情况下)2、对上面代码进行改造
- if($value['pic']) {
- $value['pic'] = pic_get($value['pic'], '', $value['thumb'], $value['remote'], 1, 1);
- }else{
- $value['pic'] = 'source/plugin/forum_index/static/cover_'.($value[aid]%10).'.gif';
- }
复制代码
关键:$value['pic'] = 'source/plugin/forum_index/static/cover_'.($value[aid]%10).'.gif'; 这一行代码。含义:在文章不包含图片时,即$value['pic']为false时。从source/plugin/forum_index/static/下面存在的10张图片中随机选取一张作为封面$value[aid]中aid为portal_article_title表中该文章的aid(该值为门户文章中第几篇文章)为什么这样改呢?默认模板目录default下面的portal里面的list.html文件中
复制代码
中的$value[pic]对应 $value['pic'] 核心点:1、source/plugin/forum_index/static/这个路径下面必须存在10张图片(当然,这个路径你可以根据自己需要改为其他的路径)2、原先只针对 if($value['pic']) 为true的情况。现在多添加了为false的情况(文章中不存在图片)
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮