您现在的位置是:网站首页 > 脚本编程>
thinkphp 实现文章归档
闲着无聊弄了个文章归档,实在是没有什么文章写了只有将这个小小的代码贴出来了。
1、按栏目归档
实现代码:
“select count(a.channelid) as num,c.name,c.id from think_article a,think_channel c where a.channelid=c.id group by c.name order by c.id desc”
效果图:
2、按时间归档
实现代码:
“select count(id) as num,FROM_UNIXTIME(time,'%Y年%m月') as t,FROM_UNIXTIME(time,'%Y/%m') as t1 from think_article group by t order by t desc”
html代码:
<div class="widget" id="widget_statistics">
<h2>文章归档</h2>
<div style="height:110px;overflow:auto;">
<ul>
<volist id="vo" name="gui">
<li title="{$vo.t}({$vo.num}篇)"><a href="{$time|host}__APP__/data/index/{$vo.t1}">{$vo.t}({$vo.num}篇)</a></li>
</volist>
</ul>
</div>
</div>
效果图:
点击相应的年份查询相应的文章代码:
$User = A("Index");
$User->head();
$User->right();
$User->footer();
$y=$_GET['_URL_']['2'];//年
$m=$_GET['_URL_']['3']; //月
if (in_array($m, array(1, 3, 5, 7, 8, 01, 03, 05, 07, 08, 10, 12)))
{
$e = 31; //天数
}elseif ($m == 02)
{
if ($y % 400 == 0 || ($y % 4 == 0 && $y % 100 !== 0))
{
$e = 29; //天数
} else {
$e = 28; //天数
}
} else {
$e = 30; //天数
}
$d=01;
$a='00:00:00';
$b='23:59:59';
$ks=$y.'-'.$m.'-'.$d.' '.$a;//开始时间
$js=$y.'-'.$m.'-'.$e.' '.$b;//结束时间
$start=strtotime($ks);
$end=strtotime($js);
$da=M("Article");
$rs=$da->table('think_channel c,think_article a')->where("c.id=a.channelid and a.state=0 and a.time>= $start and a.time <= $end")->field('c.name,a.id,a.title,a.write,a.time,a.channelid,a.info,a.tags,a.write,a.click,a.fileurl')->order('id desc')->select();
$cont=count($rs);
$this->assign('cont',$cont);
$this->assign('rs',$rs);
$kw=$y."年".$m."月的文章";
$this->assign('kw',$kw);
$this->display();
由于使用的程序不同需要做相应的修改即可!!
打赏本站,你说多少就多少

本文地址:https://www.qi522.com/view/43.html
来 源:千奇博客
下一篇:php 实用的小代码