Browse Source

独立页

moshaorui 4 months ago
parent
commit
7873778873

+ 39 - 13
app/Admin/Repositories/DistAdminDistributor.php

@@ -128,6 +128,7 @@ class DistAdminDistributor extends EloquentRepository
             'post_date' => Carbon::now(),
             'created_at'=>Carbon::now(),
             'updated_at'=>Carbon::now(),
+            'page_type' => 0,
         ]);
         //生成绑定关系
         $sitePagesTagRelationship = new SitePagesTagRelationship();
@@ -147,6 +148,8 @@ class DistAdminDistributor extends EloquentRepository
             'post_date' => Carbon::now(),
             'created_at'=>Carbon::now(),
             'updated_at'=>Carbon::now(),
+            'page_type' => 1,
+            'template_file' => config('dictionary.landing_page_default_template')
         ]);
         //生成privacy
         $privacy = $sitePages->create([
@@ -160,6 +163,8 @@ class DistAdminDistributor extends EloquentRepository
             'post_date' => Carbon::now(),
             'created_at'=>Carbon::now(),
             'updated_at'=>Carbon::now(),
+            'page_type' => 1,
+            'template_file' => config('dictionary.landing_page_default_template')
         ]);
         //生成sales
         $sales = $sitePages->create([
@@ -173,6 +178,8 @@ class DistAdminDistributor extends EloquentRepository
             'post_date' => Carbon::now(),
             'created_at'=>Carbon::now(),
             'updated_at'=>Carbon::now(),
+            'page_type' => 1,
+            'template_file' => config('dictionary.landing_page_default_template')
         ]);
         //生成service
         $service = $sitePages->create([
@@ -186,6 +193,8 @@ class DistAdminDistributor extends EloquentRepository
             'post_date' => Carbon::now(),
             'created_at'=>Carbon::now(),
             'updated_at'=>Carbon::now(),
+            'page_type' => 1,
+            'template_file' => config('dictionary.landing_page_default_template')
         ]);
         //生成faqs
         $faqs = $sitePages->create([
@@ -199,6 +208,23 @@ class DistAdminDistributor extends EloquentRepository
             'post_date' => Carbon::now(),
             'created_at'=>Carbon::now(),
             'updated_at'=>Carbon::now(),
+            'page_type' => 1,
+            'template_file' => config('dictionary.landing_page_default_template')
+        ]);
+        //生成contact
+        $contact = $sitePages->create([
+            'title' => 'Contact us',
+            'status' => 1,
+            'author' => 'admin',
+            'dist_id'=>$distId,
+            'content' => 'Default Content',
+            'slug' => 'contact-us',
+            'seo_title' => 'Contact us',
+            'post_date' => Carbon::now(),
+            'created_at'=>Carbon::now(),
+            'updated_at'=>Carbon::now(),
+            'page_type' => 1,
+            'template_file' => config('dictionary.landing_page_contact_us_template')
         ]);
         //生成菜单
         $siteMenu = new SiteMenu();
@@ -209,7 +235,7 @@ class DistAdminDistributor extends EloquentRepository
             'product' => '',
             'pages' => '',
             'url' => '',
-            'unique_page' => '',
+            'landing_page' => '',
         ];
         /*
          * ==========================================
@@ -272,8 +298,8 @@ class DistAdminDistributor extends EloquentRepository
         ];
         //----------------About Us------------------
         $newMenuConfig = $menuConfig;
-        $newMenuConfig['pages'] = $aboutUs->id;
-        $menuType = 3;//pages
+        $newMenuConfig['landing_page'] = $aboutUs->id;
+        $menuType = 4;//pages
         $data[5] = [
             'parentId' => 0,
             'title' => 'About Us',
@@ -285,7 +311,7 @@ class DistAdminDistributor extends EloquentRepository
         ];
         //----------------Contact------------------
         $newMenuConfig = $menuConfig;
-        $newMenuConfig['unique_page'] = 'contact';
+        $newMenuConfig['landing_page'] = $contact->id;
         $menuType = 4;//pages
         $data[6] = [
             'parentId' => 0,
@@ -318,8 +344,8 @@ class DistAdminDistributor extends EloquentRepository
         ];
         //----------------FAQ------------------
         $newMenuConfig = $menuConfig;
-        $newMenuConfig['pages'] = $faqs->id;
-        $menuType = 3;//pages
+        $newMenuConfig['landing_page'] = $faqs->id;
+        $menuType = 4;//pages
         $data[2] = [
             'parentId' => 1,
             'title' => 'FAQ',
@@ -331,8 +357,8 @@ class DistAdminDistributor extends EloquentRepository
         ];
         //----------------Sales------------------
         $newMenuConfig = $menuConfig;
-        $newMenuConfig['pages'] = $sales->id;
-        $menuType = 3;//pages
+        $newMenuConfig['landing_page'] = $sales->id;
+        $menuType = 4;//pages
         $data[3] = [
             'parentId' => 1,
             'title' => 'Sales',
@@ -371,8 +397,8 @@ class DistAdminDistributor extends EloquentRepository
 
         //----------------About Us------------------
         $newMenuConfig = $menuConfig;
-        $newMenuConfig['pages'] = $aboutUs->id;
-        $menuType = 3;//pages
+        $newMenuConfig['landing_page'] = $aboutUs->id;
+        $menuType = 4;//pages
         $data[6] = [
             'parentId' => 4,
             'title' => 'About Us',
@@ -384,8 +410,8 @@ class DistAdminDistributor extends EloquentRepository
         ];
         //----------------Services------------------
         $newMenuConfig = $menuConfig;
-        $newMenuConfig['pages'] = $service->id;
-        $menuType = 3;//pages
+        $newMenuConfig['landing_page'] = $service->id;
+        $menuType = 4;//pages
         $data[7] = [
             'parentId' => 4,
             'title' => 'Services',
@@ -412,7 +438,7 @@ class DistAdminDistributor extends EloquentRepository
         ];
         //----------------Contact------------------
         $newMenuConfig = $menuConfig;
-        $newMenuConfig['unique_page'] = 'contact';
+        $newMenuConfig['landing_page'] = $contact->id;
         $menuType = 4;//pages
         $data[9] = [
             'parentId' => 4,

+ 20 - 4
app/Distributor/Controllers/ApiController.php

@@ -21,7 +21,7 @@ class ApiController extends Controller
         if ($q != null) {
             // 模糊搜索
             $obj = new DistProduct();
-            return $obj->model()->where('title', 'like', "%$q%")->paginate(null, ['id', 'title as text']);
+            return $obj->model()->where('title', 'like', "%$q%")->where('dist_id', getDistributorId())->paginate(null, ['id', 'title as text']);
         } else {
             // 获取最新的N个
             $selectOptionsNew =  DistProduct::selectOptionsNew();
@@ -35,21 +35,37 @@ class ApiController extends Controller
         if ($q != null) {
             // 模糊搜索
             $obj = new SitePages();
-            return $obj->model()->where('title', 'like', "%$q%")->paginate(null, ['id', 'title as text']);
+            return $obj->model()->where('title', 'like', "%$q%")->where('dist_id', getDistributorId())->where('page_type', 0)->paginate(null, ['id', 'title as text']);
         } else {
             // 获取最新的N个
-            $selectOptionsNew =  SitePages::selectOptionsNew();
+            $selectOptionsNew =  SitePages::selectOptionsNew(30,0);
             return $this->changeOptions($selectOptionsNew);
         }
     }
 
+    public function landingPages(Request $request)
+    {
+        $q = $request->get('q');
+        if ($q != null) {
+            // 模糊搜索
+            $obj = new SitePages();
+            return $obj->model()->where('title', 'like', "%$q%")->where('dist_id', getDistributorId())->where('page_type', 1)->paginate(null, ['id', 'title as text']);
+        } else {
+            // 获取最新的N个
+            $selectOptionsNew =  SitePages::selectOptionsNew(30,1);
+            return $this->changeOptions($selectOptionsNew);
+        }
+    }
+
+
+
     public function tag(Request $request)
     {
         $q = $request->get('q');
         if ($q != null) {
             // 模糊搜索
             $obj = new SitePagesTag();
-            return $obj->model()->where('name', 'like', "%$q%")->paginate(null, ['id', 'name as text']);
+            return $obj->model()->where('name', 'like', "%$q%")->where('dist_id', getDistributorId())->paginate(null, ['id', 'name as text']);
         } else {
             // 获取最新的N个
             $selectOptionsNew =  SitePagesTag::selectOptionsNew();

+ 4 - 4
app/Distributor/Controllers/SiteMenuController.php

@@ -134,8 +134,8 @@ class SiteMenuController extends AdminDistController
                     $form->text('url')->value($thisObject->getArrayValue('url',$menuConfig));
                 })
                 ->when(4, function (Form $form) use ($menuConfig,$thisObject) {
-                    $form->select('unique_page',admin_trans_label('unique_page'))->options(config('dictionary.unique_page'))
-                        ->value($thisObject->getArrayValue('unique_page',$menuConfig));
+                    $form->select('landing_page',admin_trans_label('landing_page'))->options('api/landing-pages')
+                        ->value($thisObject->getArrayValue('landing_page',$menuConfig));
                 });
             //显示
             $form->switch('show')->default(1);
@@ -145,7 +145,7 @@ class SiteMenuController extends AdminDistController
             $form->hidden('uri');
             $form->hidden('dist_id'); // 隐藏dist_id字段,用于保存
             //以下字段不保存
-            $form->ignore(['collections_type','product_category','pages_tag','product','pages','url','unique_page']);
+            $form->ignore(['collections_type','product_category','pages_tag','product','pages','url','landing_page']);
             //保存事件
             $form->submitted(function (Form $form) use ($thisObject) {
                 $result = $thisObject->convertMenuConfig($form);
@@ -167,7 +167,7 @@ class SiteMenuController extends AdminDistController
             'product' => $form->input('product'),
             'pages' => $form->input('pages'),
             'url' => $form->input('url'),
-            'unique_page' => $form->input('unique_page'),
+            'landing_page' => $form->input('landing_page'),
         ];
         $menuType = $form->input('menu_type');
         $uri = SiteMenu::generateUri($menuType,$menuConfig);

+ 1 - 1
app/Distributor/Repositories/DistAppearanceTemplate.php

@@ -37,7 +37,7 @@ class DistAppearanceTemplate extends EloquentRepository
         $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'];
+        $options = ['pages_detail.liquid'=>config('dictionary.landing_page_default_template')];
         foreach ($result as $key => $value) {
             // 检查字符串是否以 "pages_sp_" 开头
             if (strpos($value->file_name, 'pages_sp_') === 0) {

+ 2 - 2
app/Distributor/Repositories/SitePages.php

@@ -19,9 +19,9 @@ class SitePages extends EloquentRepository
     /*
      * 查找最新的N个文章
      */
-    public static function selectOptionsNew($limit=30)
+    public static function selectOptionsNew($limit=30,$pageType=0)
     {
-        return Model::where('dist_id', getDistributorId())->where('status', 1)->orderBy('created_at', 'desc')->limit($limit)->pluck('title', 'id');
+        return Model::where('dist_id', getDistributorId())->where('page_type', $pageType)->orderBy('created_at', 'desc')->limit($limit)->pluck('title', 'id');
     }
 
     /*

+ 1 - 0
app/Distributor/routes.php

@@ -58,6 +58,7 @@ Route::group([
     //API相关
     $router->get('api/products', 'ApiController@products');
     $router->get('api/pages', 'ApiController@pages');
+    $router->get('api/landing-pages', 'ApiController@landingPages');
     $router->get('api/tag', 'ApiController@tag');
     $router->get('api/generate-slug', 'ApiController@generateSlug');
     // 定义切换语言的路由

+ 4 - 5
app/Models/SiteMenu.php

@@ -102,11 +102,10 @@ class SiteMenu extends Model
                 $uri = $row ? config('dictionary.site_url.pages').'/'.$slug : "/";
                 break;
             case 4: //选择页面
-                $uniquePage = $menuConfig['unique_page'];
-                if ($uniquePage) {
-                    $uri = config('dictionary.site_url')[$uniquePage];
-                }
-                $uri = $uri ? $uri : "/";
+                $sitePages = new SitePages();
+                $row = $sitePages->where('dist_id', $distId)->where('id', $menuConfig['landing_page'])->first();
+                $slug = $isId ? $row->id : $row->slug;
+                $uri = $row ? config('dictionary.site_url.pages').'/'.$slug : "/";
                 break;
             case 10: //url
                 $uri = $menuConfig['url'];

+ 2 - 0
app/Models/SitePages.php

@@ -23,6 +23,8 @@ class SitePages extends Model
         'seo_title',
         'seo_keywords',
         'seo_description',
+        'page_type',
+        'template_file'
     ];
 
     /**

+ 5 - 4
config/dictionary.php

@@ -49,12 +49,10 @@ return [
         '1' => 'collections',
         '2' => 'products',
         '3' => 'pages',
-        '4' => 'unique_page',
+        '4' => 'landing_page',
         '10' => 'url',
     ],
-    'unique_page' => [
-        'contact' => 'Contact Us',
-    ],
+
     'collections_type' => [
         '0' => 'product_category',
         '1' => 'pages_tag',
@@ -93,5 +91,8 @@ return [
         1 => 'custom_domain',
     ],
 
+    'landing_page_default_template' => 'pages_detail.liquid',
+    'landing_page_contact_us_template' => 'pages_sp_contact.liquid',
+
 
 ];

+ 2 - 0
lang/en/global.php

@@ -162,6 +162,8 @@ return [
         'custom_domain'        => 'Custom Domain',
         'secondary_domain'    => 'Secondary Domain',
         'attribute'       => 'Attribute',
+        'landing_page' => 'Landing Page',
+
     ],
     'options' => [
         //

+ 1 - 1
lang/zh_CN/global.php

@@ -148,7 +148,7 @@ return [
         'url'                  => '外部连接',
         'product_category'      => '产品分类',
         'pages_tag'             => '文章标签',
-        'unique_page'          => '独立页面',
+        'unique_page'          => '特殊页面',
         'init_appearance'         => '初始化主题',
         'cache'                 => '缓存',
         'clear_cache'           => '清除缓存',