discuz门户文章列表页如何随机生成封面缩略图?

当文章无图时显示随机图片,当然这随机图片需要存放在固定的位置。

方法如下:

1.在根目录下面source/module/portal里面找到portal_list.php文件,打开找到

    if($value['pic']) {
               $value['pic'] = pic_get($value['pic'], '', $value['thumb'], $value['remote'], 1, 1);
    }

意思是在$value[‘pic’]为true的情况下,获取文章中第一张图片作为封面。

替换为

    if($value['pic']) {
               $value['pic'] = pic_get($value['pic'], '', $value['thumb'], $value['remote'], 1, 1);
    }else{
               $value['pic'] = 'static/ranimg/cover_'.($value[aid]%10).'.jpg';
    }

其中:[the]$value[‘pic’]=’static/ranimg/cover_’.($value[aid]%10).’.jpg’;[/the]

意为:在文章不包含图片时,即$value[‘pic’]为false时。从static/ranimg/下面存在的10张图片中随机选取一张作为封面,$value[aid]中aid为portal_article_title表中该文章的aid(该值为门户文章中第几篇文章)。

主要代码改完后注意两点:

1.根目录下static/ranimg/下必须有10张图,后缀为.jpg。

2.图片命名cover_’.($value[aid]%10).’.jpg,其实就是cover_数字.jpg,如cover_1.jpg、cover_2.jpg、cover_3.jpg等。

OK。

20170106更新

还有更简单的方法,无需修改系统文件,直接在模板里改,找到:

<!--{if $value[pic]}--><div class="atc"><a href="$article_url" target="_blank"><img src="$value[pic]" alt="$value[title]" class="tn" /></a></div><!--{/if}-->

改为

<!--{if $value[pic]}-->
<div class="atc"><a href="$article_url" target="_blank"><img src="$value[pic]" alt="$value[title]" class="tn" /></a></div>
<!--{else}-->
<!--{eval $picname = rand(1,10);}-->
<div class="atc"><a href="$article_url" 
target="_blank"><img src="static/ranimg/cover_{$picname}.jpg" alt="$value[title]" 
class="tn" /></a></div>
<!--{/if}-->

来源/建站笔记

发表评论

昵称

沙发空缺中,还不快抢~