[thinkPHP5项目实战_27]前台文章内容展示
在文章列表下点击文章进入文章展示页面;
本文介绍的文章展示页面功能包括:文章内容(标题,时间,图片,内容),文章点击数,上一篇下一篇功能。
文章的详情信息有Article控制器操作:
<?php
namespace appindexcontroller;
class Article extends Basic
{
public function index()
{
$id=input("artid");//在文章列表页点击进入获取传过来的文章的id值
db("article")->where("artid", $id)->setInc("click");//click字段自增1,setInc第二个参数为空则默认自增1
//根据文章id联表查询该文章的栏目名称,获取该文章的信息
$arts= hinkDb::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= hinkDb::name("article")->where("artid","<",$id)->where("cateid","=",$arts["cateid"])->order("artid desc")->limit(1)->value("artid");
//使用limit方法查询该栏目的下一篇文章的id值
$next= hinkDb::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>效果:
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: Qt中字符串转换十六进制学习笔记
- 下一篇: thinphp 导航栏访问
