123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <?php
- declare (strict_types = 1);
- /**
- * +----------------------------------------------------------------------
- * 文章控制制器
- * @author huwhis@163.com
- * @version 0.0.6
- * +----------------------------------------------------------------------
- */
- namespace app\index\controller;
- // 引入框架内置类
- use think\facade\View;
- use app\common\model\Category as CategoryModel;
- use app\common\model\Article as ArticleModel;
- use app\common\model\ArticleTags as ArticleTagsModel;
- use think\exception\HttpException;
- /**
- * 文章管理
- */
- class Article extends Base
- {
- protected $modelName = "Article";
- public function index()
- {
- $params = $this->app->request->param();
- $list = ArticleModel::queryPage($params);
-
- $baseUrl = $this->request->baseUrl();
- View::assign([
- 'baseUrl' => $baseUrl,
- 'list' => $list->all(),
- 'total' => $list->total(),
- 'limit' => $list->listRows(),
- 'page' => $list->currentPage(),
- 'lastPage' => $list->lastPage(),
- 'pagelist' => $list->render()
- ]);
- return View::fetch();
- }
- /**
- * 阅读文章
- */
- public function read($id=null)
- {
- $data = ArticleModel::getOne($id);
- if (!$data) {
- throw new HttpException(404, '页面不存在');
- }
- $data->hits += 1;
- $data->save();
- $prev_next = ArticleModel::getNextPrev($id, $data->cid);
- View::assign('cid', $data->cid);
- View::assign('data', $data);
- View::assign('prev_next', $prev_next);
- if ($data->content_type==1) {
- $parsedownExtension = new \ParsedownExtension();
- // $parsedownExtension->setTocEnabled(true);
- $res = $parsedownExtension->text($data->content);
- // $data->toc = $res['toc'];
- $data->content = $res['content'];
- }
- return View::fetch();
- }
- /**
- * 文章点赞
- */
- public function dolike()
- {
- $id = input('post.id');
- $res = ArticleModel::where('id', $id)->inc('likes')->update();
- if ($res===false) {
- return ['code' => 2];
- } else {
- return ['code' => 0, 'msg'=>'未知错误'];
- }
- }
- /**
- * 标签列表
- */
- public function tags($name=null)
- {
- if (!$name) {
- throw new HttpException(404, '标签不可为空');
- }
- $list = ArticleTagsModel::tagsList($name);
- View::assign([
- 'list' => $list,
- 'tag' => $name
- ]);
- return View::fetch();
- }
- /**
- * 归档页面(时间)
- */
- public function archive($year=0, $month=0)
- {
- $yearMonth = $year . '-' . $month;
- if ($year==0 || $month==0) {
- throw new HttpException(404, '日期格式不正确');
- }
- $list = ArticleModel::queryPage(['yearMonth'=>$yearMonth]);
- View::assign([
- 'list' => $list,
- 'yearMonth' => $yearMonth
- ]);
- return View::fetch();
- }
- /**
- * 时光轴
- */
- public function time()
- {
- $list =ArticleModel::field('id,cid,title,titlepic,username,summary,hits,sorts,status,create_time')->with(['category'])->order('update_time desc')->paginate();
- View::assign('list', $list);
- return View::fetch();
- }
-
- }
|