Sfoglia il codice sorgente

admin add navigation setting & baidu push setting

Vien 5 anni fa
parent
commit
197f64055d

+ 1 - 2
app/Console/Commands/PushBaidu.php

@@ -55,9 +55,8 @@ class PushBaidu extends Command
      */
     public function handle()
     {
-        dump(config('vienblog.baidu.manual_push.open'));
         if(!config('vienblog.baidu.manual_push.open')) {
-            dump('未开启主动推送,请在config/vienblog.php中的baidu选项中根据注释内容配置,开启主动推送需要先配置domain和api');
+            dump('未开启主动推送,请在后台中配置domain和api');
             return;
         }
 

+ 10 - 1
app/Http/Controllers/Admin/Index/InfoController.php

@@ -18,7 +18,7 @@ class InfoController extends Controller
     public function edit(Request $request)
     {
         $information = Information::query()
-            ->select( 'id', 'site_title', 'site_keywords', 'site_description', 'author_name', 'author_intro', 'author_avatar', 'navigation')
+            ->select('id', 'site_title', 'site_keywords', 'site_description', 'author_name', 'author_intro', 'author_avatar', 'navigation')
             ->first()->toArray();
         return view('admin.info.edit', ['information' => $information]);
     }
@@ -47,6 +47,15 @@ class InfoController extends Controller
         $information->author_intro = $input['author_intro'];
         $information->author_avatar = $input['author_avatar'];
 
+        $navigation = [];
+        for ($i = 0; $i < 9; $i++) {
+            $title = $input['navigation-title-'.strval($i)];
+            $url = $input['navigation-url-'.strval($i)];
+            if ($title && $url) $navigation[] = ["title" => $title, "url" => $url];
+        }
+
+        $information->navigation = json_encode($navigation, JSON_UNESCAPED_UNICODE);
+
         $information->save();
 
         return view('admin.info.edit', ['information' => $information->toArray()])->with(['message' => 'success']);

+ 20 - 12
app/Http/Controllers/Admin/Index/SwitchController.php

@@ -61,6 +61,8 @@ class SwitchController extends Controller
 //        ]);
 
         $baidu_autopushswitch = isset($input["baidu_autopush-switch"]) ? 1 : 0;
+        $baidupush_domain = $input["baidupush-domain"];
+        $baidupush_api = $input["baidupush-api"];
         $carouselswitch = isset($input["carousel-switch"]) ? 1 : 0;
         $carouselimage1 = $input["carousel-image-1"];
         $carouselurl1 = $input["carousel-url-1"];
@@ -99,53 +101,55 @@ class SwitchController extends Controller
         $adsense->status = $adsenseswitch;
         $adsense->extra = json_encode(["script" => $adsensescript], JSON_UNESCAPED_UNICODE);
         $adsense->save();
-        
+
         $counter = Switches::query()->where("name", "=", "counter")->first();
         $counter->status = $counterswitch;
         $counter->extra = json_encode(["script" => $counterscript], JSON_UNESCAPED_UNICODE);
         $counter->save();
-        
+
         $motto = Switches::query()->where("name", "=", "motto")->first();
         $motto->status = $mottoswitch;
         $motto->extra = json_encode(["title" => $mottotitle, "content" => $mottocontent], JSON_UNESCAPED_UNICODE);
         $motto->save();
-        
+
         $tag = Switches::query()->where("name", "=", "tag")->first();
         $tag->status = $tagswitch;
         $tag->extra = json_encode(["title" => $tagtitle, "count" => $tagcount], JSON_UNESCAPED_UNICODE);
         $tag->save();
-        
+
         $category = Switches::query()->where("name", "=", "category")->first();
         $category->status = $categoryswitch;
         $category->extra = json_encode(["title" => $categorytitle, "count" => $categorycount], JSON_UNESCAPED_UNICODE);
         $category->save();
-        
+
         $hot = Switches::query()->where("name", "=", "hot")->first();
         $hot->status = $hotswitch;
         $hot->extra = json_encode(["title" => $hottitle, "count" => $hotcount], JSON_UNESCAPED_UNICODE);
         $hot->save();
-        
+
         $latest = Switches::query()->where("name", "=", "latest")->first();
         $latest->status = $latestswitch;
         $latest->extra = json_encode(["title" => $latesttitle, "count" => $latestcount], JSON_UNESCAPED_UNICODE);
         $latest->save();
-        
+
         $popular = Switches::query()->where("name", "=", "popular")->first();
         $popular->status = $popularswitch;
         $popular->extra = json_encode(["title" => $populartitle, "count" => $popularcount], JSON_UNESCAPED_UNICODE);
         $popular->save();
-        
+
         $carousel = Switches::query()->where("name", "=", "carousel")->first();
         $carousel->status = $carouselswitch;
         $carousel->extra = json_encode([
             ["image" => $carouselimage1, "url" => $carouselurl1, "description" => $carouseldescription1],
             ["image" => $carouselimage2, "url" => $carouselurl2, "description" => $carouseldescription2],
             ["image" => $carouselimage3, "url" => $carouselurl3, "description" => $carouseldescription3]
-            ], JSON_UNESCAPED_UNICODE);
+        ], JSON_UNESCAPED_UNICODE);
         $carousel->save();
 
         $baidu_autopush = Switches::query()->where("name", "=", "baidu_autopush")->first();
         $baidu_autopush->status = $baidu_autopushswitch;
+        $baidu_autopush->extra = json_encode(["domain" => $baidupush_domain ? $baidupush_domain : "",
+            "api" => $baidupush_api ? $baidupush_api : ""], JSON_UNESCAPED_UNICODE);
         $baidu_autopush->save();
 
         $switches = self::switches();
@@ -153,9 +157,10 @@ class SwitchController extends Controller
         return view('admin.switch.edit', ['switches' => $switches])->with(['message' => 'success']);
     }
 
-    private function switches() {
+    private function switches()
+    {
         $switches = Switches::query()
-            ->select( 'id', 'name', 'status', 'extra')
+            ->select('id', 'name', 'status', 'extra')
             ->get()->toArray();
 
         $dict = array();
@@ -215,8 +220,11 @@ class SwitchController extends Controller
         ];
 
         $baidu_autopush = $dict['baidu_autopush']['status'];
+        $baidu_push = $dict['baidu_autopush']['extra'] ? $dict['baidu_autopush']['extra'] :
+            ["domain" => "", "api" => ""];
 
-        $switches = ['sidebar' => $sidebar, 'adsense' => $adsense, 'counter' => $counter, 'baidu_autopush' => $baidu_autopush];
+        $switches = ['sidebar' => $sidebar, 'adsense' => $adsense, 'counter' => $counter,
+            'baidu_autopush' => $baidu_autopush, 'baidu_push' => $baidu_push];
 
         return $switches;
     }

+ 11 - 1
app/Providers/InitServiceProvider.php

@@ -48,6 +48,7 @@ class InitServiceProvider extends ServiceProvider
                 ];
 
                 $this->app->get('config')->set('vienblog.author', $author);
+                $this->app->get('config')->set('vienblog.header.links', json_decode($information->navigation, true));
             }
 
             $switches = Switches::query()
@@ -111,11 +112,20 @@ class InitServiceProvider extends ServiceProvider
                     "script" => array_key_exists('script', $counter_script) ? $counter_script['script'] : ""
                 ];
 
+                $baidu_autopush_script = $dict['baidu_autopush']['extra'];
+                $baidu_push_domain = array_key_exists('domain', $baidu_autopush_script) ? $baidu_autopush_script['domain'] : "";
+                $baidu_push_api = array_key_exists('api', $baidu_autopush_script) ? $baidu_autopush_script['api'] : "";
+                $baidu_push = [
+                    "domain" => $baidu_push_domain,
+                    "api" => $baidu_push_api,
+                    "open" => $baidu_push_domain && $baidu_push_api
+                ];
+
                 $this->app->get('config')->set('vienblog.sidebar', $sidebar);
                 $this->app->get('config')->set('vienblog.ad', $adsense);
                 $this->app->get('config')->set('vienblog.counter', $counter);
                 $this->app->get('config')->set('vienblog.baidu.auto_push', $dict['baidu_autopush']['status']);
-
+                $this->app->get('config')->set('vienblog.baidu.manual_push', $baidu_push);
 //            dump($this->app->get('config')->get('vienblog'));
             }
         } catch (\Exception $e) {

+ 40 - 12
resources/views/admin/info/edit.blade.php

@@ -13,47 +13,75 @@
             </div>
         </div>
 
+        <h4>基本信息</h4>
+
+        <br>
+
         {{--<canvas class="my-4" id="myChart" width="900" height="380"></canvas>--}}
         <form action="{{ route('admin.info.update') }}" id="edit-form" method="post">
             @csrf
             <input type="hidden" name="id" value="{{ $information['id'] }}">
-            <div class="form-group col-md-4">
+            <div class="form-group col-md-6">
                 <label for="site_title">网站名</label>
                 <input type="text" class="form-control" id="site_title" name="site_title"
-                       value="{{ $information['site_title'] }}" required>
+                       value="{{ $information['site_title'] }}">
             </div>
 
-            <div class="form-group col-md-4">
+            <div class="form-group col-md-6">
                 <label for="site_description">网站描述</label>
                 <input type="text" class="form-control" id="site_description" name="site_description"
-                       value="{{ $information['site_description'] }}" required>
+                       value="{{ $information['site_description'] }}">
             </div>
 
-            <div class="form-group col-md-4">
+            <div class="form-group col-md-6">
                 <label for="site_keywords">网站关键字</label>
                 <input type="text" class="form-control" id="site_keywords" name="site_keywords"
-                       value="{{ $information['site_keywords'] }}" placeholder="用英文逗号分隔 建议2-5个词" required>
+                       value="{{ $information['site_keywords'] }}" placeholder="用英文逗号分隔 建议2-5个词">
             </div>
 
-            <div class="form-group col-md-4">
+            <div class="form-group col-md-6">
                 <label for="author_name">作者名称</label>
                 <input type="text" class="form-control" id="author_name" name="author_name"
-                       value="{{ $information['author_name'] }}" required>
+                       value="{{ $information['author_name'] }}">
             </div>
 
-            <div class="form-group col-md-4">
+            <div class="form-group col-md-6">
                 <label for="author_intro">作者介绍</label>
                 <input type="text" class="form-control" id="author_intro" name="author_intro"
-                       value="{{ $information['author_intro'] }}" required>
+                       value="{{ $information['author_intro'] }}">
             </div>
 
 
-            <div class="form-group col-md-4">
+            <div class="form-group col-md-6">
                 <label for="author_avatar">头像</label>
                 <input type="text" class="form-control" id="author_avatar" name="author_avatar"
-                       value="{{ $information['author_avatar'] }}" required>
+                       value="{{ $information['author_avatar'] }}">
             </div>
 
+            <br>
+
+            <h4>导航</h4>
+
+            <br>
+
+            @foreach(json_decode($information['navigation'], true) as $navigation)
+                <div class="form-row col-md-6">
+                    <div class="form-group col-md-4">
+                        <label for="navigation-title-{{ $loop->index }}">顶部导航{{ $loop->index }}</label>
+                        <input type="text" class="form-control" id="navigation-title-{{ $loop->index }}"
+                               name="navigation-title-{{ $loop->index }}"
+                               value="{{ $navigation['title'] }}">
+
+                    </div>
+                    <div class="form-group col-md-8">
+                        <label for="navigation-url-{{ $loop->index }}">跳转链接{{ $loop->index }}</label>
+                        <input type="text" class="form-control" id="navigation-url-{{ $loop->index }}"
+                               name="navigation-url-{{ $loop->index }}"
+                               value="{{ $navigation['url'] }}"/>
+                    </div>
+                </div>
+            @endforeach
+
             <button type="submit" class="mt-2 ml-3 btn btn-sm btn-primary">提交</button>
         </form>
     </main>

+ 14 - 0
resources/views/admin/switch/edit.blade.php

@@ -230,6 +230,20 @@
                 </div>
             </div>
 
+            <div class="form-row">
+                <div class="form-group col-md-2">
+                    <label for="baidupush-domain">手动推送 博客地址</label>
+                    <input type="text" class="form-control" id="baidupush-domain" name="baidupush-domain"
+                           value="{{ $switches['baidu_push']['domain'] }}" placeholder="示例: https://vienblog.com">
+
+                </div>
+                <div class="form-group col-md-4">
+                    <label for="baidupush-api">手动推送 百度API</label>
+                    <input type="text" class="form-control" id="baidupush-api" name="baidupush-api"
+                           value="{{ $switches['baidu_push']['api'] }}" placeholder="请到百度站长平台获取"/>
+                </div>
+            </div>
+
             <h3>AdSense</h3>
             <div class="form-group">
                 <div class="custom-control custom-switch">