]> _ Git - cubist_cms-back.git/commitdiff
wip #3274 @4
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 7 Jan 2020 18:41:28 +0000 (19:41 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 7 Jan 2020 18:41:28 +0000 (19:41 +0100)
src/app/Application.php [new file with mode: 0644]
src/app/Magic/Fields/SiteVariant.php [new file with mode: 0644]
src/app/Magic/Fields/SiteVariantMultiple.php [new file with mode: 0644]
src/app/Magic/Models/Locale.php

diff --git a/src/app/Application.php b/src/app/Application.php
new file mode 100644 (file)
index 0000000..c083b35
--- /dev/null
@@ -0,0 +1,22 @@
+<?php
+
+namespace Cubist\Backpack;
+
+class Application extends \Illuminate\Foundation\Application
+{
+    /**
+     * @return array
+     */
+    public function getVariants()
+    {
+        return $this['config']->get('app.variants', []);
+    }
+
+    /**
+     * @return bool
+     */
+    public function hasVariant()
+    {
+        return count($this->getVariants()) > 0;
+    }
+}
diff --git a/src/app/Magic/Fields/SiteVariant.php b/src/app/Magic/Fields/SiteVariant.php
new file mode 100644 (file)
index 0000000..42f0fa9
--- /dev/null
@@ -0,0 +1,22 @@
+<?php
+
+
+namespace Cubist\Backpack\app\Magic\Fields;
+
+use Illuminate\Support\Facades\App;
+
+class SiteVariant extends SelectFromArray
+{
+    public function __construct($attributes)
+    {
+        $variants = App::getVariants();
+        if (count($variants) === 0) {
+            $attributes['column'] = false;
+            $this->_adminType = 'hidden';
+            $this->_options = ['default' => 'default'];
+        } else {
+            $this->_options = array_combine($variants, $variants);
+        }
+        parent::__construct($attributes);
+    }
+}
diff --git a/src/app/Magic/Fields/SiteVariantMultiple.php b/src/app/Magic/Fields/SiteVariantMultiple.php
new file mode 100644 (file)
index 0000000..58a60ca
--- /dev/null
@@ -0,0 +1,13 @@
+<?php
+
+
+namespace Cubist\Backpack\app\Magic\Fields;
+
+class SiteVariantMultiple extends SiteVariant
+{
+    public function __construct($attributes)
+    {
+        $this->_multiple = true;
+        parent::__construct($attributes);
+    }
+}
index af2f9669d830a2c20cab7845b1eb906435ca5bb3..e852dd45a98ae9ce24d09a6fda166fc5863a8426 100644 (file)
@@ -30,6 +30,11 @@ class Locale extends CubistMagicAbstractModel
             'type' => 'Country',
             'label' => 'Drapeau']);
 
+        $this->addField(['name' => 'variant',
+            'type' => 'SiteVariant',
+            'label' => 'Variante du site',
+            'column' => true]);
+
         $this->addField(['name' => 'inherit',
             'type' => 'LocaleEnabled',
             'label' => 'Hériter les traductions de']);
@@ -88,7 +93,8 @@ class Locale extends CubistMagicAbstractModel
         return array_keys(self::getLocales());
     }
 
-    public static function getEnabledLocalesCodes(){
+    public static function getEnabledLocalesCodes()
+    {
         return array_keys(self::getLocalesDataForFront()['enabled']);
     }