]> _ Git - cubist_cms-back.git/commitdiff
#2843
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 2 Jul 2019 10:05:49 +0000 (12:05 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 2 Jul 2019 10:05:49 +0000 (12:05 +0200)
src/app/Magic/Models/CMSMenu.php [deleted file]
src/app/Magic/Models/CMSPage.php
src/app/Template/Navigation.php [new file with mode: 0644]
src/app/Template/Redirection.php [new file with mode: 0644]
src/app/Template/TemplateAbstract.php
src/app/Template/TemplatePage.php [new file with mode: 0644]

diff --git a/src/app/Magic/Models/CMSMenu.php b/src/app/Magic/Models/CMSMenu.php
deleted file mode 100644 (file)
index 52de912..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-
-namespace Cubist\Backpack\app\Magic\Models;
-
-
-class CMSMenu extends CubistMagicNestedModel
-{
-    protected $table = 'cubist_menu';
-    protected $_options = ['name' => 'menu',
-        'singular' => 'élément de menu',
-        'plural' => 'éléments de menu'];
-
-    public function setFields()
-    {
-        parent::setFields();
-
-        $this->addField(['name' => 'name',
-                'label' => 'Label de la page dans la navigation',
-                'type' => 'Text',
-                'column' => true]
-        );
-        $this->addField(['name' => 'type',
-            'label' => 'Type de page',
-            'type' => 'SelectFromArray',
-            'options' => ['page_link' => 'Page du site', 'link' => 'Lien externe'],
-            'column' => true]);
-
-        $this->addField(['name' => 'page_id',
-            'type' => 'SelectFromModel',
-            'label' => 'Page du site',
-            'optionsmodel' => 'App\Models\Page']);
-
-        $this->addField(['name' => 'link',
-            'type' => 'URL',
-            'label' => 'Lien externe']);
-    }
-}
index c1257ef930df74caaa02dab65a84ef03ffcde5fe..074c4b262b4be7fe3cbbaa660e9e7a74454400b2 100644 (file)
@@ -6,7 +6,7 @@ namespace Cubist\Backpack\app\Magic\Models;
 use Cubist\Backpack\app\Magic\Controllers\CubistMagicController;
 use Cubist\Backpack\app\Template\TemplateAbstract;
 
-class CMSPage extends CubistMagicModel
+class CMSPage extends CubistMagicNestedModel
 {
     protected static $_templates = [];
 
@@ -57,43 +57,6 @@ class CMSPage extends CubistMagicModel
             'translatable' => true,
             'tab' => 'Informations principales',
         ]);
-        $this->_seo();
-    }
-
-    protected function _seo()
-    {
-        $this->addField(['name' => 'slug',
-            'type' => 'Slug',
-            'label' => 'Slug (URL)',
-            'tab' => 'SEO // Meta',
-        ]);
-
-        $this->addFakeField([
-            'name' => 'meta_title',
-            'label' => trans('backpack::pagemanager.meta_title'),
-            'type' => 'Text',
-            'hint' => trans('If empty, page title is used.') . ' ' . __('Recommended length: 60 chars'),
-            'tab' => 'SEO // Meta',
-            'store_in' => 'seo',
-        ]);
-
-        $this->addFakeField([
-            'name' => 'meta_description',
-            'label' => trans('backpack::pagemanager.meta_description'),
-            'type' => 'Textarea',
-            'hint' => __('Recommended length: 160 chars'),
-            'tab' => 'SEO // Meta',
-            'store_in' => 'seo',
-        ]);
-
-        $this->addFakeField([
-            'name' => 'robots',
-            'label' => __('Allow page index by search engines'),
-            'type' => 'Checkbox',
-            'default' => true,
-            'tab' => 'SEO // Meta',
-            'store_in' => 'seo',
-        ]);
     }
 
     /**
diff --git a/src/app/Template/Navigation.php b/src/app/Template/Navigation.php
new file mode 100644 (file)
index 0000000..7a911f7
--- /dev/null
@@ -0,0 +1,19 @@
+<?php
+
+
+namespace Cubist\Backpack\app\Template;
+
+
+class Navigation extends TemplateAbstract
+{
+    public function init()
+    {
+        parent::init();
+        $this->addField(['name' => 'navigation',
+                'type' => 'Text',
+                'label' => 'Partie du site',
+                'store_in' => 'nav',
+                'translatable' => false]
+        );
+    }
+}
diff --git a/src/app/Template/Redirection.php b/src/app/Template/Redirection.php
new file mode 100644 (file)
index 0000000..f4240ae
--- /dev/null
@@ -0,0 +1,13 @@
+<?php
+
+
+namespace Cubist\Backpack\app\Template;
+
+
+class Redirection extends TemplateAbstract
+{
+    public function init()
+    {
+        parent::init();
+    }
+}
index 885d34e323411a1ec515f66b2985b84c30893453..d0e5d62ca81ffd4aab56ad4d0bd49f9e6214cc90 100644 (file)
@@ -26,6 +26,7 @@ class TemplateAbstract
 
     }
 
+
     /**
      * @param $attributes array
      */
@@ -73,17 +74,23 @@ class TemplateAbstract
     public static function getTemplates()
     {
         if (null === self::$_templates) {
-            $templates_root = app_path() . '/Templates';
-            $dr = opendir($templates_root);
-            while ($file = readdir($dr)) {
-                if ($file == '.' || $file == '..' || is_dir($templates_root . '/' . $file)) {
-                    continue;
+//            self::$_templates=[];
+            $roots = [__DIR__, app_path() . '/Templates'];
+            foreach ($roots as $templates_root) {
+                $dr = opendir($templates_root);
+                while ($file = readdir($dr)) {
+                    if ($file == '.' || $file == '..' || is_dir($templates_root . '/' . $file)) {
+                        continue;
+                    }
+                    $e = explode('.', $file);
+                    $classname = '\\App\\Templates\\' . $e[0];
+                    if (is_subclass_of($classname, 'Cubist\Backpack\app\Template\TemplatePage') || is_subclass_of($classname, 'Cubist\Backpack\app\Template\Navigation')) {
+                        die($classname);
+
+                        self::$_templates[Str::snake($e[0])] = new $classname();;
+                    }
                 }
-                $e = explode('.', $file);
-                $classname = '\\App\\Templates\\' . $e[0];
-                self::$_templates[Str::snake($e[0])] = new $classname();
             }
-
             if (!count(self::$_templates)) {
                 abort(503, trans('backpack::pagemanager.template_not_found'));
             }
diff --git a/src/app/Template/TemplatePage.php b/src/app/Template/TemplatePage.php
new file mode 100644 (file)
index 0000000..7d21107
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+
+
+namespace Cubist\Backpack\app\Template;
+
+class TemplatePage extends TemplateAbstract
+{
+    public function init()
+    {
+        parent::init();
+        $this->_seo();
+    }
+
+    protected function _seo()
+    {
+        $this->addField(['name' => 'slug',
+            'type' => 'Slug',
+            'label' => 'Slug (URL)',
+            'tab' => 'SEO // Meta',
+        ]);
+
+        $this->addField([
+            'name' => 'meta_title',
+            'label' => trans('backpack::pagemanager.meta_title'),
+            'type' => 'Text',
+            'hint' => trans('If empty, page title is used.') . ' ' . __('Recommended length: 60 chars'),
+            'tab' => 'SEO // Meta',
+            'store_in' => 'seo',
+        ]);
+
+        $this->addField([
+            'name' => 'meta_description',
+            'label' => trans('backpack::pagemanager.meta_description'),
+            'type' => 'Textarea',
+            'hint' => __('Recommended length: 160 chars'),
+            'tab' => 'SEO // Meta',
+            'store_in' => 'seo',
+        ]);
+
+        $this->addField([
+            'name' => 'robots',
+            'label' => __('Allow page index by search engines'),
+            'type' => 'Checkbox',
+            'default' => true,
+            'tab' => 'SEO // Meta',
+            'store_in' => 'seo',
+        ]);
+    }
+}