From 49567b5ad0052a3dea060c20779afe0cf1696e84 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Fri, 21 Jun 2019 14:55:25 +0200 Subject: [PATCH] #2843 --- src/app/Magic/Fields/Field.php | 2 +- src/app/Magic/Models/CMSPage.php | 5 ++++- .../Magic/Models/CubistMagicAbstractModel.php | 17 +++++++++++------ src/app/Template/TemplateAbstract.php | 2 +- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/app/Magic/Fields/Field.php b/src/app/Magic/Fields/Field.php index 528db59..abc5917 100644 --- a/src/app/Magic/Fields/Field.php +++ b/src/app/Magic/Fields/Field.php @@ -74,7 +74,7 @@ class Field implements \ArrayAccess public function getDatabaseType() { - if ($this->_translatable) { + if ($this->getAttribute('translatable')) { return 'text'; } return $this->_databaseType; diff --git a/src/app/Magic/Models/CMSPage.php b/src/app/Magic/Models/CMSPage.php index 2f02c1a..1276e8e 100644 --- a/src/app/Magic/Models/CMSPage.php +++ b/src/app/Magic/Models/CMSPage.php @@ -54,6 +54,7 @@ class CMSPage extends CubistMagicModel 'default' => '0', 'label' => __('Status'), 'options' => ['0' => __('Offline'), '1' => __('Published')], + 'translatable' => true, 'tab' => 'Informations principales', ]); $this->_seo(); @@ -148,7 +149,9 @@ class CMSPage extends CubistMagicModel return; } foreach ($fields as $field) { - $this->addFakeField($field); + $attr = array_merge($this->defaultFieldAttributes, $field); + + $this->addFakeField($attr); } $controller->updateFieldsFromModel(); diff --git a/src/app/Magic/Models/CubistMagicAbstractModel.php b/src/app/Magic/Models/CubistMagicAbstractModel.php index 8a8338d..31073ea 100644 --- a/src/app/Magic/Models/CubistMagicAbstractModel.php +++ b/src/app/Magic/Models/CubistMagicAbstractModel.php @@ -211,11 +211,15 @@ class CubistMagicAbstractModel extends Model implements HasMedia if (!in_array($store_in, $this->fillable)) { $this->fillable[] = $store_in; } - if (!isset($this->casts[$store_in])) { - $this->casts[$store_in] = 'array'; + + $this->casts[$store_in] = 'array'; + + if ($field->getAttribute('translatable')) { + $this->fillable[] = $store_in; + $this->translatable[] = $store_in; } - $this->fakeColumns[$store_in] = true; + $this->fakeColumns[] = $store_in; } else { if ($field->getAttribute('fillable')) { $this->fillable[] = $name; @@ -226,9 +230,6 @@ class CubistMagicAbstractModel extends Model implements HasMedia if ($field->getAttribute('hidden')) { $this->hidden[] = $name; } - if ($field->getAttribute('translatable')) { - $this->translatable[] = $name; - } if ($field->getAttribute('cast', false) !== false) { $this->casts[$field->getAttribute('name')] = $field->getAttribute('cast'); } @@ -237,6 +238,10 @@ class CubistMagicAbstractModel extends Model implements HasMedia } } + if ($field->getAttribute('translatable')) { + $this->translatable[] = $name; + } + } diff --git a/src/app/Template/TemplateAbstract.php b/src/app/Template/TemplateAbstract.php index d264536..885d34e 100644 --- a/src/app/Template/TemplateAbstract.php +++ b/src/app/Template/TemplateAbstract.php @@ -12,7 +12,7 @@ class TemplateAbstract */ protected static $_templates = null; - protected $defaultFieldAttributes = ['translatable' => true]; + protected $defaultFieldAttributes = []; protected $_fields = []; -- 2.39.5