使用帝国CMS开发网站时,经常会遇到需要判断当前文章是否存在标题图片(即“标题图”)的情况。正确判断可以避免页面出现图片加载错误,同时提升用户体验。以下是几种常用的判断方法。

通过模板标签判断标题图片是否存在

在内容模板(如 show.html)中,可以利用程序代码结合条件判断来识别是否有标题图片:

[!--titlepic--] 是标题图片的调用字段,如果该字段为空,说明没有设置标题图。

使用PHP代码进行判断示例:

zuojiankuohaophpcn?php

if (!empty($navinfor['titlepic'])) {

echo '<img src="' . $navinfor['titlepic'] . '" alt="[!--title--]" />';

} else {

echo '暂无标题图片';

}

?>

这段代码放在内容模板中,可以安全地输出标题图或提示信息。

使用灵动标签在列表中判断

在列表页或首页调用文章时,常使用灵动标签([e:loop]),此时也可以判断标题图是否存在:

<?[e:loop={栏目ID,显示数量,操作类型,只显示有标题图片}]?>

<a href="<?=bqsr['titleurl']?>">

<img src="<?=bqr['titlepic'] ? bqr['titlepic'] : '/images/no-pic.jpg'?>" />

</a>

<?[/e:loop]?>

其中 bqr['titlepic'] ? bqr['titlepic'] : '/images/no-pic.jpg' 表示:如果有标题图就显示,否则显示默认图。

灵动标签的“只显示有标题图片”选项可在后台选择,对应SQL条件为 titlepic!=''。

利用CSS隐藏无图情况

如果不想用PHP判断,也可以通过CSS配合HTML结构实现视觉上的控制:

给图片外层加一个class,当 [!--titlepic--] 为空时不渲染img标签,或者设置默认背景图:

<div class="title-pic-box"

style="background-image: url(<?=empty($navinfor['titlepic']) ? '/images/default.jpg' : $navinfor['titlepic']?>);"

></div>

这样即使没有标题图,也能保持版面统一。