From: Vincent Vanwaelscappel Date: Thu, 20 Jun 2019 14:59:43 +0000 (+0200) Subject: #2843 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=3fc842d4bbaee7ba49542968e3b986c7a0444343;p=cubist_cms-back.git #2843 --- diff --git a/src/app/Magic/Fields/CMSTemplate.php b/src/app/Magic/Fields/CMSTemplate.php new file mode 100644 index 0000000..65d5bb2 --- /dev/null +++ b/src/app/Magic/Fields/CMSTemplate.php @@ -0,0 +1,26 @@ + $template) { + if ($template->showInDropDown()) { + $options[Str::snake($name)] = $template->getName(); + } + } + $this->setAttribute('options', $options); + } +} diff --git a/src/app/Magic/Models/CMSPage.php b/src/app/Magic/Models/CMSPage.php index dedf6ae..586e52d 100644 --- a/src/app/Magic/Models/CMSPage.php +++ b/src/app/Magic/Models/CMSPage.php @@ -20,9 +20,8 @@ class CMSPage extends CubistMagicModel parent::setFields(); $this->addField(['name' => 'template', - 'type' => 'SelectFromArray', + 'type' => 'CMSTemplate', 'label' => 'Template', - 'options' => $this->getTemplates(), 'column' => true, 'tab' => 'Informations principales', ]); @@ -82,6 +81,7 @@ class CMSPage extends CubistMagicModel 'tab' => 'SEO // Meta', 'store_in' => 'seo', ]); + $this->addFakeField([ 'name' => 'robots', 'label' => __('Allow page index by search engines'), @@ -92,24 +92,5 @@ class CMSPage extends CubistMagicModel ]); } - public function getTemplates($template_name = false) - { - 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; - } - $e = explode('.', $file); - $classname = '\\App\\Templates\\' . $e[0]; - self::$_templates[] = new $classname(); - } - - if (!count(self::$_templates)) { - abort(503, trans('backpack::pagemanager.template_not_found')); - } - } - return self::$_templates; - } + } diff --git a/src/app/Template/TemplateAbstract.php b/src/app/Template/TemplateAbstract.php index dc3f15d..ddb83ea 100644 --- a/src/app/Template/TemplateAbstract.php +++ b/src/app/Template/TemplateAbstract.php @@ -9,6 +9,11 @@ class TemplateAbstract { use BunchOfFields; + /** + * @var TemplateAbstract[] + */ + protected static $_templates = null; + protected function _seo() { $this->addField([ @@ -70,4 +75,34 @@ class TemplateAbstract return Str::slug($class); } + + public function getDescription() + { + return ''; + } + + /** + * @param bool $template_name + * @return 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; + } + $e = explode('.', $file); + $classname = '\\App\\Templates\\' . $e[0]; + self::$_templates[$e[0]] = new $classname(); + } + + if (!count(self::$_templates)) { + abort(503, trans('backpack::pagemanager.template_not_found')); + } + } + return self::$_templates; + } }