第3篇:幻灯片调用大图

首页幻灯片需要做的比较大,但是一般默认调用的是缩略图,幻灯片显示就不清楚了。网上找了半天解决方法,有的偷懒的做法,是把缩略图改大一点;有的比较麻烦的是要修改数据库,添加一个字段保存大图的路径。这些网友的方法效果都不太好。



将上述代码修改为:

if($row['litpic'] == '-' || $row['litpic'] == ''){  //如果缩略图为空

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

            $row['litpic']=GetFirstImg($row['id']); //调用文章第1张图片

            } 

    else{ 

        $row['litpic'] = $GLOBALS['cfg_cmspath'].'/images/defaultpic.gif';  //如果文章没图片,调用系统默认的

        }

}


第3步: 

在模板里调用幻灯片图片(即文章缩略图)时循环调用标签:

[field:litpic function=FocusUseFirstImg('@me ')/]

{dede:field name='litpic' function="FocusUseFirstImg(@me)"/}


其中,@me就是指缩略图litpic。调用缩略图标签是一样的,只是增加了一个function=FocusUseFirstImg('@me '),这样幻灯片图片就都会调用原图了。



这样幻灯片调用缩略图时,如果有缩略图,则调用缩略图(缩略图如果是手工上传的,本身就是清晰的大图,如果是提取第1张图,则会调用缩略图原图),如果没有缩略图,调用文章第1张图,如文章也没图片,则使用系统默认的图片。


OK,perfect!!



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

引申:如果幻灯片是用index_image.htm这个模板生成的,查看一下读取缩略图的代码:

picarr[[field:global.autoindex/]] = “[field:litpic/]“;

其实缩略图和原图,名称差别不大,只是缩略图多出了_lp,得到缩略图的情况下,再获取原图,就很简单了。找到下面的js代码

 

for(i=1;i<picarr.length;i++){

if(files=="") files = picarr[i];

else files += "|"+picarr[i];

}

修改为

 

for(i=1;i<picarr.length;i++){

if(files=="") files = picarr[i].replace("-lp","");

else files += "|"+picarr[i].replace("-lp","");

}

这样就OK了,其他所有的地方,都不需要更改,只需要修改两行js代码,就实现了幻灯片调用大图

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

找到约475-507行:

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

{

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

}

第2步:

修改  /include/taglib/arclist.lib.php 

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

故,为了让幻灯片显示清楚,我们需要让幻灯片一直调用大图,方法参见第1篇文章引申2和第2篇文章。



综合第1篇文章引申2和第2篇文章,现给出


幻灯片调用不模糊的解决方案:



第1步:

打开 /include/extend.func.php

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

-----------------------------------------------------------------

//函数1:获取文章第1张图片

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:幻灯片调用缩略图时专用:如果缩略图是小图,则将调用小图对应的原图

function FocusUseFirstImg($str_pic)                  //幻灯片调用专用

{  

$str_sub=str_replace(  "-lp" ""  ,   "$str_pic" );  // 把缩略图中的 -lp 替换成空(即删掉),就是文章第一张图的地址了。

return $str_sub;  

}  

-----------------------------------------------------------------

一般首页幻灯片是采用调用文章缩略图的方式,比如有5张幻灯片,则在后台单独建立一个幻灯片的栏目,栏目内添加5篇文章,每篇文章都有缩略图,首页幻灯片的图片就调用自这些文章的缩略图。


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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值