帝国CMS首页,列表页调用文章的第一张图片

aaa

需求:

带标题图的直接调用标题图,不带标题图的,调用文章的第一张图片做标题图,如果文章也没有图片,那就调用系统设定的一张图片。

调用内页图片的话,先提取内容页的字段内容,然后进行正则,得到一个数组,然后判断数组的长度。

把这个函数放到e/class/connect.php里面,最好是放在//替换列表模板/标签模板/搜索模板这一段的上方,因为相关代码都在这一块,修改方便。

然后再在’$titleurl=sys_ReturnBqTitleLink($r);//链接‘这一段的下面加上

’$diyfpic=diy_imgFirst($r);‘ 引入函数;

最后一步:在$listtemp里面加上我们的函数,

$listtemp=str_replace('[!--diyfpic--]',$diyfpic,$listtemp);

这样就可以做列表模板里面进行调用了。

列表模板里面使用的时候,直接 使用 [!--diyfpic--] 即可。
 

  1. function diy_imgFirst($r){    
  2. global $empire,$dbtbpre;    
  3.         $fr=$empire->fetch1("select newstext from {$dbtbpre}ecms_news_data_1 where id='$r[id]'");    
  4.         $newstext=stripslashes($fr['newstext']);//去除反斜杠并且获取文章正文内容    
  5.         $pattern = "/.*src=\"([^^]*?)\".*/i"; //正则    
  6.         preg_match_all($pattern, $newstext, $match);    
  7.         if(count($match[1])>=1){    
  8.              $diyfpic=$match[1][0];    
  9.         }else{    
  10.              $diyfpic='/e/data/images/notimg.gif';    
  11.         }    
  12. return $diyfpic;    
  13. }  
改进版:
  1. function diy_getimg($r,$n){    
  2.     global $empire,$dbtbpre,$class_r;    
  3.         $tbname=$class_r[$r[classid]][tbname];    
  4.         $fr=$empire->fetch1("select newstext from {$dbtbpre}ecms_".$tbname."_".$r[fstb]." where id='$r[id]'");    
  5.         $newstext=stripslashes($fr['newstext']);    
  6.         $pattern = "/<img.*?src.*?=.*?[\'|\"]([^\s]+\.*?)[\'|\"].*?>/i";     
  7.         preg_match_all($pattern, $newstext, $match);    
  8.         if(count($match[1])>=$n){    
  9.              $diypic=$match[1][$n-1];    
  10.         }else{    
  11.              $diypic='/e/data/images/notimg.gif';    
  12.         }    
  13.         return $diypic;    
  14. }    

完善了下取图片的正则,将此代码复制到/e/class/userfun.php文件中(不影响后续程序升级),然后在调用的地方直接调用该函数。不仅仅可以调用第一张图片

示例:

调用第一张 $pic1=diy_getimg($id,1);

调用第二张 $pic2=diy_getimg($id,2);

本文标题:帝国CMS首页,列表页调用文章的第一张图片

本文链接:https://www.kaifatu.com/article/776.html

相关文章

帝国CMS后台的"数据更新"中"刷新首页"为"刷新所有自定义列表"

帝国CMS怎么修改后台的数据更新的刷新首页为刷新所有自定义列表呢?因为帝国CMS 默认首页是没有分页列表效果的。所以墨鱼做此类模板的时候使用的自定义列表功能。对于有首页有列表的模板,如果要生成首页 ,在“后台-数据更新&rdqu…

Kaifatu 帝国cms教程
2021-06-02 345

帝国cms更改栏目路径后无法打开新路径文章解决办法

起因:比如把帝国cms栏目路径为dgcms改为diguo,新的栏目下发布文章依旧是旧栏目链接dgcms,解决办法如下:…

Kaifatu 帝国cms教程
2021-07-13 651

帝国CMS终极栏目和非终极栏目的区别

栏目功能说明…

Kaifatu 帝国cms教程
2021-01-20 452

帝国cms调用某个数据表中会员的发帖排行榜教程

调用会员在某个数据表发帖量的排行,没有发布信息的会员按照会员ID排序 sql:select u.username,u.userid,(select count(*) from phome_ecms_photo where userid = u.userid) a…

Kaifatu 帝国cms教程
2021-05-06 469

帝国CMS怎么去掉文章链接日期目录路径

帝国CMS怎么去掉文章链接日期目录路径呢?帝国CMS怎么去掉文章链接日期目录路径呢?这样的怎么实现?其实方法不难,下面帝国cms模板网小编就来为大家分享帝国CMS删除文章链接日期路径的方法: 1、首先我们要在帝国cms后台栏目管理,找到对应…

Kaifatu 帝国cms教程
2021-03-10 659
发表评论
暂无评论