最近访客
百度未收录

Discuz! 门户列表页,文章中无图片时,随机选择一张作为封面图片

在门户列表页中,默认为党文章中包含有图片是选择第一张作为列表页上的封面。但是有时候为了美观与一致性需要在文章里面没有包含图片时,封面照样显示图片。那怎么办?

方法(Discuz!X3.2 X3.4亲测可行):
1、在根目录下面source\module\portal里面找到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文件中

<!--{if $value[pic]}--><div class="atc"><a href="$article_url" target="_blank"><img src="$value[pic]" alt="$value[title]" class="tn" /></a></div><!--{/if}-->
<img src="$value[pic]" alt="$value[title]" class="tn" /> 中的$value[pic]对应 $value['pic']
温馨提示:本文最后更新于2022/11/19 16:44:07。若文章内容或图片失效,请留言联系站长反馈!
!
也想出现在这里? 联系我们
创意广告
© 版权声明
THE END
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容