From 6f903d12340836b85d6d03fa68ab96977456962f Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 2 Jul 2019 15:26:23 +0200 Subject: [PATCH] #2843 --- src/app/Magic/Fields/CMSTemplate.php | 4 +--- src/app/Template/FirstRedirection.php | 23 ++++++++++++++++++++++ src/app/Template/InternalRedirection.php | 25 ++++++++++++++++++++++++ src/app/Template/Navigation.php | 6 ++++++ src/app/Template/Redirection.php | 18 +++++++++++++++++ src/app/Template/TemplateAbstract.php | 17 +++++++++------- 6 files changed, 83 insertions(+), 10 deletions(-) create mode 100644 src/app/Template/FirstRedirection.php create mode 100644 src/app/Template/InternalRedirection.php diff --git a/src/app/Magic/Fields/CMSTemplate.php b/src/app/Magic/Fields/CMSTemplate.php index e06cdf0..b318ac9 100644 --- a/src/app/Magic/Fields/CMSTemplate.php +++ b/src/app/Magic/Fields/CMSTemplate.php @@ -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 index 0000000..a4f93a5 --- /dev/null +++ b/src/app/Template/FirstRedirection.php @@ -0,0 +1,23 @@ +addField(['name' => 'navigation', + 'type' => 'URL', + 'label' => 'Redirection vers un site externe', + 'store_in' => 'nav', + 'translatable' => true, + 'tab' => 'Informations principales', + ] + ); + } +} diff --git a/src/app/Template/Navigation.php b/src/app/Template/Navigation.php index 7a911f7..cf70919 100644 --- a/src/app/Template/Navigation.php +++ b/src/app/Template/Navigation.php @@ -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'; + } } diff --git a/src/app/Template/Redirection.php b/src/app/Template/Redirection.php index f4240ae..1e9dc48 100644 --- a/src/app/Template/Redirection.php +++ b/src/app/Template/Redirection.php @@ -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'; } } diff --git a/src/app/Template/TemplateAbstract.php b/src/app/Template/TemplateAbstract.php index d0e5d62..b8e97a1 100644 --- a/src/app/Template/TemplateAbstract.php +++ b/src/app/Template/TemplateAbstract.php @@ -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(); + } } } } -- 2.39.5