在客户的设计需求中,使用帝国CMS开源系统制作,要求栏目列表页当前文章没有缩略图时,则不显示无图片类提示,直接显示标题和文章简介,具体效果如下:
以上效果,如果使用原始程序代码是无法实现的,所以在这里就需要用到帝国CMS提供的“使用程序代码”功能,来实现我们的进一步要求,具体方法如下:
在帝国CMS后台找到列表页模板,到“修改”项,编辑当前新闻列表模板,在编辑过程右我们仔细观察一下,会发现帝国CMS提供有“使用程序代码功能”,如下图:
勾选上图“程序代码”选项,然后将下面我们提供的代码复制到列表内容模板:
if(empty($r[titlepic]))
{
$titlepic=' ';
}
else
{
$titlepic='<div class="article-img left"><a href="[!--titleurl--]"><img src="[!--titlepic--]"/></a></div>'; //图片前端显示样式
}
//-----------------上面的判断是否有图片-------------------
//----------调取 TAG 关键字起始行,如果你没有这个需要下方删掉-----------
$tagstr='';
$tsql=$empire->query("select tagid from {$dbtbpre}enewstagsdata where id='$r[id]' and classid='$r[classid]' ");
while($tr=$empire->fetch($tsql)){
$tt=$empire->fetch1("select * from {$dbtbpre}enewstags where tagid=".$tr['tagid']." limit 1");
if(!$tt['tagid']){
continue;
}else{
//tagid式的动态链接,采用以下1行代码
//$tagslink=$public_r['newsurl'].'e/tags/?tagid='.$tt['tagid'];
}
$tagstr.='<li><em><a href="[!--news.url--]tags-'.$tt['tagname'].'-0.html" title="'.$tt['tagname'].'" target="_blank">'.$tt['tagname'].'</a></em></li>';//前端TAG格式
}
if(empty($tt[tagid]))
{
$tagstr.="<li><em><a>暂无标签</a></em></li>";
}
$nsmalltext=$r[smalltext];
$ntext=strip_tags($nsmalltext);//去除内容简介里的HTML标签
$newtext=esub($ntext,140,'...') ;//限制140字符
if($no>15)
{
$cs='style="display:none;"';
}
else{
$cs="";
}
//----------调取 TAG 关键字 END 如果你没有这个需要上面就省略掉-----------
//---------- 最终前段显示样式 -----------
$listtemp='<li class="clear_fix">
'.$titlepic.' //图片前段显示位置,若无图片则为空。
<div class="article-text left">
<dl>
<dt><a href="[!--titleurl--]" target="_blank">[!--oldtitle--]</a></dt>
<dd>'.$newtext.'...</dd>
</dl>
<div class="article-text-tag clear_fix">
<span class="left clear_fix"><i class="web-icon time-icon left"></i>[!--newstime--]</span>
<ul class="left clear_fix">
'.$tagstr.'
</ul>
</div>
</div>
</li>';
这里DIV CSS样式表不再一一提供,按自身模板需要请自行编写样式表,最后一步完成保存模板,到数据更新页下,重新生成列表页模板即可。
调取 TAG 关键字,请参考 帝国cms调用tags的方法
这是评论测试
飞歌导航东方红烦得很
这是新的一条评论
未来一年,中国的移动支付市场会是什么样?