67 lines
2.7 KiB
PHP
67 lines
2.7 KiB
PHP
<?php
|
|
namespace app\controller;
|
|
|
|
use app\model\{Article as MArticle, Category};
|
|
|
|
class Article extends Base
|
|
{
|
|
//详情
|
|
public function detail($id=0)
|
|
{
|
|
if($id <= 0){
|
|
return $this->error('错误页面');
|
|
}
|
|
$article = MArticle::getById($id);
|
|
if(empty($article)){
|
|
return $this->error('无此文章');
|
|
}
|
|
MArticle::updateById($id, ['views' => $article['views'] + 1]);
|
|
$category = Category::getById($article['category_id']);
|
|
$prev = MArticle::getPrevArticleByIdAndCategoryId($id, $article['category_id']);
|
|
$next = MArticle::getNextArticleByIdAndCategoryId($id, $article['category_id']);
|
|
|
|
$keywords = $article['seo_keywords'] ? $article['seo_keywords'] : $this->system['seo_keywords'];
|
|
$description = $article['seo_description'] ? $article['seo_description'] : $this->system['seo_description'];
|
|
$this->setSeo($article['title'], $keywords, $description);
|
|
$this->data['article'] = $article;
|
|
$this->data['category'] = $category;
|
|
$this->data['categoryId'] = $category['id'];
|
|
$this->data['prev'] = $prev;
|
|
$this->data['next'] = $next;
|
|
return $this->view($category['template_detail'] ?? '');
|
|
}
|
|
//列表页
|
|
public function index()
|
|
{
|
|
$categoryId = input('param.category_id/d', 0);
|
|
if($categoryId <= 0){
|
|
return $this->error('错误页面');
|
|
}
|
|
$category = Category::getById($categoryId);
|
|
if(empty($category)){
|
|
return $this->error('错误页面');
|
|
}
|
|
$childCategory = Category::getChildrenByParentId($categoryId);
|
|
$description = $category['description'] ? $category['description'] : $this->system['seo_description'];
|
|
$this->setSeo($category['title'], $this->system['seo_keywords'], $description);
|
|
$childList = [];
|
|
$defaultList = [];
|
|
// 若存在下级子栏目则优先分组显示子栏目内容
|
|
if(!empty($childCategory)) {
|
|
foreach ($childCategory as $child) {
|
|
$childList[] = [
|
|
'category' => $child,
|
|
'items' => MArticle::getListPageByCategory($child['id'], $child['number'] ? $child['number'] : 20),
|
|
];
|
|
}
|
|
} else {
|
|
$defaultList = MArticle::getListPageByCategory($categoryId, $category['number'] ? $category['number'] : 20);
|
|
}
|
|
$this->data['items'] = $defaultList;
|
|
$this->data['childList'] = $childList;
|
|
$this->data['category'] = $category;
|
|
$this->data['categoryId'] = $categoryId;
|
|
$this->data['childCategory'] = $childCategory;
|
|
return $this->view($category['template_list'] ?? '');
|
|
}
|
|
} |