首页
站长论坛BBS
救助
投稿
discuz视频教程
discuz技术支持
版块
登录
快速注册

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

建站高手 2016-12-22 [模板制作修改] 来自PC 复制链接
12665
discuz使用视频教程
31idc

马上注册,一起探讨正确快速的建站方法

您需要 登录 才可以下载或查看,没有帐号?快速注册

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

方法(Discuz!X3.2亲测可行):
1、在根目录下面source\module\portal里面找到portal_list.php文件。打开
127-129行代码为:
  1. if($value['pic']) {
  2.            $value['pic'] = pic_get($value['pic'], '', $value['thumb'], $value['remote'], 1, 1);
  3. }
复制代码

含义也就是,获取文章中第一张图片作为封面(是在$value['pic']为true的情况下)

2、对上面代码进行改造
  1. if($value['pic']) {
  2.            $value['pic'] = pic_get($value['pic'], '', $value['thumb'], $value['remote'], 1, 1);
  3. }else{
  4.            $value['pic'] = 'source/plugin/forum_index/static/cover_'.($value[aid]%10).'.gif';
  5. }
复制代码

关键:$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文件中
  1. <!--{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']

核心点:
1、source/plugin/forum_index/static/这个路径下面必须存在10张图片(当然,这个路径你可以根据自己需要改为其他的路径)
2、原先只针对  if($value['pic']) 为true的情况。现在多添加了为false的情况(文章中不存在图片)




上一篇:DSU VIP插件修改版权信息出空白页问题解决方法
下一篇:邀请码下方添加超链教程
jhlxj 发表于 2017-2-7 11:05:23 来自PC
强烈支持,站帮网有你更精彩
www.jhlxj.cn-卧螺离心机
www.jhlxj.com-叠螺机
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

快速回复 返回顶部 返回列表