您的位置:首页 > 编程语言 > PHP开发

[thinkPHP5项目实战_27]前台文章内容展示

2017-11-12 00:22 471 查看
在文章列表下点击文章进入文章展示页面;

本文介绍的文章展示页面功能包括:文章内容(标题,时间,图片,内容),文章点击数,上一篇下一篇功能。

文章的详情信息有Article控制器操作:

<?php
namespace app\index\controller;
class Article extends Basic
{
public function index()
{
$id=input('artid');//在文章列表页点击进入获取传过来的文章的id值
db('article')->where('artid', $id)->setInc('click');//click字段自增1,setInc第二个参数为空则默认自增1
//根据文章id联表查询该文章的栏目名称,获取该文章的信息
$arts=\think\Db::name('article')->alias('a')->join('cate c','c.ID = a.cateid','LEFT')->field('a.keywords,a.title,a.content,a.time,a.click,a.artid,a.cateid,c.catename,a.pic')->find($id);
//使用limit方法查询该栏目的上一篇文章的id值
$prev= \think\Db::name('article')->where('artid','<',$id)->where('cateid','=',$arts['cateid'])->order('artid desc')->limit(1)->value('artid');
//使用limit方法查询该栏目的下一篇文章的id值
$next= \think\Db::name('article')->where('artid','>',$id)->where('cateid','=',$arts['cateid'])->order('artid asc')->limit(1)->value('artid');
$this->assign('arts',$arts);
$this->assign('prev',$prev);
$this->assign('next',$next);
return $this->fetch('article');
}

}


文章模板页面:

上一篇下一篇,如果没有则获取到的id值为空,因此需要判断,若有文章,点击的时候需要重新加载当前控制器,并将上一篇或者下一篇的artid传过去进行上面的操作;

文章是否有图片也需要进行判断;

使用数据操作的setInc方法每点击一下文章进行一次自增;

tags标签同文章展示列表页面:

<body>
{include file="Public/header" /}
<div class="container">
<div class="row">
<div class="col-sm-8 blog-main">
<div class="post single-post cate2 auth1">
<div class="post-nav">
{if condition="$prev eq ''"}
<a class="l" href="javascritp:void(0);">上一篇没有了</a> {else/}
<a class="l" href="{:url('article/index',array('artid'=>$prev))}">上一篇 »</a> {/if} {if condition="$next eq ''"}
<a class="r" href="javascritp:void(0);" style="float: right;">下一篇没有了</a> {else/}
<a class="r" href="{:url('article/index',array('artid'=>$next))}" style="float: right;">下一篇 »</a> {/if}
</div>
<h4 class="post-date">{$arts.time|date="Y-m-d H:i:s",###}</h4>
<h2 class="post-title">{$arts.title}</h2> {if condition="$arts['pic'] neq ''"}
<img src="__PUBLIC__{$arts.pic}" /></a>
</p>
{/if}
<div class="post-body">
{$arts.content}
</div>
<h5 class="post-tags">Tags:
<span class="tags">
<?php
$arr=explode(',', $arts['keywords']);
foreach ($arr as $k => $v) {
echo "<a href='http://localhost/test/tp5/Public/index.php/index/Tags/index/tags/$v'>$v</a>";
echo ' ';
}
?>
</span>
</h5>
<h6 class="post-footer">
发布:渣渣 | 分类:{$arts.catename} | 评论:5 | 浏览:<span id="spn75">{$arts.click}</span>
</h6>
</div>
</div>
{include file="Public/sidebar" /}
</div>
</div>
</div>
{include file="Public/footer" /}
</body>
效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: