在网站开发中,为了提升内容的时效性和吸引用户点击,我们经常需要在文章标题旁加上"NEW"、"最新"或"热门"等醒目标识。帝国CMS(EmpireCMS)本身功能强大,但默认模板可能不包含这种精细化的动态判断逻辑。本文将分享一段通过二次开发实现的"最新资讯"判断代码,帮助您轻松为网站内容注入活力。

一、核心思路
我们的目标是:自动判断文章发布时间与当前时间的差值,如果该差值在设定的时间范围内(如24小时、3天等),则显示特定标识。
实现这一功能的核心在于利用帝国CMS内置的bclass函数获取数据,并在循环中通过PHP进行时间戳计算与逻辑判断。
二、代码实现(列表页示例)

以下是一个适用于帝国CMS列表页(list.php)的经典代码示例。该代码会列出指定栏目下的新闻,并在24小时内发布的文章标题前显示一个红色的"[最新]"标识。
<?php
// 获取栏目ID,这里以当前栏目为例,也可写死为特定ID,如使用bclass函数获取该栏目下最新的10篇文章
$ecms_bqr = $empire->query("SELECT title, newstime, titleurl FROM {$dbtbpre}ecms_news WHEREstime DESC LIMIT 10");
while($bqr = $empire->fetch($ecms_bqr)){
// 文章标题
<img i="7381106" src="https://oss-beijing-m8.openstorage.cn/cloud-gc/wx/official-account/image/kolors/2026-04-09/f1af4a5847c04258b38e818a1098054d.png" />
$title = $bqr['title'];
// 文章发布时间(格式:Y-m-d H:i:s)
$newstime = $bqr['newstime'];
// 文章链接
$titleurl = $bqr['titleurl'];
// 核心判断逻辑
// 将发布时间转换为时间戳
$news_timestamp = strtotime($newstime);
// 获取当前时间的时间戳
$current_timestamp = time();
// 计算时间差(单位:秒)
$time_diff = $current_timestamp - $news_timestamp;
// 定义"最新"的时间范围(这里设置为24小时 * 3600秒)
$latest_range = 24 * 3600;
// 判断并输出
echo '<li>';
// 如果时间差小于定义的范围,则显示[最新]标识
if ($time_diff < $latest_range) {
echo '<span style="color:red; font-weight:bold;">[最新]</span> ';
}
echo '<a href="' . $titleurl . '">' . $title . '</a>';
echo '</li>';
}
?>
三、代码详解与自定义
-
数据获取 :
$ecms_bqr = $empire->query(...)是帝国CMS标准的数据库查询方式,它从新闻数据表(ecms_news)中按发布时间降序获取数据。 -
时间戳转换 :
strtotime($newstime)将数据库中的日期时间字符串(如2023-10-27 14:30:00)转换为Unix时间戳(一个整数),便于计算。 -
核心判断 :
if ($time_diff < $latest_range)是逻辑核心。如果文章发布至今的秒数小于86400秒(即24小时),条件成立。 -
灵活自定义:
-
修改时间范围 : 只需改变
$latest_range的值。例如,想判断3天内的文章,可设为$ wWw.XuXin5J.CoM latest_range = 3 * 24 * 3600;。 -
修改显示样式 : 可以轻松替换
<span style="color:red; font-weight:bold;">[最新]</span>部分。例如,改用图片:if ($time_diff < $latest_range) { echo '<img src="/images/new.gif" alt="最新资讯" /> '; } -
应用于内容页 : 此逻辑同样适用于内容页(
show.php)。只需在内容页模板中获取当前文章的$newstime,并进行同样的判断即可,用于在文章标题旁做标记。
-
四、优势与总结
这段二次开发代码的优势在于:
-
精准动态: 标识的显示完全由系统自动判断,无需人工干预,准确无误。
-
灵活性高: 时间范围和显示样式均可根据网站需求轻松调整。
-
性能高效: 逻辑简单,计算量小,对服务器负载几乎无影响。
通过以上简单的二次开发,您就能为帝国CMS网站增添一个非常实用且能有效提升用户体验的功能。希望这段代码分享对您的项目有所帮助!