调整页面

This commit is contained in:
2020-09-15 14:01:28 +08:00
parent 3ac390f68f
commit f91a3b76c1
20 changed files with 5068 additions and 642 deletions

97
app/Helpers/function.php Normal file
View File

@@ -0,0 +1,97 @@
<?php
use App\Models\Category;
use App\Models\Article;
function getOneCategory($categoryId, $return = '')
{
$category = Category::find($categoryId);
if ($category) {
if ($return) {
return $category->{$return};
}
return $category;
}
return new Category;
}
/**
* Notes: 获取文章分类详情
* @Author: 玄尘
* @Date : 2020/9/10 13:21
* @param $categoryId
* @param string $result
* @return \App\Models\Article
*/
function getOneArticleBYCate($categoryId, $result = '')
{
$info = Article::where('category_id', $categoryId)->latest('sort')->latest()->first();
if ($info) {
if ($result) {
return $info->{$result};
}
return $info;
} else {
return '';
}
return new Article;
}
/**
* Notes: 获取分类下的文章
* @Author: 玄尘
* @Date : 2020/9/10 10:05
* @param $categoryId
* @param $take
* @return \App\Models\Article
*/
function getArticlesBYCate($categoryId, $take = 8, $mark = 'one')
{
if ($mark == 'one') {
$articles = Article::where('category_id', $categoryId)
->where('status', 1)
->latest('sort')
->latest()
->take($take)
->get();
} else {
$cate = Category::find($categoryId);
$ids = $cate->getAllChildrenId();
$articles = Article::whereIn('category_id', $ids)
->where('status', 1)
->latest('sort')
->latest()
->take($take)
->get();
}
return $articles;
}
//获取子分类
function getCateChild($categoryId)
{
return Category::where('status', 1)
->where('parent_id', $categoryId)
->orderBy('order', 'asc')
->get();
}
//获取顶级分类
function getTopCate($categoryId)
{
$parent = Category::find($categoryId);
while ($parent->parent_id != 0) {
$parent = $parent->parent;
}
return $parent;
}

View File

@@ -10,7 +10,7 @@ class CategoryController extends Controller
/**
* 显示分类
* @param Category $category [description]
* @param Category $category [description]
* @return [type] [description]
*/
public function index(Category $category)
@@ -18,15 +18,15 @@ class CategoryController extends Controller
if ($category->type == Category::TYPE_SHOW && $category->article_id) {
return redirect("articles/" . $category->article_id);
} else {
$articles = $category->relations(Category::TYPE_ARTICLE)->paginate();
$articles = $category->relations(Category::TYPE_ARTICLE)->paginate(2);
$parent = $category;
if ($category->childrens->isEmpty()) {
if ($parent->childrens->isEmpty()) {
$parent = $category->parent;
}
$advert = Advert::where('category_id',73)->first();
$advert = Advert::where('category_id', 73)->first();
return view('category.show', compact('articles', 'category', 'parent','advert'));
return view('category.show', compact('articles', 'category', 'parent'));
}
}

View File

@@ -19,18 +19,19 @@ class Controller extends BaseController
{
//顶部分类
$categorys = Category::where('status', 1)
->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW])
->where('top_show', 1)
->orderBy('order', 'desc')
->select('id', 'title')
->get();
->whereIn('type', [Category::TYPE_ARTICLE, Category::TYPE_SHOW])
->where('top_show', 1)
->latest('order')
->select('id', 'title')
->get();
//地步友情链接
if (url()->current() == route('index.index')){
if (url()->current() == route('index.index')) {
$adverts = Advert::where('category_id', 72)->get();
}else{
} else {
$adverts = Advert::where('category_id', 73)->get();
}
View::share('all_categorys', $categorys);
View::share('adverts', $adverts);
}

View File

@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\Models\Advert;
use App\Models\Article;
use App\Models\Category;
use App\Models\Link;
@@ -16,30 +17,23 @@ class IndexController extends Controller
*/
public function index()
{
$xwdt = $this->getArticle([53]); //新闻动态
$kjpt = $this->getArticle([18]); //科技平台
$zcjc = $this->getArticle([8]); //政府决策服务
$zmzj = $this->getArticle([74, 127, 88]); //专家学者
$tjgg = $this->getArticle([54]); //通知公告
$kjlt = $this->getArticle([58]); //科技发展论坛
$cxtd = $this->getArticle(Category::find(43)->getAllChildrenId(), 5); //创新团队
$info = Article::where('category_id', 1)->first(); //简介
$kxyts = $this->getArticle(Category::find(17)->getAllChildrenId(), 10); //科学研究与特色品牌建设
$yjzx = $this->getArticle([61], 2); //研究中心
//研究中心
$links = Link::get();
return view('index.index', compact('links', 'xwdt', 'kjpt', 'zcjc', 'zmzj', 'tjgg', 'kjlt', 'tjgg', 'kjlt', 'info', 'kxyts', 'cxtd', 'yjzx'));
$adverts = Advert::where('category_id', 72)->latest('sort')->get();
$lt_adverts = Advert::where('category_id', 175)->latest('sort')->get();
return view('index.index', compact('links', 'adverts', 'lt_adverts'));
}
//通用获取文章
public function getArticle($category_ids, $take = 3)
{
return Article::whereIn('category_id', $category_ids)
->select('id', 'description', 'title', 'created_at', 'cover', 'content')
->orderBy('created_at', 'desc')
->take($take)
->get();
->select('id', 'description', 'title', 'created_at', 'cover', 'content')
->orderBy('created_at', 'desc')
->take($take)
->get();
}
}

View File

@@ -7,8 +7,14 @@ use App\Models\Traits\HasOneCover;
class Article extends Model
{
use HasOneCover, BelongsToCategory;
public function getLinkAttribute()
{
return route('article.show', $this);
}
public function get_content_cover()
{
preg_match("/<img.*?src=\"([^\"]+)\"[^>].*?>/isU", str_ireplace("\\", "", $this->content), $matches);
@@ -41,6 +47,7 @@ class Article extends Model
}
}
return $path;
}

View File

@@ -7,17 +7,22 @@ use Encore\Admin\Traits\ModelTree;
class Category extends Model
{
use AdminBuilder, ModelTree;
public const TYPES = [
'article' => '文章列表',
'show' => '文章详情',
'advert' => '广告',
];
public const TYPE_SHOW = 'show';
public const TYPE_SHOW = 'show';
public const TYPE_ARTICLE = 'article';
public const TYPE_ADVERT = 'advert';
public const TYPES = [
self::TYPE_ARTICLE => '文章列表',
self::TYPE_SHOW => '文章详情',
self::TYPE_ADVERT => '图片',
];
public function getLinkAttribute()
{
return route('category.show', $this);
}
/**
* 关联的数据
@@ -27,7 +32,7 @@ class Category extends Model
{
switch ($this->type) {
case self::TYPE_SHOW:
return $this->hasOne(Article::class)->where('id',$this->article_id);
return $this->hasOne(Article::class)->where('id', $this->article_id);
break;
case self::TYPE_ARTICLE:
return $this->hasMany(Article::class);
@@ -42,12 +47,12 @@ class Category extends Model
public function childrens()
{
return $this->hasMany(self::class,'parent_id');
return $this->hasMany(self::class, 'parent_id');
}
public function parent()
{
return $this->hasOne(self::class,'id','parent_id');
return $this->hasOne(self::class, 'id', 'parent_id');
}
public function article()