心灵咖啡

 找回密码
 注册加入
查看: 1614|回复: 0
收起左侧

[dede经验] dedeeims 首页调用单页文章内容和图片

[复制链接]
发表于 2013-5-14 23:51:06 | 显示全部楼层 |阅读模式
这两天在修改dedeeims网站的时候,阿头要求在首页调用栏目为单页内容的栏目。

由于单页栏目没有具体标签,因此通过{dede:sql}这个标签来调用,如果没有修改的话,单页内容栏目的数据存在数据库dede_arctype这个表里面,所以可以这样调用:


{dede:sql sql="select * from dede_arctype where id=69"}
       [field:typename/]<!--这个是栏目名称-->
       [field:content function=cn_substr(Html2Text(@me),80)/] <!--截取部分文字作为简介-->
       {/dede:sql}


关于调用这部分,网上有不少相关的内容,但是问题来了,在排版上要求要配上缩略图。但是单页内容没有缩略图啊,偶的神啊,继续钻研去。先在网上搜了一下,找到一些方法,其中有一个方法来自百度空间星火视频教程里面的。具体内容不说,他的方法是自己构建一个函数来获得文章的第一张图片,函数如下:


function firstimg($str)
{
     $str1 = str_replace('"','',$str);
     preg_match('/<img[^>]*>/i',$str1,$str2);
     $str3 = array_shift($str2);
     $str4 = str_replace('<img ','',$str3);
     $str5 = '<img class=pic '.$str4;
     $str6 = str_replace(' alt= ',' ',$str5);
     return $str6;
}


在dedeeims的安装目录include下面新建一个extend.func.php,这个是dedeeims留给用户开发的自定义函数接口,在common.func.php最后有相关的两行代码。建好文件后,把上面的代码复制进去,然后在需要的地方用


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


调用(单页的时候,body改为content)。上面的代码可以拿到图片,但是有一个问题,它还会把所有的img标签里面的所有图片属性都一起拿到。dedeeims的fck可视化编辑器编辑内容时会有很多额外的标签,尤其是不懂html代码的网络编辑编过的内容,更是惨不忍睹。图片调用出来后,整个首页版面都变了,而且不好写css样式。我去,继续改。后来想了一想,我把它改成了这样,算是完成了。代码贴出如下,如果有什么不对的地方,请指教:




//获取单页文章内容第一张图片
function firstimg($str)
{
     $str1 = str_replace('"','',$str);//获得文章所有内容,去掉所有的双引号(" "),因为dede核心不允许双引号
     preg_match('/<img[^>]*>/i',$str1,$str2);//获得所有的图片,保存到$str2
     $str3 = array_shift($str2);//利用array_shift()获得文章内容第一张图片
     preg_match_all('#src\s*=\s*["\']?([^\s"\']*)#i', $str3 , $TheSrc);//由于dede 的fck 编辑器会带上很多属性,为了方便控制样式,只获取图片的src地址
      //通过pint_r($TheSrc)打印得到下面一个二维数组,区别在于一个前面有src=,一个没有。取没有src的:$TheSrc[1][0]
    //Array
    //(
    //[0] => Array([0] => src=.../uploads/allimg/120721/4_120721152925_1.jpg )
    //[1] => Array ( [0] => .../uploads/allimg/120721/4_120721152925_1.jpg )
     // )


  return $TheSrc[1][0];
//返回src地址,前面调用可以用[filed:filedname function=firstimg(@me)]调用具体为<img src="        [filed:filedname function=firstimg(@me)]"/> 可随意控制样式



}



--本文转载http://blog.sina.com.cn/xufeng513

相关帖子

——论坛程序问题,请给 qq124627513(微信同步)留言。(系统默认签名,点击修改
您需要登录后才可以回帖 登录 | 注册加入

本版积分规则

广告
广告位
广告位
广告位
关闭

站长推荐上一条 /1 下一条

QQ|联系我们|手机版|小黑屋|Archiver|心灵咖啡 ( 粤ICP备16121829号-1 )

GMT+8, 2024-4-29 03:46 , Processed in 0.073863 second(s), 28 queries .

Powered by Discuz! and 心灵文学

Copyright © 2001-2021, Tencent Cloud.


本站文章为原创会员所有,未经许可禁止去版权转载,但欢迎分享本站文章链接!另,若有抄袭侵权,联系即删禁。
快速回复 返回顶部 返回列表