在织梦CMS中,文章置顶功能可以帮助用户将重要的文章显示在网站首页或列表页的顶部位置,这对于提高文章的曝光率和阅读量非常有帮助,有时我们可能只需要让文章置顶一天,而不是一直置顶,本文将介绍如何在织梦CMS中实现让文章置顶一天的功能。
修改数据库表结构
要实现让文章置顶一天的功能,首先需要修改数据库表结构,我们需要在dede_archives
表中添加一个名为top_endtime
的字段,用于存储文章置顶结束的时间,执行以下SQL语句:
ALTER TABLEdede_archives
ADDtop_endtime
DATETIME NOT NULL;
修改后台文章发布界面
我们需要修改后台文章发布界面,添加一个输入框,用于设置文章置顶结束的时间,打开/dede/templets/article_articleedit.htm
文件,找到如下代码:
<tr> <td width="40%" class="td_label">置顶</td> <td width="60%" align="left"> <input type="checkbox" name="ismake" id="chk_ismake" value="1" onclick="check_ismake(this)"> </td> </tr>
在这段代码后面添加如下代码:
<tr id="tr_top_endtime" style="display:none;"> <td width="40%" class="td_label">置顶结束时间</td> <td width="60%" align="left"> <input type="text" name="top_endtime" id="txt_top_endtime" value="" class="Wdate" onfocus="WdatePicker({lang:'zhcn',dateFmt:'yyyyMMdd HH:mm:ss'})"> </td> </tr>
在check_ismake()
函数中添加如下代码:
function check_ismake(obj) { if (obj.checked) { document.getElementById("tr_top_endtime").style.display = "tablerow"; } else { document.getElementById("tr_top_endtime").style.display = "none"; } }
修改前台列表页模板
我们需要修改前台列表页模板,根据文章的置顶结束时间来判断是否显示置顶样式,打开/templets/default/list_article.htm
文件,找到如下代码:
{dede:field name='toprank' function='GetTopRank(@me)'/}
将其替换为如下代码:
{dede:field name='toprank' function='GetTopRank(@me, @top_endtime)'/}
在include/arc.archives.class.php
文件中,添加如下代码:
function GetTopRank($rid, $top_endtime) {
global $dsql;
$row = $dsql>GetOne("SELECT top_endtime FROM#@__archives
WHERE id='$rid'");
if ($row['top_endtime'] > time()) {
return '<span class="stick">置顶</span>';
} else {
return '';
}
}
至此,我们已经实现了让文章置顶一天的功能,当管理员在后台设置文章置顶结束时间后,前台列表页会根据该时间自动取消文章的置顶样式。
FAQs:
Q1:如何查看文章的置顶结束时间?
A1:在后台文章管理列表中,可以查看到每篇文章的置顶结束时间,如果文章没有设置置顶结束时间,那么该字段将显示为空。
Q2:如何修改文章的置顶结束时间?
A2:在后台文章编辑页面,可以找到“置顶结束时间”输入框,输入新的时间并保存即可,注意,只有当文章处于置顶状态时,该输入框才会显示。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1232836.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复