diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index 26aa4a23..472da937 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -237,7 +237,14 @@ class AdminController extends Controller }) ->handle(); - return view('admin.options')->with('forms', compact('general', 'resources', 'announ')); + $meta = Option::form('meta', OptionForm::AUTO_DETECT, function ($form) { + $form->text('meta_keywords')->hint(OptionForm::AUTO_DETECT); + $form->text('meta_description')->hint(OptionForm::AUTO_DETECT); + $form->textarea('meta_extras')->rows(3); + })->handle(); + + return view('admin.options') + ->with('forms', compact('general', 'resources', 'announ', 'meta')); } public function getUserData(Request $request) diff --git a/resources/lang/en/options.yml b/resources/lang/en/options.yml index 43e94d97..c7b7546a 100644 --- a/resources/lang/en/options.yml +++ b/resources/lang/en/options.yml @@ -150,3 +150,14 @@ resources: The CDN URL you give must refer to a mirror of /public directory, all the files of that directory will be loaded as CDN.
How to verify? Verify if {Your CDN URL}/app/index.js can be accessed. + +meta: + title: SEO tags + meta_keywords: + title: Keywords + hint: Split with commas. + meta_description: + title: Description + hint: Description defined in "general options" will be used if you left it empty. + meta_extras: + title: Other Custom Tags diff --git a/resources/lang/zh_CN/options.yml b/resources/lang/zh_CN/options.yml index 3065824a..12f960d0 100644 --- a/resources/lang/zh_CN/options.yml +++ b/resources/lang/zh_CN/options.yml @@ -149,3 +149,14 @@ resources: description: | 填写的 CDN 地址必须是 /public 目录的镜像,此目录下的所有文件都将会从 CDN 加载。
测试方法:检查 {填写的地址}/app/index.js 是否能够访问。 + +meta: + title: SEO 标签 + meta_keywords: + title: 关键词 + hint: 使用半角逗号分隔 + meta_description: + title: 描述 + hint: 留空以使用 站点配置 中的站点描述 + meta_extras: + title: 其它自定义 标签 diff --git a/resources/views/admin/options.blade.php b/resources/views/admin/options.blade.php index 1d75f54d..f1921b67 100644 --- a/resources/views/admin/options.blade.php +++ b/resources/views/admin/options.blade.php @@ -25,6 +25,8 @@ {!! $forms['announ']->render() !!} {!! $forms['resources']->render() !!} + + {!! $forms['meta']->render() !!} diff --git a/resources/views/auth/master.blade.php b/resources/views/auth/master.blade.php index 78b8d869..2d8916cc 100644 --- a/resources/views/auth/master.blade.php +++ b/resources/views/auth/master.blade.php @@ -7,6 +7,7 @@ {!! bs_favicon() !!} + @include('common.seo-meta-tags') @include('common.dependencies.style') diff --git a/resources/views/common/seo-meta-tags.blade.php b/resources/views/common/seo-meta-tags.blade.php new file mode 100644 index 00000000..3143bee8 --- /dev/null +++ b/resources/views/common/seo-meta-tags.blade.php @@ -0,0 +1,3 @@ + + +{!! option('meta_extras') !!} diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php index e315b769..2b9a2038 100644 --- a/resources/views/index.blade.php +++ b/resources/views/index.blade.php @@ -8,6 +8,7 @@ + @include('common.seo-meta-tags') @include('common.dependencies.style', ['module' => 'home']) diff --git a/resources/views/skinlib/master.blade.php b/resources/views/skinlib/master.blade.php index b8023416..34f2d90f 100644 --- a/resources/views/skinlib/master.blade.php +++ b/resources/views/skinlib/master.blade.php @@ -8,6 +8,7 @@ + @include('common.seo-meta-tags') @include('common.dependencies.style') diff --git a/tests/AdminControllerTest.php b/tests/AdminControllerTest.php index 13a0e339..9004411d 100644 --- a/tests/AdminControllerTest.php +++ b/tests/AdminControllerTest.php @@ -149,6 +149,16 @@ class AdminControllerTest extends BrowserKitTestCase ->type('', 'cdn_address') ->press('submit_resources'); $this->visit('/')->dontSee('url/app/index.js'); + + $this->visit('/admin/options') + ->type('kw', 'meta_keywords') + ->type('desc', 'meta_description') + ->type('', 'meta_extras') + ->press('submit_meta'); + $this->visit('/') + ->see('') + ->see('') + ->see(''); } public function testUsers()