]> _ Git - cubist_cms-back.git/commitdiff
#2843
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 20 Jun 2019 16:16:57 +0000 (18:16 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 20 Jun 2019 16:16:57 +0000 (18:16 +0200)
src/app/Magic/Controllers/CubistMagicControllerTrait.php
src/app/Magic/Models/CMSPage.php

index b8a0d50a0dfac997e0191455d84f5719f28be242..40196c39e25ccdc9647314b6501696b91d6770b0 100644 (file)
@@ -62,9 +62,11 @@ trait CubistMagicControllerTrait
 
     }
 
-    public function updateFieldsFromModel()
+    public function updateFieldsFromModel($model = null)
     {
-        $model = $this->getModelInstance();
+        if (null === $model) {
+            $model=$this->getModelInstance();
+        }
         foreach ($model->getFields() as $field) {
             if ($this->crud->hasField($field->getAttribute('name'))) {
                 continue;
index e8f0f807456c0e01086b0e646f06b1ca4a79213d..2f02c1a7dceefd12b13f67b21de34773f62d611b 100644 (file)
@@ -3,6 +3,7 @@
 
 namespace Cubist\Backpack\app\Magic\Models;
 
+use Cubist\Backpack\app\Magic\Controllers\CubistMagicController;
 use Cubist\Backpack\app\Template\TemplateAbstract;
 
 class CMSPage extends CubistMagicModel
@@ -94,9 +95,13 @@ class CMSPage extends CubistMagicModel
         ]);
     }
 
+    /**
+     * @param \Cubist\Backpack\app\Magic\Controllers\CubistMagicController $controller
+     * @throws \Exception
+     */
     public function onBeforeCreate($controller)
     {
-        $this->useTemplate(request('template'));
+        $this->useTemplate(request('template'), $controller);
         parent::onBeforeCreate($controller);
     }
 
@@ -108,27 +113,28 @@ class CMSPage extends CubistMagicModel
             $entry = self::findOrFail($id);
             $template = $entry->template;
         }
-        $this->useTemplate($template);
+        $this->useTemplate($template, $controller);
         parent::onBeforeEdit($controller, $id);
     }
 
     public function onBeforeStore($controller, $request)
     {
-        $this->useTemplate(\Request::input('template'));
+        $this->useTemplate(\Request::input('template'), $controller);
         parent::onBeforeStore($controller, $request);
     }
 
     public function onBeforeUpdate($controller, $request)
     {
-        $this->useTemplate(\Request::input('template'));
+        $this->useTemplate(\Request::input('template'), $controller);
         parent::onBeforeUpdate($controller, $request);
     }
 
     /**
      * @param $template TemplateAbstract
+     * @param $controller CubistMagicController
      * @throws \Exception
      */
-    protected function useTemplate($template)
+    protected function useTemplate($template, $controller)
     {
         if (is_string($template)) {
             $template = TemplateAbstract::getTemplateIntanceByName($template);
@@ -144,6 +150,8 @@ class CMSPage extends CubistMagicModel
         foreach ($fields as $field) {
             $this->addFakeField($field);
         }
+
+        $controller->updateFieldsFromModel();
     }
 
 }