app->request->param(); $list = ArticleModel::queryPage($params); $category = CategoryModel::find($params['cid']); if ($category) { $baseUrl = $category->url; } else { $baseUrl = '/index/all'; } View::assign([ 'baseUrl' => $baseUrl, 'list' => $list->all(), 'total' => $list->total(), 'limit' => $list->listRows(), 'page' => $list->currentPage(), 'lastPage' => $list->lastPage(), 'pagelist' => $list->render(), 'cid' => $params['cid'], ]); $html = View::fetch(); // if ($this->html) { // $this->makeHtmlFile($html); // } return $html; } /** * 阅读文章 */ 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); if ($data->content_type == 1) { $parsedownExtension = new \ParsedownExtension(); // $parsedownExtension->setTocEnabled(true); $res = $parsedownExtension->text($data->content); // $data->toc = $res['toc']; $data->content = $res['content']; } View::assign('cid', $data->cid); View::assign('data', $data); View::assign('prev_next', $prev_next); $this->seo['title'] = $data->title; $this->seo['key'] = $data->keywords; $this->seo['des'] = $data->summary; View::assign('seo', $this->seo); $html = View::fetch(); return $html; } /** * 文章点赞 */ public function dolike() { $id = $this->request->post('id'); $ip = $this->request->ip(); $log = ArticleDolikeLog::where('aid', $id)->where('ip', $ip)->find(); if ($log) { return ['code' => 1, 'msg' => '多谢喜欢, 已经点过赞了']; } $res = ArticleModel::where('id', $id)->inc('likes')->update(); // 记录 dolike 日志 @ArticleDolikeLog::create([ 'aid' => $id, 'ip' => $this->request->ip() ]); if ($res === false) { return ['code' => 2, 'msg' => '未知错误']; } else { return ['code' => 0]; } } /** * 标签列表 */ 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->all(), 'total' => $list->total(), 'limit' => $list->listRows(), 'page' => $list->currentPage(), 'lastPage' => $list->lastPage(), 'pagelist' => $list->render(), 'yearMonth' => $yearMonth ]); $html = View::fetch(); // if ($this->html) { // $this->makeHtmlFile($html); // } return $html; } /** * 时光轴 */ public function time() { $params = ['order' => 'update_time desc']; $list = ArticleModel::queryPage($params); View::assign([ 'list' => $list->all(), 'total' => $list->total(), 'limit' => $list->listRows(), 'page' => $list->currentPage(), 'lastPage' => $list->lastPage(), 'pagelist' => $list->render(), ]); $html = View::fetch(); return $html; } }