• 网站认证
  • 教程:6,667|
  • 话题:6,325|
  • 评论:55|
  • 会员:243|
  • 注册
  • 查看作者
  • DedeCMS 列表页调用文章的第一张图片

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

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

    办法, 

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

    {dede:sql sql='select * from dede_archives left join dede_addonarticle on dede_archives.id=dede_addonarticle.aid where find_in_set("f",dede_archives.flag)>0 order by dede_archives.id desc limit 0,5'} 

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

    {/dede:sql} 

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

    函数代码 

    Copy codefunction firstimg($str) 

    $str1 = str_replace('"','',$str); 

    preg_match('/<img[^>]*>/i',$str1,$str2); 

    $str3 = array_shift($str2); 

    $str4 = str_replace(' alt= ',' ',$str3); 

    return $str4; 

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

    底层模板字段调用的时候 

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

    标签调用 

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

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

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

  • 0
  • 0
  • 0
  • 92
  • 请登录之后再进行评论

    登录
  • 做任务
  • 实时动态
  • 偏好设置
  • 单栏布局 侧栏位置: