第2篇:第1张图与缩略图

dede如何调用文章里的第一张图片?


第1篇文章里的引申2里,在没有手工上传缩略图,而是让系统默认提取文章第1张图时,调用缩略图原图即是调用了文章第1张图,但当缩略图是手工上传的,调用缩略图就不是调用文章第1张图了!



【Case one】


在列表页调用文章第1张图,如果文章没有图片,则调用文章缩略图?

(即先调用第1张图片,再调用缩略图)



调用标签依然沿用调用缩略图的标签 {dede:field.picname/}或{dede:field.litpic/}


需要进行3个操作


第1步

打开include/extend.func.php

最下面插入函数,查询的是文章附加表,如需查询图片集什么的,改表名即可 :


function GetFirstImg($arcid)

global $dsql; 

$query= "SELECT body FROM `dede_addonarticle` where aid='$arcid'"; 

$row = $dsql->GetOne($query); 

$preg = "/<img.*?src=[\'\"](.+?)[\'\"].*?>/i"; 

preg_match_all($preg, $row['body'], $match); 

//print_r($match); 

return $match[1][0]; 


第2步:

修改include/taglib/arclist.lib.php 

织梦调用文章内容的时候需用用到litpic字段,需要重新构造此字段,该字段在function lib_arclistDone()函数里面。


找到约475-507行:

if($row['litpic'] == '-' || $row['litpic'] == '')

{

$row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';

}


在上述代码后增加

if(GetFirstImg($row['id'])!="") { 

$row['litpic']=GetFirstImg($row['id']); 


释义:

添加if(GetFirstImg($row['id'])!="")判断是为了文章无图时仍可选择缩略图显示。 


OK后如下图:

20133944_xVWF.jpg


第3步:

在模板里依然使用调用缩略图的标签 {dede:filed.litpic/}或[field:litpic/]

这样,当文章有第一张图片即显示第一张图片,如文章没有图片,则调用文章缩略图!






×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××


【Case two】

列表页调用缩略图,如没缩略图,则调用文章第1张图,如文章也没图片,则使用系统默认的图片/images/defaultpic.gif

(即先调用缩略图,再调用第1张图片)

但在现实使用中,我们更希望的是,先调用缩略图,如果没有缩略图,则调用文章第1张图片,如果文章也没有图片,则使用默认的图片。

第1步:

如上面的第1步

第2步:

对上面第2步完成后的代码略加修改:

找到约475-507行:

if($row['litpic'] == '-' || $row['litpic'] == '')

{

$row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';

}


将上述代码修改为:

if($row['litpic'] == '-' || $row['litpic'] == ''){

    if(GetFirstImg($row['id'])!="") { 

            $row['litpic']=GetFirstImg($row['id']); 

            } 

    else{

        $row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';

        }

}


第3步:

在模板里依然使用调用缩略图的标签 {dede:filed.litpic/}或[field:litpic/]


××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××× 



由【case one】和【case two】两者会引起矛盾,如果我们采用了【case two】,则幻灯片可能调用到缩略图小图,图片就可能模糊掉,故综合解决矛盾的办法是 采取 【case two】的解决方案,在调用幻灯片时,不调用缩略图小图,而是调用缩略图原图!!


转载于:https://my.oschina.net/zhumofeng/blog/403835

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值