From fab7d38d0b1a5e589f64b962bcd37de77a7a1739 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 25 Jun 2019 11:47:52 +0200 Subject: [PATCH] #2843 --- composer.json | 4 - .../Magic/Fields/BunchOfFieldsMultiple.php | 63 ++++++++++++++ src/app/Magic/Models/CMSPage.php | 2 +- src/app/Magic/Models/Settings.php | 10 +++ src/resources/views/fields/bunch.blade.php | 2 +- .../views/fields/bunch_multiple.blade.php | 82 +++++++++++++++++++ 6 files changed, 157 insertions(+), 6 deletions(-) create mode 100644 src/app/Magic/Fields/BunchOfFieldsMultiple.php create mode 100644 src/app/Magic/Models/Settings.php create mode 100644 src/resources/views/fields/bunch_multiple.blade.php diff --git a/composer.json b/composer.json index ea26ef5..bc6a4b7 100644 --- a/composer.json +++ b/composer.json @@ -24,15 +24,11 @@ "backpack/menucrud": "^1.0", "backpack/newscrud": "^2.1", "backpack/permissionmanager": "^4.0", - "backpack/settings": "^2.1", "backpack/langfilemanager": "^1.0", "cubist/cms-front": "dev-master", - "barryvdh/laravel-elfinder": "^0.4.1", "cubist/util": "dev-master", "fideloper/proxy": "^4.0", "predis/predis": "^1.1", - "webfactor/laravel-backpack-instant-fields": "^2.3.1", - "webfactor/laravel-backpack-nestedmodels": "^1.0.1@dev", "spatie/laravel-translatable": "^4.1", "venturecraft/revisionable": "^1.30", "gaspertrix/laravel-backpack-dropzone-field": "^1.0" diff --git a/src/app/Magic/Fields/BunchOfFieldsMultiple.php b/src/app/Magic/Fields/BunchOfFieldsMultiple.php new file mode 100644 index 0000000..fd0c188 --- /dev/null +++ b/src/app/Magic/Fields/BunchOfFieldsMultiple.php @@ -0,0 +1,63 @@ + []]); + } + + public function _postSetAttributes() + { + parent::_postSetAttributes(); + $this->_setBunchOfFields(); + } + + protected function _setBunchOfFields() + { + $bunch = $this->getAttribute('bunch'); + if (is_array($bunch)) { + foreach ($bunch as $item) { + if (is_array($item)) { + $f = Field::getInstance($item); + } else if ($item instanceof Field) { + $f = $item; + } + } + $this->_fields[$f->getAttribute('name')] = $f; + } + if (is_string($bunch)) { + if (class_exists($bunch)) { + $bunchInstance = new $bunch(); + if (method_exists($bunchInstance, 'getFields')) { + $this->_fields = $bunchInstance->getFields(); + } + } + } + + $crudfields = []; + foreach ($this->_fields as $field) { + $name = $field->getAttribute('name'); + $e = explode('[', $name); + $main = array_shift($e); + $name = $this->getAttribute('name') . '___' . $main; + foreach ($e as $item) { + $name .= '___' . $item; + } + $field->setAttribute('name', $name); + $crudfields[$name] = $field->getDefinition(); + } + $this->setAttribute('bunchfields', $crudfields); + } +} diff --git a/src/app/Magic/Models/CMSPage.php b/src/app/Magic/Models/CMSPage.php index b3ed9ea..f93660a 100644 --- a/src/app/Magic/Models/CMSPage.php +++ b/src/app/Magic/Models/CMSPage.php @@ -10,7 +10,7 @@ class CMSPage extends CubistMagicModel { protected static $_templates = []; - protected $table = 'cms_pages'; + protected $table = 'cubist_cms_pages'; protected $_options = ['name' => 'page', 'singular' => 'page', diff --git a/src/app/Magic/Models/Settings.php b/src/app/Magic/Models/Settings.php new file mode 100644 index 0000000..5ce9d54 --- /dev/null +++ b/src/app/Magic/Models/Settings.php @@ -0,0 +1,10 @@ + $v) { + @endpush + + {{-- FIELD JS - will be loaded in the after_scripts section --}} + @push('crud_fields_scripts') + + @endpush + +@endif +{{-- End of Extra CSS and JS --}} +{{-- ########################################## --}} -- 2.39.5