From c08d48512ead378e9d610dbf62efa597556036b1 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 20 Jun 2019 17:29:59 +0200 Subject: [PATCH] #2843 --- .../CubistMagicControllerTrait.php | 8 +++++- src/app/Magic/Models/CMSPage.php | 14 +++++------ .../Magic/Models/CubistMagicAbstractModel.php | 25 ++++++++++++++++++- 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/src/app/Magic/Controllers/CubistMagicControllerTrait.php b/src/app/Magic/Controllers/CubistMagicControllerTrait.php index 9c64cfe..cde0494 100644 --- a/src/app/Magic/Controllers/CubistMagicControllerTrait.php +++ b/src/app/Magic/Controllers/CubistMagicControllerTrait.php @@ -106,6 +106,7 @@ trait CubistMagicControllerTrait public function store(CubistMagicStoreRequest $request) { $request = $this->_prepareCRUDData($request); + $this->getModelInstance()->onBeforeStore($this, $request); // your additional operations before save here $redirect_location = parent::storeCrud($request); @@ -121,6 +122,7 @@ trait CubistMagicControllerTrait public function update(CubistMagicUpdateRequest $request) { $request = $this->_prepareCRUDData($request); + $this->getModelInstance()->onBeforeUpdate($this, $request); // your additional operations before save here $redirect_location = parent::updateCrud($request); @@ -129,5 +131,9 @@ trait CubistMagicControllerTrait return $redirect_location; } - + public function edit($id) + { + $this->getModelInstance()->onBeforeEdit($this, $id); + return parent::edit($id); + } } diff --git a/src/app/Magic/Models/CMSPage.php b/src/app/Magic/Models/CMSPage.php index 586e52d..37cdaa1 100644 --- a/src/app/Magic/Models/CMSPage.php +++ b/src/app/Magic/Models/CMSPage.php @@ -58,6 +58,12 @@ class CMSPage extends CubistMagicModel protected function _seo() { + $this->addField(['name' => 'slug', + 'type' => 'Slug', + 'label' => 'Slug (URL)', + 'tab' => 'SEO // Meta', + ]); + $this->addFakeField([ 'name' => 'meta_title', 'label' => trans('backpack::pagemanager.meta_title'), @@ -67,12 +73,6 @@ class CMSPage extends CubistMagicModel 'store_in' => 'seo', ]); - $this->addField(['name' => 'slug', - 'type' => 'Slug', - 'label' => 'Slug (URL)', - 'tab' => 'SEO // Meta', - ]); - $this->addFakeField([ 'name' => 'meta_description', 'label' => trans('backpack::pagemanager.meta_description'), @@ -81,7 +81,7 @@ class CMSPage extends CubistMagicModel 'tab' => 'SEO // Meta', 'store_in' => 'seo', ]); - + $this->addFakeField([ 'name' => 'robots', 'label' => __('Allow page index by search engines'), diff --git a/src/app/Magic/Models/CubistMagicAbstractModel.php b/src/app/Magic/Models/CubistMagicAbstractModel.php index d27cbfa..a780d73 100644 --- a/src/app/Magic/Models/CubistMagicAbstractModel.php +++ b/src/app/Magic/Models/CubistMagicAbstractModel.php @@ -68,6 +68,12 @@ class CubistMagicAbstractModel extends Model implements HasMedia */ protected $_relationships = []; + + /** + * @var array + */ + protected $varSetBeforeOperations = []; + public static function boot() { parent::boot(); @@ -224,6 +230,9 @@ class CubistMagicAbstractModel extends Model implements HasMedia if ($field->getAttribute('cast', false) !== false) { $this->casts[$field->getAttribute('name')] = $field->getAttribute('cast'); } + if ($field->getAttribute('set_before_operation', false) !== false) { + $this->varSetBeforeOperations[] = $field->getAttribute('name'); + } } @@ -270,7 +279,8 @@ class CubistMagicAbstractModel extends Model implements HasMedia 'MODELNAMESPACE' => get_class($this), 'EXTENDS' => $this->_getBaseController(), 'CLONABLE' => $this->clonable ? 'true' : 'false', - 'BULK' => $this->getOption('bulk', true) ? 'true' : 'false' + 'BULK' => $this->getOption('bulk', true) ? 'true' : 'false', + 'VARSETBEFOREOPERATION' => var_export($this->varSetBeforeOperations, true), ]; $res = file_get_contents($stub); @@ -456,5 +466,18 @@ class CubistMagicAbstractModel extends Model implements HasMedia return $this->{$this->getPrimaryKey()}; } + public function onBeforeEdit($controller, $id) + { + + } + + public function onBeforeUpdate($controller, $request) + { + + } + + public function onBeforeStore($controller, $request) + { + } } -- 2.39.5