帝国cms7.5首页或列表图文列表的形式是最常见的博客或资讯站列表样式,但是有时候文章没有配图,那么如何实现有图则调用第一张图片作为缩略图,无图则不显示图片呢?
如图:
首页实现方式:万能标签调用指定标签模板id
首页使用万能标签,调用文章,且需要设置标签模板ID为指定id,模板id需要新建,列表内容模板(list.var) (*)与下面列表页实现方式一样
如果对万能标签调用不了解的,请参阅文章:帝国cms万能标签的使用教程
列表页实现方式:列表内容模板(list.var) (*)添加以下代码
注意勾选“使用程序代码”
- $fr=$empire->fetch1("select newstext from {$dbtbpre}ecms_news_data_{$r[stb]} where id='$r[id]'");
- $neirong=$fr['newstext'];
- $imgcount=substr_count($neirong,"<img");
- $listtemp='';
- $titlepic='';
- if ($imgcount>3){
- $tmpimg ='';
- $pattern='/<[img|IMG].*?src="(.*?(?:[.gif|.jpg|.png]))".*?[/]?>/';
- preg_match_all($pattern,$neirong,$match);
- for($j=0;$j<4;$j++){
- $tmpimg.='
- <a href="[!--titleurl--]" target="_blank">
- <img src="'.$match[1][$j].'">
- </a>
- </p>';
- }
- $listtemp='
- <li>
- <h3 class="blogtitle"><a href="[!--titleurl--]" target="_blank">[!--title--]</a></h3>
- <span class="bplist">'.$tmpimg.'</span>
- <p class="blogtext">[!--smalltext--]... </p>
- <p class="bloginfo"><span>[!--newstime--]</span><span>【<a href="[!--this.classlink--]">[!--this.classname--]</a>】</span></p>
- </li>
- ';
- }
- else if(empty($r[titlepic])){
- $listtemp='<li>
- <h3 class="blogtitle"><a href="[!--titleurl--]" target="_blank">[!--title--]</a></h3>
- <p class="blogtext">[!--smalltext--] </p>
- <p class="bloginfo"><span>[!--newstime--]</span><span>【<a href="[!--this.classlink--]" target="_blank">'.$class_r[$r[classid]]['classname'].'</a>】</span></p>
- <a href="[!--titleurl--]" class="viewmore">阅读更多</a> </li>';
- }
- else{
- $listtemp='<li>
- <h3 class="blogtitle"><a href="[!--titleurl--]" target="_blank">[!--title--]</a></h3>
- <span class="blogpic imgscale"><i><a href="[!--this.classlink--]">[!--this.classname--]</a></i><a href="[!--titleurl--]" title="[!--title--]"><img src="[!--titlepic--]" alt="[!--title--]"></a></span>
- <p class="blogtext">[!--smalltext--]... </p>
- <p class="bloginfo"><span>[!--newstime--]</span><span>【<a href="[!--this.classlink--]">[!--this.classname--]</a>】</span></p>
- </li>';
- }