优化性能和轮播图;

This commit is contained in:
2022-03-19 00:18:31 +08:00
parent 370a6cdc4d
commit 4fda375028
5 changed files with 274 additions and 219 deletions

View File

@@ -18,22 +18,22 @@ class Common extends BaseController
parent::initialize(); parent::initialize();
$list_nav_slide = Nav::where('type', 3)->cache('type_list_3')->order('sort asc')->where('status', 1)->select(); $list_nav_slide = Nav::where('type', 3)->cacheAlways('type_list_3')->order('sort asc')->where('status', 1)->select();
View::assign('list_nav_slide', $list_nav_slide); View::assign('list_nav_slide', $list_nav_slide);
$list_nav_friend_url = Nav::where('type', 2)->cache('type_list_2')->order('sort asc')->where('status', 1)->select(); $list_nav_friend_url = Nav::where('type', 2)->cacheAlways('type_list_2')->order('sort asc')->where('status', 1)->select();
View::assign('list_nav_friend_url', $list_nav_friend_url); View::assign('list_nav_friend_url', $list_nav_friend_url);
$list_header_nav = Nav::where('type', 11)->cache('type_list_11')->order('sort asc')->where('status', 1)->select(); $list_header_nav = Nav::where('type', 11)->cacheAlways('type_list_11')->order('sort asc')->where('status', 1)->select();
View::assign('list_header_nav', $list_header_nav); View::assign('list_header_nav', $list_header_nav);
$list_category_first_level = Category::where('level', 1)->where('status', 1)->where('type', 3)->cache('category_type_list_3')->order('sort asc')->select(); $list_category_first_level = Category::where('level', 1)->where('status', 1)->where('type', 3)->cacheAlways('category_type_list_3')->order('sort asc')->select();
View::assign('list_category_first_level', $list_category_first_level); View::assign('list_category_first_level', $list_category_first_level);
$list_nav_more = Nav::where('type', 8)->cache('type_list_8')->order('sort asc')->where('status', 1)->select(); $list_nav_more = Nav::where('type', 8)->cacheAlways('type_list_8')->order('sort asc')->where('status', 1)->select();
View::assign('list_nav_more', $list_nav_more); View::assign('list_nav_more', $list_nav_more);
$top_posts = Post::where('is_top', 1)->limit(8)->where('type', 3)->cache('top_post')->select(); $top_posts = Post::where('is_top', 1)->limit(8)->where('type', 3)->cacheAlways('top_post')->select();
View::assign('top_posts', $top_posts); View::assign('top_posts', $top_posts);
$this->userHubLogin(); $this->userHubLogin();

View File

@@ -20,13 +20,11 @@ class Index extends Common
public function index() public function index()
{ {
$page_cache_key = md5($this->request->url()); $page_cache_key = md5($this->request->url());
$content = Cache::get($page_cache_key); $content = Cache::get($page_cache_key);
if (!empty($content)) { if (!env('app_debug') && !empty($content)) {
return $content; return $content;
} }
@@ -34,13 +32,15 @@ class Index extends Common
$sub_category = []; $sub_category = [];
$current_category = []; $current_category = [];
if (!empty($this->request->param('category_id'))) { $category_id = $this->request->param('category_id');
$sub_category = Category::where('pid', $this->request->param('category_id'))->where('type', 3)->order('sort asc')->select();
$current_category = Category::find($this->request->param('category_id'));
if (empty($this->request->param('sub_category_id'))) {
$categorys = [$this->request->param('category_id')];
$categorys = array_merge($categorys, array_column((array)Category::getListLevel($this->request->param('category_id')), 3)); if (!empty($category_id)) {
$sub_category = Category::where('pid', $category_id)->where('type', 3)->order('sort asc')->select();
$current_category = Category::find($category_id);
if (empty($this->request->param('sub_category_id'))) {
$categorys = [$category_id];
$categorys = array_merge($categorys, array_column((array)Category::getListLevel($category_id), 3));
$categorys_where = PostCategory::whereIn('category_id', $categorys); $categorys_where = PostCategory::whereIn('category_id', $categorys);
@@ -76,6 +76,8 @@ class Index extends Common
$content = View::fetch(); $content = View::fetch();
Cache::tag('page_cache')->set($page_cache_key, $content); Cache::tag('page_cache')->set($page_cache_key, $content);
return $content;
} }

View File

@@ -17,6 +17,7 @@ class Category extends Base
public static $autoClearCache = [ public static $autoClearCache = [
[ [
'name' => 'category_type_list', 'name' => 'category_type_list',
'field' => 'type' 'field' => 'type'

View File

@@ -17,7 +17,8 @@
margin : 5px 20px; margin : 5px 20px;
} }
.nav-left-list a:hover, .nav-left-list a.current { .nav-left-list a:hover,
.nav-left-list a.current {
background-color: #6699CC; background-color: #6699CC;
color : #fff; color : #fff;
} }
@@ -87,7 +88,8 @@
border-color: #6699CC; border-color: #6699CC;
} }
.post-item, .plus-post-item { .post-item,
.plus-post-item {
display : flex; display : flex;
justify-content: flex-start; justify-content: flex-start;
align-items : center; align-items : center;
@@ -100,7 +102,8 @@
width: calc(100% - 160px); width: calc(100% - 160px);
} }
.post-item .poster, .plus-post-item .poster { .post-item .poster,
.plus-post-item .poster {
width : 160px; width : 160px;
height : 100px; height : 100px;
background-size : cover; background-size : cover;
@@ -161,7 +164,8 @@
} }
.content-container .info span { .content-container .info span {
margin-right: 5px;; margin-right: 5px;
;
} }
.content-container .desc { .content-container .desc {
@@ -182,21 +186,27 @@
.nav-left-list { .nav-left-list {
text-align: left; text-align: left;
} }
.nav-left-list a { .nav-left-list a {
display: inline-block; display: inline-block;
margin : 5px; margin : 5px;
} }
.post-item .poster, .plus-post-item .poster {
.post-item .poster,
.plus-post-item .poster {
width : 80px; width : 80px;
height: 60px; height: 60px;
} }
.post-item>div:nth-child(2) { .post-item>div:nth-child(2) {
width: calc(100% - 80px); width: calc(100% - 80px);
} }
.post-item .info .title { .post-item .info .title {
font-weight: 500; font-weight: 500;
font-size : 14px; font-size : 14px;
} }
.content-container .title { .content-container .title {
font-size : 18px; font-size : 18px;
line-height: 28px; line-height: 28px;
@@ -285,3 +295,45 @@ a.post-item:visited{
.ul-content img { .ul-content img {
max-width: 100%; max-width: 100%;
} }
.index-poster {
height: 100%;
filter: blur(2px);
}
#banner .panel {
display : flex;
align-items : center;
justify-content: center;
text-align : center;
text-shadow : 0 0 2px #333;
color : #fff;
z-index : 99;
height : 100%;
position : absolute;
top : 0;
left : 0;
width : 100%;
}
#banner .index-poster {
height : 100%;
width : 100%;
background-size : cover;
background-position: center;
position : absolute;
z-index : 0;
}
#banner .title {
font-size: 28px;
}
#banner .layui-carousel-arrow {
z-index: 999;
}
#banner .layui-carousel-ind {
z-index: 999;
}

View File

@@ -26,11 +26,16 @@
{volist name='list_nav_slide' id='nav'} {volist name='list_nav_slide' id='nav'}
<a href="{$nav.value|default='javascript:;'}" target="{$nav.target}"> <a href="{$nav.value|default='javascript:;'}" target="{$nav.target}">
<img src="{$nav.img}"> <div class="index-poster" style="background-image: url({$nav.img});">
</div>
<div class="panel"> <div class="panel">
<div class="panel-main">
<p class="title">{$nav.title}</p> <p class="title">{$nav.title}</p>
<p class="desc">{$nav.desc}</p> <p class="desc">{$nav.desc}</p>
</div> </div>
</div>
</a> </a>
{/volist} {/volist}
@@ -42,13 +47,10 @@
{notempty name='$sub_category'} {notempty name='$sub_category'}
<div class="tab-list"> <div class="tab-list">
<a href="{:url('Index/index',['category_id'=>$Request.param.category_id])}" {eq <a href="{:url('Index/index',['category_id'=>$Request.param.category_id])}" {eq name='$Request.param.sub_category_id|default=0' value='0' } class="current" {/eq}>全部</a>
name='$Request.param.sub_category_id|default=0' value='0' } class="current" {/eq}>全部</a>
{volist name='$sub_category' id='category'} {volist name='$sub_category' id='category'}
<a href="{:url('Index/index',['category_id'=>$Request.param.category_id,'sub_category_id'=>$category.id])}" <a href="{:url('Index/index',['category_id'=>$Request.param.category_id,'sub_category_id'=>$category.id])}" {eq name='$Request.param.sub_category_id|default=0' value='$category.id' } class="current" {else/}{/eq}>{$category.title}</a>
{eq name='$Request.param.sub_category_id|default=0' value='$category.id' } class="current"
{else/}{/eq}>{$category.title}</a>
{/volist} {/volist}
</div> </div>
{/notempty} {/notempty}
@@ -61,9 +63,7 @@
<div class="post-list"> <div class="post-list">
{volist name='list_post' id='post'} {volist name='list_post' id='post'}
<a href="{:url('Post/read',['uid'=>$post.uid])}" class="post-item" <a href="{:url('Post/read',['uid'=>$post.uid])}" class="post-item" onmouseover="$(this).find('.poster').addClass('layui-anim-scale')" onmouseout="$(this).find('.poster').removeClass('layui-anim-scale')">
onmouseover="$(this).find('.poster').addClass('layui-anim-scale')"
onmouseout="$(this).find('.poster').removeClass('layui-anim-scale')">
{notempty name='$post->getData("poster")'} {notempty name='$post->getData("poster")'}
<div class="poster layui-anim" style="background-image: url('{$post.poster}');"></div> <div class="poster layui-anim" style="background-image: url('{$post.poster}');"></div>