huwhois 5 bulan lalu
induk
melakukan
1bf7c4da53

+ 1 - 4
app/controller/Article.php

@@ -14,7 +14,6 @@ namespace app\controller;
 use think\facade\View;
 use think\exception\HttpException;
 
-use app\model\Category as CategoryModel;
 use app\model\Article as ArticleModel;
 use app\model\ArticleDolikeLog;
 use app\model\Tag;
@@ -22,12 +21,10 @@ use app\model\TagArticle;
 use app\utils\ParsedownUtils;
 
 /**
- * 文章管理  
+ * 文章
  */
 class Article extends Base
 {
-    protected $modelName = "Article";
-
     public function index()
     {
         $params = $this->app->request->param();

+ 18 - 17
app/controller/Base.php

@@ -13,9 +13,11 @@ namespace app\controller;
 use app\BaseController;
 use think\facade\View;
 use think\App;
+use think\facade\Cache;
+use think\facade\Env;
 
 use app\model\Category;
-use think\facade\Env;
+use app\model\System;
 
 class Base extends BaseController
 {
@@ -37,20 +39,17 @@ class Base extends BaseController
     public function __construct(App $app)
     {
         parent::__construct($app);
-        
-        // 控制器初始化
-        $this->initialize();
     }
 
     // 初始化
     protected function initialize()
     {
-        // SEO标题
-        $system = \app\model\System::find(1);
+        $system = System::cache('system', 3600)->find(1);
+
         $this->seo = [
-            'title' => $system->title,
-            'key' => $system->key,
-            'des' => $system->des,
+            'title' => $system['title'],
+            'key' => $system['key'],
+            'des' => $system['des']
         ];
 
         View::assign('seo', $this->seo);
@@ -58,15 +57,17 @@ class Base extends BaseController
         if (Env::get('app.app_env', false)=='dev') {
             View::assign('bdtongji', "");
         } else {
-            View::assign('bdtongji', $system->tongji);
+            View::assign('bdtongji', $system['tongji']);
+        }
+
+        // 栏目
+        $categoryList = Cache::get('category_list');
+
+        if (!$categoryList) {
+            $categoryList = Category::getList();
+            Cache::set("category_list",$categoryList, 3600);
         }
 
-        // 栏目菜单(nav)
-        $categories = Category::getList(['is_nav'=>0]);
-        View::assign('categories', $categories);
-        
-        // 一般栏目
-        $cate_lists = Category::getList(['type'=>0]);
-        View::assign('cate_lists', $cate_lists);
+        View::assign('categoryList', $categoryList);
     }
 }

+ 3 - 4
app/model/Category.php

@@ -8,6 +8,8 @@ namespace app\model;
  */
 class Category extends Base
 {
+    protected $pk = 'id';
+
     protected $schema = [
         "id"          => "int",
         "parent_id"   => "int",
@@ -16,9 +18,7 @@ class Category extends Base
         "route"       => "varchar",
         "type"        => "int",
         "is_nav"      => "int",
-        "remark"       => "varchar",
         "sort"        => "int",
-        'status'      => "varchar",
         "title"       => "varchar",
         "keywords"    => "varchar",
         "description" => "varchar",
@@ -42,8 +42,7 @@ class Category extends Base
 
         $order = isset($param['order']) ? (string) $param['order'] : "sort ASC,id DESC";
 
-        return self::where($where)->field("id,parent_id,name,url,route,type,is_nav,remark,sort,title,keywords,
-            description,is_blank,create_time,update_time")->order($order)->select();
+        return self::where($where)->field("id,parent_id,name,url,route,type,is_nav,sort,is_blank,create_time")->order($order)->select();
     }
 
     // 导航状态修改 1,显示; 0,不显示

+ 15 - 0
app/model/SysMenu.php

@@ -6,6 +6,21 @@ use think\facade\Db;
 
 class SysMenu extends Model
 {
+    protected $pk = 'menuid';
+
+    protected $schema = [
+        "id" => "int",
+        "pid" => "int",
+        "name" => "varchar",
+        "url" => "varchar",
+        "type" => "tinyint",
+        "method" => "tinyint",
+        "icon" => "varchar",
+        "sort" => "smallint",
+        "open" => "tinyint",
+        "index_button" => "tinyint"
+    ];
+
     public static function getUserMenuList($rid)
     {
         if ($rid === 1) {   // 超级管理员

+ 41 - 1
app/model/System.php

@@ -1,9 +1,11 @@
 <?php
+
 /**
  * +----------------------------------------------------------------------
- * | 管理员登录日志模型
+ *管理员登录日志模型
  * +----------------------------------------------------------------------
  */
+
 namespace app\model;
 
 // 引入框架内置类
@@ -11,4 +13,42 @@ use think\Model;
 
 class System extends Model
 {
+    protected $pk = 'id';
+
+    protected $schema = [
+        "id" => "int", // "编号  "
+        "create_time" => "int", // "创建时间    "
+        "update_time" => "int", // "更新时间    "
+        "name" => "varchar", // "网站名称    "
+        "logo" => "varchar", // "网站LOGO    "
+        "icp" => "varchar", // "备案号"
+        "copyright" => "varchar", // "版权信息    "
+        "url" => "varchar", // "网站地址    "
+        "address" => "varchar", // "公司地址    "
+        "contacts" => "varchar", // "联系人"
+        "tel" => "varchar", // "联系电话    "
+        "mobile_phone" => "varchar", // "手机号码    "
+        "fax" => "varchar", // "传真号码    "
+        "email" => "varchar", // "邮箱账号    "
+        "qq" => "varchar", // "QQ    "
+        "qrcode" => "varchar", // "二维码"
+        "title" => "varchar", // "SEO标题     "
+        "key" => "varchar", // "SEO关键字   "
+        "des" => "varchar", // "SEO描述     "
+        "tongji" => "varchar", // "统计代码    "
+        "mobile" => "tinyint", // "手机端"
+        "code" => "tinyint", // "后台验证码  "
+        "message_code" => "tinyint", // "前台验证码  "
+        "message_send_mail" => "tinyint", // "留言邮件提醒"
+        "template_opening" => "tinyint", // "模板修改备份"
+        "template" => "varchar", // "模板目录    "
+        "html" => "varchar", // "Html目录    "
+        "other" => "varchar", // "其他  "
+        "upload_driver" => "tinyint", // "上传驱动    "
+        "upload_file_size" => "varchar", // "文件限制    "
+        "upload_file_ext" => "varchar", // "文件格式    "
+        "upload_image_size" => "varchar", // "图片限制    "
+        "upload_image_ext" => "varchar", // "图片格式    "
+        "editor" => "tinyint" // "编辑器"
+    ];
 }

+ 12 - 5
route/app.php

@@ -9,6 +9,7 @@
 // | Author: liu21st <liu21st@gmail.com>
 // +----------------------------------------------------------------------
 use think\facade\Route;
+use think\facade\Cache;
 use app\model\Category;
 use app\model\SysMenu;
 
@@ -35,12 +36,18 @@ Route::get('/<year>-<month>', 'article/archive');
 Route::get('/:id', 'article/read');
 Route::post('/dolike', 'article/dolike');
 
-$categoryList = Category::field('id, parent_id, name, url, route, type')->select();
+$categoryList = Cache::get('category_list');
+
+if (!$categoryList) {
+    $categoryList = Category::getList();
+    Cache::set("category_list",$categoryList, 3600);
+}
+
 foreach ($categoryList as $category) {
-    if ($category->type == 2) {
-        Route::get($category->url, $category->route);
+    if ($category['type'] == 2) {
+        Route::get($category['url'], $category['route']);
     } else {
-        Route::get($category->url, $category->route)->append(['cid'=>$category->id]);
+        Route::get($category['url'], $category['route'])->append(['cid'=>$category['id']]);
     }
 }
 
@@ -55,7 +62,7 @@ Route::group('sys', function() {
     Route::post('file_manager/uploadImage', 'sys.file_manager/uploadImage');
     Route::post('file_manager/ckeditorUploadImage', 'sys.file_manager/ckeditorUploadImage');
     Route::post('file_manager/uploadUrlImg', 'sys.file_manager/uploadUrlImg');
-    $menuList = SysMenu::where('type', '<>', '0')->field('id, pid, name, url, icon')->select();
+    $menuList = SysMenu::where('type', '<>', '0')->field('id, pid, name, url, icon')->cache('menu_list', 3600)->select();
     foreach ($menuList as $menu) {
         $menuUrl = $menu->url;
         $router = 'sys.' . $menuUrl;

+ 0 - 2
temp/.gitignore

@@ -1,2 +0,0 @@
-*
-!.gitignore

+ 4 - 2
view/article/index.html

@@ -1,7 +1,9 @@
 <div class="box">
   <div class="place">
-    {foreach $cate_lists as $value}
+    {foreach $categoryList as $value}
+    {eq name="value.type" value="0"}
     <a href="{$value.url}" class="{$cid==$value.id ? 'current_category': ''}">{$value.name}</a>
+    {/eq}
     {/foreach}
   </div>
   <div class="blank"></div>
@@ -28,4 +30,4 @@
     </div>
   </div>
   {include file="aside"}
-</div>
+</div>

+ 3 - 1
view/index/index.html

@@ -50,8 +50,10 @@
   <aside>
     <div class="ztbox">
       <ul>
-        {foreach $cate_lists as $value}
+        {foreach $categoryList as $value}
+        {eq name="value.type" value="0"}
         <li><a href="{$value.url}.html">{$value.name}</a></li>
+        {/eq}
         {/foreach}
       </ul>
     </div>

+ 4 - 2
view/layout.html

@@ -17,8 +17,10 @@
     <nav>
       <ul id="starlist">
         <li><a href="{:url('/index')}">首页</a></li>
-        {foreach $categories as $val}
-        <li><a href="{:url($val.url)}">{$val.name}</a></li>
+        {foreach $categoryList as $val}
+        {eq name="val.is_nav" value="0"}
+        <li><a href="{:url($val.url)}" title="{$val.name}" {eq name="val.is_blank" value="1"}target="_blank"{/eq}>{$val.name}</a></li>
+        {/eq}
         {/foreach}
       </ul>
     </nav>