$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);
}
--- /dev/null
+<?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()
+ {
+
+ }
+}
--- /dev/null
+<?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',
+ ]
+ );
+ }
+}
'type' => 'Text',
'label' => 'Partie du site',
'store_in' => 'nav',
+ 'tab' => 'Informations principales',
'translatable' => false]
);
}
+
+ public function getName()
+ {
+ return '* Navigation';
+ }
}
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';
}
}
*/
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();
+ }
}
}
}