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;
$modelMatrixErpProperty = new MatrixErpProperty();
$modelMatrixErpProperty->guid = $modelMatrixErp->guid;
$modelMatrixErpProperty->save();
+ } else {
+ /* @var $modelMatrixErpProperty MatrixErpProperty */
+ $modelMatrixErpProperty->keyProperties = Json::decode($modelMatrixErpProperty->yandex_key_properties);
}
$filterModel = DynamicModel::validateData([
use Yii;
use yii\helpers\ArrayHelper;
+use yii\helpers\Json;
use yii\web\UploadedFile;
use yii_app\forms\UploadImageForm;
use yii_app\helpers\LoadFileHelper;
$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 , '',[]);
}
}
+ $uploadImage = UploadedFile::getInstanceByName('MatrixErpProperty[imageFile]');
+
if ($uploadImage) {
if (Images::isImageFile(($uploadImage), ['png', 'jpg'])) {
$image = new Images();
->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 дополнительными характеристиками,
+// который нужно будет заполнить, сюда же входят подробности о товаре'));
}
/**
*/
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');
* @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}
{
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'],
[
[
'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],
];
'flowwow_category' => 'Категория в flowwow',
'flowwow_subcategory' => 'Подкатегория в flowwow',
'yandex_key_properties' => 'Ключевые свойства на yandex marketplace',
- 'yandex_additional_properties' => 'Дополнительные свойства на yandex marketplace'
+ //'yandex_additional_properties' => 'Дополнительные свойства на yandex marketplace'
];
}
// '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 .= '<tr><td>' . $prop['name'] . '</td><td>' . $prop['value'] . '</td><td>' . $prop['valueId'] . '</td><td>' . $prop['parameterId'] . '</td></tr>';
+ }
+ return '<table><thead><tr><th>Название</th><th>Значение</th><th>ЗначениеId</th><th>ПараметрId</th></tr></thead><tbody>' . $res . '</tbody></table>';
+ } catch (\Exception $ex) {
+ return '<span style="color: red">неверный формат json</span>';
+ }
+ }
+ ],
[
'attribute' => 'url_link_video',
'format' => 'raw',
<?= $form->field($modelMatrixErpProperty, 'flowwow_subcategory')->dropDownList([]) ?>
+ <div class="form-group">
+ <?= $form->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);?>
+ </div>
+
<div class="form-group">
<?= $form->field($modelMatrixErpProperty, 'mediaFiles')->widget(MultipleInput::className(), [
'min' => 0,