阅读文章

DedeCMS 列表页调用文章的第一张图片

[ 来源:侠客站长站 | 作者:编辑转载 | 时间:2010-05-30 | 我要投稿 | 发表评论 ]

摘要:1:有的幻灯片有大小图,一般来说那大图比小的要大很多,例如我仿制的163k的文章幻灯片就是如此,我看很多人都放弃了这个幻灯,因为显示大图的地方调用缩略图的话就会图片失真... 2:用来实现有些博客风格一个功能: ...

1:有的幻灯片有大小图,一般来说那大图比小的要大很多,例如我仿制的163k的文章幻灯片就是如此,我看很多人都放弃了这个幻灯,因为显示大图的地方调用缩略图的话就会图片失真...

2:用来实现有些博客风格一个功能:在列表页面每个日志的标题下显示一张图片(不是dede的缩略图哦)

方法:

由于标签arclist不支持body,所以arclist调用的地方改为sql标签 独立模型列表和list支持底层模板调用body ,所以可以直接使用

  1. {dede:sql sql='select * from dede_archives left join 
  2. dede_addonarticle on dede_archives.id=dede_addonarticle.aid 
  3. where find_in_set("f",dede_archives.flag)>0 order by 
  4. dede_archives.id desc limit 0,5'}   
  5. <div>[field:body function=firstimg('@me')/]
  6. </div>   
  7. {/dede:sql}  

注意:实现的办法是自定义一个函数

函数代码

  1. Copy codefunction firstimg($str)   
  2. {   
  3. $str1 = str_replace('"','',$str);   
  4. preg_match('/<img[^>]*>/i',$str1,$str2);   
  5. $str3 = array_shift($str2);   
  6. $str4 = str_replace(' alt',' ',$str3);   
  7. return $str4;   
  8. }  

将以上代码加入到include下的channelunit.func.php中,

底层模板字段调用的时候

[field:body function=firstimg('@me')/]

标签调用

{field:body function=firstimg('@me')/}

不过这个函数有它的局限性,文章中的图片一定要出现在文章的开头才能达到效果,否则会失败

好了,辛苦了几天终于搞定!


发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
验证码:点击我更换图片

广告赞助

推荐信息

论坛交易信息

站长俱乐部

分类索引

回到顶部