Renyi-Fan

thinkphp5项目--个人博客(六)

项目地址

fry404006308/personalBlog: personalBlog
https://github.com/fry404006308/personalBlog

 

一、频道推荐

控制器

 1 <?php
 2 namespace app\index\controller;
 3 
 4 use app\index\controller\Base;
 5 class Article extends Base
 6 {
 7     public function index()
 8     {
 9         $arid=input(\'arid\');
10         $articleres=db(\'article\')->find($arid);
11         //访问一次这个方法,说明文章被访问一次,让文章的click字段值加1
12         db(\'article\')->where(\'id\',\'=\',$arid)->setInc(\'click\');
13         $cateres=db(\'cate\')->find($articleres[\'cateid\']);
14 
15         //推荐
16         $recres=db(\'article\')->where(array(\'cateid\'=>$cateres[\'id\'],\'state\'=>1))->limit(8)->select();
17         $this->assign(array(
18             \'articleres\'=>$articleres,
19             \'cateres\'=>$cateres,
20             \'recres\'=>$recres,
21         ));
22 
23 
24         return view();
25     }
26 }

视图

 1                 <!--频道推荐-->
 2                 <div class="hotsnew">
 3                     <div class="til"><h4>频道推荐</h4></div>
 4                     <ul>
 5                         {volist name=\'recres\' id=\'value\' }
 6                         <li>
 7                             <div class="tu">
 8                                 <a href=\'{:url(\'article/index\',array(\'arid\'=>$value.id))}\' target="_blank">
 9                                     <img src="{if condition="$value[\'pic\'] neq \'\' "}__IMG__{$value.pic} {else /}__PUBLIC__/images/error.png{/if} " alt="{$value.title}"/>
10                                 </a>
11                             </div>
12                             <p><a href=\'{:url(\'article/index\',array(\'arid\'=>$value.id))}\'>{$value.title}</a></p>
13                         </li>
14                         {/volist}
15 
16                     </ul>
17                 </div>    

 

二、右侧的热门点击和推荐阅读 

 

控制器,这里在Base控制器,因为右边这部分是公共部分

 1 <?php
 2 namespace app\index\controller;
 3 
 4 use think\Controller;
 5 use think\Db;
 6 class Base extends Controller
 7 {
 8     public function _initialize()
 9     {
10         //得到栏目数据,并且分配
11         $cates = Db::name(\'cate\')->order(\'id asc\')->select(); 
12         $this->assign(\'cates\',$cates);
13 
14         //执行处理右边的热门点击和推荐阅读
15         $this->right();
16     }
17 
18     //处理右边的热门点击和推荐阅读
19     public function right(){
20         //热门点击
21         $clicks=db(\'article\')->order(\'click desc\')->limit(4)->select();
22         //推荐
23         $recs=db(\'article\')->where(\'state\',\'=\',1)->order(\'click desc\')->limit(4)->select();
24         $this->assign(array(
25             \'clicks\'=>$clicks,
26             \'recs\'=>$recs,
27         ));
28     }
29 
30 }

 

视图

            热门点击
            {volist name=\'clicks\' id=\'value\'}
            <li class="hm-t-item hm-t-item-img"><a data-pos="0" title="{$value.title}" target="_blank" href="{:url(\'article/index\',array(\'arid\'=>$value[\'id\']))}" class="hm-t-img-title" style="visibility: visible;"><span>{$value.title}</span></a></li>
            {/volist}

            推荐阅读
            {volist name=\'recs\' id=\'value\'}
            <li class="hm-t-item hm-t-item-img"><a style="visibility: visible;" class="hm-t-img-title" href="{:url(\'article/index\',array(\'arid\'=>$value[\'id\']))}" target="_blank" title="{$value.title}" data-pos="0"><span>{$value.title}</span></a></li>
            {/volist}

 

三、公共部分的模块,方法写在公共控制器里面

 

分类:

技术点:

相关文章: