[thinkPHP5專案實戰_27]前臺文章內容展示
阿新 • • 發佈:2018-12-31
在文章列表下點選文章進入文章展示頁面;
本文介紹的文章展示頁面功能包括:文章內容(標題,時間,圖片,內容),文章點選數,上一篇下一篇功能。
文章的詳情資訊有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>