Browse Source

独立页

moshaorui 4 months ago
parent
commit
25905fa33e

+ 12 - 2
app/Admin/bootstrap.php

@@ -7,6 +7,7 @@ use Dcat\Admin\Grid\Filter;
 use Dcat\Admin\Show;
 use Dcat\Admin\Layout\Content;
 use Illuminate\Support\ServiceProvider;
+use Dcat\Admin\Form\Field\Editor;
 
 /**
  * Dcat-admin - admin builder based on Laravel.
@@ -36,8 +37,8 @@ app()->singleton(Content::class, function () use ($newContent) {
 
 
 // 覆盖默认配置
-//config(['admin' => user_admin_config()]);
-//config(['app.locale' => config('admin.lang') ?: config('app.locale')]);
+#config(['admin' => user_admin_config()]);
+#config(['app.locale' => config('admin.lang') ?: config('app.locale')]);
 
 
 // 获取当前登录用户
@@ -45,3 +46,12 @@ $user = Admin::guard()->check() ? Admin::user() : null;
 
 // 设置应用程序的本地化
 config(['app.locale' => Session::get('lang') ?: config('app.locale')]);
+
+//编辑器配置
+Editor::resolving(function (Editor $editor) {
+    // 设置默认配置
+    $editor->options([
+        'plugins'=>["advlist","autolink","link","image","media","lists","preview","code","help","fullscreen","table","autoresize","codesample"],
+        'toolbar'=>["undo redo | preview fullscreen | formatselect  | fontsizeselect bold italic underline strikethrough forecolor backcolor | link image media blockquote removeformat codesample","alignleft aligncenter alignright  alignjustify| indent outdent bullist numlist table subscript superscript | code"],
+    ]);
+});

+ 36 - 4
app/Distributor/Controllers/SitePagesController.php

@@ -3,6 +3,7 @@
 namespace App\Distributor\Controllers;
 
 use App\Distributor\Repositories\DistAdminUsersSetting;
+use App\Distributor\Repositories\DistAppearanceTemplate;
 use App\Distributor\Repositories\SitePages;
 use App\Models\SitePages as Model;
 use App\Distributor\Repositories\SitePagesTag;
@@ -21,7 +22,12 @@ class SitePagesController extends AdminDistController
 {
     public function title()
     {
-        return admin_trans( 'admin.pages');
+        $pageType = getTempValue('location');
+        if ($pageType == 0) {
+            return admin_trans( 'admin.pages');
+        } else {
+            return admin_trans( 'admin.landing_page');
+        }
     }
 
     /**
@@ -29,8 +35,17 @@ class SitePagesController extends AdminDistController
      */
     public function index(Content $content)
     {
+        if (isset($_GET['type'])) {
+            $pageType =  $_GET['type'] == 1 ? 1 : 0;
+            //保存临时变量
+            setTempValue('location', $pageType);
+        } else {
+            $pageType = getTempValue('location');
+            return redirect('/dist/site-pages?type='.$pageType);
+        }
+
         return $content
-            ->header(admin_trans( 'admin.pages'))
+            ->header($this->title())
             ->description('')
             ->breadcrumb(['text'=>'','url'=>''])
             ->body($this->grid());
@@ -43,7 +58,10 @@ class SitePagesController extends AdminDistController
      */
     protected function grid()
     {
+        //页面类型
         return Grid::make(SitePages::with(['pagesTag']), function (Grid $grid) {
+            //页面类型
+            $pageType = getTempValue('location');
             //默认分页条数
             $grid->paginate(config('admin.per_page'));
             $grid->column('id')->sortable();
@@ -70,8 +88,11 @@ class SitePagesController extends AdminDistController
                 $filter->like('title')->width(2);
                 $filter->equal('pagesTag.id',admin_trans_label('tags'))->select('api/tag')->width(2);
             });
+            //增加JS,使新增与编辑带location
+            $paramsUrl = 'type='.$pageType;
+            CommonHelper::replaceAddEditerUrl('.tree-quick-create', '.tree-quick-edit', $paramsUrl);
             //权限与条件
-            $grid->model()->where('dist_id', getDistributorId())->orderBy('id', 'desc');
+            $grid->model()->where('dist_id', getDistributorId())->where('page_type', $pageType)->orderBy('id', 'desc');
         });
     }
 
@@ -85,6 +106,8 @@ class SitePagesController extends AdminDistController
     protected function detail($id)
     {
         return Show::make($id, Model::with(['pagesTag']), function (Show $show) {
+            //页面类型
+            $pageType = getTempValue('location');
             $pagesTag  = $show->model()->pagesTag->toArray();
             $show->field('id');
             $show->field('title');
@@ -123,7 +146,13 @@ class SitePagesController extends AdminDistController
     protected function form()
     {
         return Form::make(SitePages::with(['pagesTag']), function (Form $form) {
+            //页面类型
+            $pageType = getTempValue('location');
             $form->text('title')->required();
+            if ($pageType == 1) {
+                $options = DistAppearanceTemplate::getLandingPageTemplateOptions();
+                $form->select('template_file')->options($options)->default(current($options))->required();
+            }
             $form->text('author');
             $form->date('post_date')->format('YYYY-MM-DD')->default(date('Y-m-d'))->required();
             $form->tags('pagesTag', '文章标签')
@@ -152,6 +181,7 @@ class SitePagesController extends AdminDistController
               ->value(DistAdminUsersSetting::getValue('visibility'));
             //隐藏字段
             $form->hidden('dist_id',);
+            $form->hidden('page_type');
             $form->ignore(['visibility']);
             //新建时插入JS
             $form->creating(function (Form $form) {
@@ -163,9 +193,11 @@ class SitePagesController extends AdminDistController
                 DistAdminUsersSetting::setValue('visibility', $form->input('visibility'));
             });
             //保存前
-            $form->saving(function (Form $form) {
+            $form->saving(function (Form $form) use ($pageType) {
                 //强制写死dist_id
                 $form->dist_id = getDistributorId();
+                //强制写死page_type
+                $form->page_type = $pageType;
                 //slug配置是否重复
                 $id = $form->getKey();
                 if ($form->slug != '') {

+ 25 - 0
app/Distributor/Repositories/DistAppearanceTemplate.php

@@ -27,6 +27,31 @@ class DistAppearanceTemplate extends EloquentRepository
         return $model->syncAppearanceTemplates($appearanceId,$distId);
     }
 
+    /*
+     * 得到独立页的模版数组
+     */
+    public static function getLandingPageTemplateOptions() {
+    {
+        $distInfo = DistAdminDistributor::getInfo();
+        $distId = $distInfo->id;
+        $appearanceId = $distInfo->appearance_id;
+        $model = new Model();
+        $result =  $model->where('appearance_id', $appearanceId)->where('dist_id', $distId)->select('file_name')->get();
+        $options = ['pages_detail.liquid'=>'pages_detail.liquid'];
+        foreach ($result as $key => $value) {
+            // 检查字符串是否以 "pages_sp_" 开头
+            if (strpos($value->file_name, 'pages_sp_') === 0) {
+                // 提取 "xxxx" 部分
+              //  $part = str_replace('pages_sp_', '', $value->file_name);
+               // $part = str_replace('.liquid', '', $part);
+                $part = $value->file_name;
+                $options[$part] = $part;
+            }
+        }
+        return $options;
+    }
+
+}
 
 
 

+ 11 - 1
app/Distributor/bootstrap.php

@@ -7,6 +7,7 @@ use Dcat\Admin\Grid\Filter;
 use Dcat\Admin\Show;
 use Dcat\Admin\Layout\Content;
 use Illuminate\Support\ServiceProvider;
+use Dcat\Admin\Form\Field\Editor;
 /**
  * Dcat-admin - admin builder based on Laravel.
  * @author jqh <https://github.com/jqhph>
@@ -44,7 +45,16 @@ $user = Admin::guard()->check() ? Admin::user() : null;
 config(['distributor.layout.home_url'=>getDistributorDomain()]);
 
 
+
 //// 覆盖默认配置
 //config(['admin' => user_admin_config()]);
-
 config(['app.locale' => Session::get('lang') ?: config('app.locale')]);
+
+//编辑器配置
+Editor::resolving(function (Editor $editor) {
+    // 设置默认配置
+    $editor->options([
+        'plugins'=>["advlist","autolink","link","image","media","lists","preview","code","help","fullscreen","table","autoresize","codesample"],
+        'toolbar'=>["undo redo | preview fullscreen | formatselect  | fontsizeselect bold italic underline strikethrough forecolor backcolor | link image media blockquote removeformat codesample","alignleft aligncenter alignright  alignjustify| indent outdent bullist numlist table subscript superscript | code"],
+    ]);
+});

+ 1 - 1
app/Libraries/CommonHelper.php

@@ -77,7 +77,7 @@ class CommonHelper
     }
 
     /*
-     * 替换新增与编辑的url,在后边加上指定的参数
+     * 替换新增与编辑的url,在后边加上指定的参数 (适用于弹出框的新增与编辑)
      * $addButton = '.tree-quick-create';
      * $editButton = '.tree-quick-edit';
      * $paramsUrl = 'location=0';

+ 2 - 0
lang/en/admin.php

@@ -248,4 +248,6 @@ return [
     'pages_tag'  => 'Pages Tag',
     'product_import'  => 'Product Import',
     'view_website'  => 'View Online Site',
+    'banner_list' => 'Banner List',
+    'landing_page' => 'Landing Page',
 ];

+ 29 - 0
lang/en/global.php

@@ -69,6 +69,27 @@ return [
         'secondary_domain'      => 'Secondary Domain',
         'custom_domain'         => 'Custom Domain',
         'isEnabled'             => 'Enabled',
+        'show'                  => 'Show',
+        'menu_type'             => 'Menu Type',
+        'menu_config'           => 'Menu Config',
+        'Url'                   => 'URL',
+        'collections_type'      => 'Collections Type',
+        'product_category'      => 'Product Category',
+        'pages_tag'             => 'Pages Tag',
+        'post_date'             => 'Post Date',
+        'author'                => 'Author',
+        'visibility'            => 'Visibility',
+        'seo_title'            => 'Seo Title',
+        'seo_description'      => 'Seo Description',
+        'seo_keywords'         => 'Seo Keywords',
+        'logo'                  => 'LOGO',
+        'referer_url'           => 'Referer Url',
+        'file'                  => 'File',
+        'statistics_js'         => 'Statistics Js',
+        'address'               => 'Address',
+        'position'              => 'Position',
+        'banner_url'            => 'Banner Url',
+        'template_file'         => 'Template File',
     ],
     'labels' => [
         'list'                  => 'List',
@@ -133,6 +154,14 @@ return [
         'clear_cache'           => 'Clear Cache',
         'site_url'              => 'Site URL',
         'browse'                => 'Browse',
+        'client_code'           => 'Client Code',
+        'distributor_code'      => 'Distributor Code',
+        'site'             => 'Site',
+        'information'          => 'Information',
+        'domain_type'          => 'Domain Type',
+        'custom_domain'        => 'Custom Domain',
+        'secondary_domain'    => 'Secondary Domain',
+        'attribute'       => 'Attribute',
     ],
     'options' => [
         //

+ 1 - 1
lang/zh_CN/admin.php

@@ -256,5 +256,5 @@ return [
     'inquiry_list' => '询盘列表',
     'view_website'  => '查看在线网站',
     'banner_list' => 'banner列表',
-
+    'landing_page' => '独立页',
 ];

+ 1 - 0
lang/zh_CN/global.php

@@ -89,6 +89,7 @@ return [
         'address'               => '地址',
         'position'              => '位置',
         'banner_url'            => '跳转链接',
+        'template_file'         => '模板文件',
     ],
     'labels' => [
         'list'         => '列表',

+ 1 - 0
lang/zh_CN/menu.php

@@ -50,5 +50,6 @@ return [
         'password_change' => '密码修改',
         'distributor' => '分销商',
         'appearance_list' => '外观列表',
+        'landing_page' => '独立页',
     ],
 ];