From: Alexander Smirnov Date: Sat, 2 Nov 2024 08:49:03 +0000 (+0300) Subject: [ERP-231] добавлена возможность редактировать json доп. параметров X-Git-Tag: 1.6~20^2~4 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=f33dbdd61d4f1aec09ed0dc0335c24273c2e5924;p=erp24_rep%2Fyii-erp24%2F.git [ERP-231] добавлена возможность редактировать json доп. параметров --- diff --git a/erp24/controllers/MatrixErpController.php b/erp24/controllers/MatrixErpController.php index 9b650013..2648c7f6 100644 --- a/erp24/controllers/MatrixErpController.php +++ b/erp24/controllers/MatrixErpController.php @@ -4,6 +4,7 @@ namespace app\controllers; use Yii; use yii\base\DynamicModel; +use yii\helpers\Json; use yii_app\records\MatrixErp; use yii_app\records\MatrixErpMedia; use yii_app\records\MatrixErpProperty; @@ -183,6 +184,9 @@ class MatrixErpController extends Controller $modelMatrixErpProperty = new MatrixErpProperty(); $modelMatrixErpProperty->guid = $modelMatrixErp->guid; $modelMatrixErpProperty->save(); + } else { + /* @var $modelMatrixErpProperty MatrixErpProperty */ + $modelMatrixErpProperty->keyProperties = Json::decode($modelMatrixErpProperty->yandex_key_properties); } $filterModel = DynamicModel::validateData([ diff --git a/erp24/controllers/MatrixErpPropertyController.php b/erp24/controllers/MatrixErpPropertyController.php index fce3f4f4..b1d3e644 100644 --- a/erp24/controllers/MatrixErpPropertyController.php +++ b/erp24/controllers/MatrixErpPropertyController.php @@ -4,6 +4,7 @@ namespace app\controllers; use Yii; use yii\helpers\ArrayHelper; +use yii\helpers\Json; use yii\web\UploadedFile; use yii_app\forms\UploadImageForm; use yii_app\helpers\LoadFileHelper; @@ -137,11 +138,14 @@ class MatrixErpPropertyController extends Controller $modelEdit->save(); if (Yii::$app->request->isPost) { - $uploadImage = UploadedFile::getInstanceByName('MatrixErpProperty[imageFile]'); + $postMatrixErpProperty = $this->request->post('MatrixErpProperty'); + + $modelEdit->yandex_key_properties = Json::encode($postMatrixErpProperty['keyProperties'], JSON_UNESCAPED_UNICODE); + $modelEdit->save(); $modelsMatrixErpMedia = MultipleModel::createMultipleModel(MatrixErpMedia::class, 'MatrixErpProperty', 'mediaFiles'); - $postMatrixErpProperty = $this->request->post('MatrixErpProperty'); + $loadDataMatrixErpMedia = ArrayHelper::getValue($postMatrixErpProperty, 'mediaFiles'); if (!empty($loadDataMatrixErpMedia)) { MultipleModel::loadMultipleFromArray($modelsMatrixErpMedia, $loadDataMatrixErpMedia , '',[]); @@ -214,6 +218,8 @@ class MatrixErpPropertyController extends Controller } } + $uploadImage = UploadedFile::getInstanceByName('MatrixErpProperty[imageFile]'); + if ($uploadImage) { if (Images::isImageFile(($uploadImage), ['png', 'jpg'])) { $image = new Images(); diff --git a/erp24/migrations/m241031_123240_add_columns_to_table_matrix_erp_property.php b/erp24/migrations/m241031_123240_add_columns_to_table_matrix_erp_property.php index a499fdda..a22cb89d 100755 --- a/erp24/migrations/m241031_123240_add_columns_to_table_matrix_erp_property.php +++ b/erp24/migrations/m241031_123240_add_columns_to_table_matrix_erp_property.php @@ -25,9 +25,9 @@ class m241031_123240_add_columns_to_table_matrix_erp_property extends Migration ->after('flowwow_category')->comment('Точное название подкатегории в flowwow, будет ограничено селектом в интерфейсе')); $this->addColumn(self::TABLE_NAME, 'yandex_key_properties', $this->text()->null() ->after('flowwow_subcategory')->comment('изначально это будет пустой json шаблон c характеристиками, который нужно будет заполнить')); - $this->addColumn(self::TABLE_NAME, 'yandex_additional_properties', $this->text()->null() - ->after('yandex_key_properties')->comment('изначально это будет пустой json шаблон c дополнительными характеристиками, - который нужно будет заполнить, сюда же входят подробности о товаре')); +// $this->addColumn(self::TABLE_NAME, 'yandex_additional_properties', $this->text()->null() +// ->after('yandex_key_properties')->comment('изначально это будет пустой json шаблон c дополнительными характеристиками, +// который нужно будет заполнить, сюда же входят подробности о товаре')); } /** @@ -35,7 +35,7 @@ class m241031_123240_add_columns_to_table_matrix_erp_property extends Migration */ public function safeDown() { - $this->dropColumn(self::TABLE_NAME, 'yandex_additional_properties'); +// $this->dropColumn(self::TABLE_NAME, 'yandex_additional_properties'); $this->dropColumn(self::TABLE_NAME, 'yandex_key_properties'); $this->dropColumn(self::TABLE_NAME, 'flowwow_subcategory'); $this->dropColumn(self::TABLE_NAME, 'flowwow_category'); diff --git a/erp24/records/MatrixErpProperty.php b/erp24/records/MatrixErpProperty.php index 9f290134..9f792967 100644 --- a/erp24/records/MatrixErpProperty.php +++ b/erp24/records/MatrixErpProperty.php @@ -23,13 +23,14 @@ use Yii; * @property string|null $flowwow_category Точное название категории в flowwow, будет ограничено селектом в интерфейсе * @property string|null $flowwow_subcategory Точное название подкатегории в flowwow, будет ограничено селектом в интерфейсе * @property string|null $yandex_key_properties изначально это будет пустой json шаблон c характеристиками, который нужно будет заполнить - * @property string|null $yandex_additional_properties изначально это будет пустой json шаблон c дополнительными характеристиками, + * property string|null $yandex_additional_properties изначально это будет пустой json шаблон c дополнительными характеристиками, * который нужно будет заполнить, сюда же входят подробности о товаре * */ class MatrixErpProperty extends \yii\db\ActiveRecord { public $imageFile; + public $keyProperties; /** * {@inheritdoc} @@ -46,7 +47,7 @@ class MatrixErpProperty extends \yii\db\ActiveRecord { return [ [['guid', 'date'], 'required'], - [['description', 'yandex_key_properties', 'yandex_additional_properties'], 'string'], + [['description', 'yandex_key_properties'/*, 'yandex_additional_properties'*/], 'string'], [['image_id', 'created_admin_id', 'updated_admin_id'], 'integer'], [ [ @@ -55,7 +56,7 @@ class MatrixErpProperty extends \yii\db\ActiveRecord 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg', 'checkExtensionByMimeType' => false ], [['mediaFile', 'id', 'display_name', 'external_image_url', 'product_url', 'flowwow_category', 'flowwow_subcategory', - 'yandex_key_properties', 'yandex_additional_properties'], 'safe'], + 'yandex_key_properties'/*, 'yandex_additional_properties'*/], 'safe'], [['guid', 'date', 'created_at', 'updated_at', 'display_name', 'external_image_url', 'product_url', 'flowwow_category', 'flowwow_subcategory'], 'string', 'max' => 100], [['url_link_video'], 'string', 'max' => 255], ]; @@ -83,7 +84,7 @@ class MatrixErpProperty extends \yii\db\ActiveRecord 'flowwow_category' => 'Категория в flowwow', 'flowwow_subcategory' => 'Подкатегория в flowwow', 'yandex_key_properties' => 'Ключевые свойства на yandex marketplace', - 'yandex_additional_properties' => 'Дополнительные свойства на yandex marketplace' + //'yandex_additional_properties' => 'Дополнительные свойства на yandex marketplace' ]; } diff --git a/erp24/views/matrix_erp/view.php b/erp24/views/matrix_erp/view.php index c9d0ea55..b01a27c7 100644 --- a/erp24/views/matrix_erp/view.php +++ b/erp24/views/matrix_erp/view.php @@ -88,6 +88,22 @@ $this->params['breadcrumbs'][] = $this->title; // 'updated_at', // 'image_id', 'display_name', 'external_image_url', 'product_url', 'flowwow_category', 'flowwow_subcategory', + [ + 'attribute' => 'yandex_key_properties', + 'format' => 'raw', + 'value' => function ($model) { + try { + $keyProperties = \yii\helpers\Json::decode($model->yandex_key_properties); + $res = ''; + foreach ($keyProperties as $prop) { + $res .= '' . $prop['name'] . '' . $prop['value'] . '' . $prop['valueId'] . '' . $prop['parameterId'] . ''; + } + return '' . $res . '
НазваниеЗначениеЗначениеIdПараметрId
'; + } catch (\Exception $ex) { + return 'неверный формат json'; + } + } + ], [ 'attribute' => 'url_link_video', 'format' => 'raw', diff --git a/erp24/views/matrix_erp_property/_form.php b/erp24/views/matrix_erp_property/_form.php index 8c6c2c33..17fc70a7 100644 --- a/erp24/views/matrix_erp_property/_form.php +++ b/erp24/views/matrix_erp_property/_form.php @@ -69,6 +69,43 @@ $this->registerJs( field($modelMatrixErpProperty, 'flowwow_subcategory')->dropDownList([]) ?> +
+ field($modelMatrixErpProperty, 'keyProperties')->widget(MultipleInput::class, [ + 'min' => 0, + 'max' => 100, + 'columns' => [ + [ + 'name' => 'name', + 'type' => 'textInput', + 'title' => 'Название', + + ], + [ + 'name' => 'value', + 'type' => 'textInput', + 'title' => 'Значение', + ], + [ + 'name' => 'valueId', + 'type' => 'textInput', + 'title' => 'ЗначениеID', + ], + [ + 'name' => 'parameterId', + 'type' => 'textInput', + 'title' => 'parameterId', + ], + ], + 'addButtonPosition' => MultipleInput::POS_FOOTER, + 'addButtonOptions' => [ + 'class' => 'btn btn-success visible-md', + 'style' => 'display:block; width: 250px;', + + ], + 'iconSource'=> 'fa', + ])->label(false);?> +
+
field($modelMatrixErpProperty, 'mediaFiles')->widget(MultipleInput::className(), [ 'min' => 0,