]> _ Git - cubist_cms-back.git/commitdiff
#2843
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 2 Jul 2019 13:26:23 +0000 (15:26 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 2 Jul 2019 13:26:23 +0000 (15:26 +0200)
src/app/Magic/Fields/CMSTemplate.php
src/app/Template/FirstRedirection.php [new file with mode: 0644]
src/app/Template/InternalRedirection.php [new file with mode: 0644]
src/app/Template/Navigation.php
src/app/Template/Redirection.php
src/app/Template/TemplateAbstract.php

index e06cdf014bc1c0bd2e971fd369f483c30bdc0304..b318ac98c6b49ef4c1bf62bc6e0bbc835b33ff63 100644 (file)
@@ -19,9 +19,7 @@ class CMSTemplate extends SelectFromArray
 
         $options = [];
         foreach ($templates as $name => $template) {
-            if ($template->showInDropDown()) {
-                $options[Str::snake($name)] = $template->getName();
-            }
+            $options[Str::snake($name)] = $template->getName();
         }
         $this->setAttribute('options', $options);
     }
diff --git a/src/app/Template/FirstRedirection.php b/src/app/Template/FirstRedirection.php
new file mode 100644 (file)
index 0000000..a4f93a5
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+
+
+namespace Cubist\Backpack\app\Template;
+
+
+class FirstRedirection extends Redirection
+{
+    public function getName()
+    {
+        return '* Redirection vers la première sous-rubrique';
+    }
+
+    public function init()
+    {
+        parent::init();
+    }
+
+    protected function _redirection()
+    {
+
+    }
+}
diff --git a/src/app/Template/InternalRedirection.php b/src/app/Template/InternalRedirection.php
new file mode 100644 (file)
index 0000000..5d13ea8
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+
+
+namespace Cubist\Backpack\app\Template;
+
+
+class InternalRedirection extends Redirection
+{
+    public function getName()
+    {
+        return '* Redirection interne';
+    }
+
+    protected function _redirection()
+    {
+        $this->addField(['name' => 'navigation',
+                'type' => 'URL',
+                'label' => 'Redirection vers un site externe',
+                'store_in' => 'nav',
+                'translatable' => true,
+                'tab' => 'Informations principales',
+            ]
+        );
+    }
+}
index 7a911f7cc0a3db6a910fa6fba5e3633d264eed89..cf70919f59bb6b711fa7f8bcf911e1619ebe21b3 100644 (file)
@@ -13,7 +13,13 @@ class Navigation extends TemplateAbstract
                 'type' => 'Text',
                 'label' => 'Partie du site',
                 'store_in' => 'nav',
+                'tab' => 'Informations principales',
                 'translatable' => false]
         );
     }
+
+    public function getName()
+    {
+        return '* Navigation';
+    }
 }
index f4240aee10e9af3df85b8a7a9349e092a72e1819..1e9dc48921cea81017921b0f32ca66fd4dce8c29 100644 (file)
@@ -9,5 +9,23 @@ class Redirection extends TemplateAbstract
     public function init()
     {
         parent::init();
+        $this->_redirection();
+    }
+
+    protected function _redirection()
+    {
+        $this->addField(['name' => 'navigation',
+                'type' => 'URL',
+                'label' => 'Redirection vers un site externe',
+                'store_in' => 'nav',
+                'translatable' => true,
+                'tab' => 'Informations principales',
+            ]
+        );
+    }
+
+    public function getName()
+    {
+        return '* Redirection externe';
     }
 }
index d0e5d62ca81ffd4aab56ad4d0bd49f9e6214cc90..b8e97a156ee4b1956ab3104b1507b1d90b5bcccc 100644 (file)
@@ -73,21 +73,24 @@ class TemplateAbstract
      */
     public static function getTemplates()
     {
+        $exclude = ['App\\Templates\\Base', 'Cubist\\Backpack\\app\\Template\\TemplateAbstract', 'Cubist\\Backpack\\app\\Template\\TemplatePage'];
+
         if (null === self::$_templates) {
-//            self::$_templates=[];
-            $roots = [__DIR__, app_path() . '/Templates'];
-            foreach ($roots as $templates_root) {
+            self::$_templates = [];
+            $roots = [__DIR__ => 'Cubist\\Backpack\\app\\Template', app_path() . '/Templates' => 'App\\Templates'];
+            foreach ($roots as $templates_root => $prefix) {
                 $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);
+                    $classname = $prefix . "\\" . $e[0];
 
-                        self::$_templates[Str::snake($e[0])] = new $classname();;
+                    if (is_subclass_of($classname, '\\Cubist\\Backpack\\app\\Template\\TemplateAbstract')) {
+                        if (!in_array($classname, $exclude)) {
+                            self::$_templates[Str::snake($e[0])] = new $classname();
+                        }
                     }
                 }
             }