]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-231] исправляет matrix-erp раздел
authorAlexander Smirnov <fredeom@mail.ru>
Sat, 26 Oct 2024 14:31:47 +0000 (17:31 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Sat, 26 Oct 2024 14:31:47 +0000 (17:31 +0300)
docker/nginx/conf/nginx.conf
erp24/controllers/MatrixErpController.php
erp24/controllers/MatrixErpPropertyController.php
erp24/helpers/File.php
erp24/helpers/ImageHelper.php
erp24/records/MatrixErpMedia.php
erp24/records/MatrixErpProperty.php
erp24/services/FileService.php
erp24/views/matrix_erp/update.php
erp24/views/matrix_erp/view.php
erp24/views/matrix_erp_property/_form.php

index 8baaa7200919e40ffbf1cecdf9e663b11e2e3f2b..9689c6d2d1de95f7bc22f5bd626d1382dcbf2aab 100644 (file)
@@ -32,6 +32,10 @@ http {
         listen  [::]:80;
         server_name  erp24;
 
+        location ~ /uploads/.*\.(js|css|jpg|png|ico|woff|woff2|ttf) {
+            root    /www;
+        }
+
         location ~ .*\.(js|css|jpg|png|ico|woff|woff2|ttf) {
           root        /www/web;
         }
@@ -56,6 +60,10 @@ http {
 
         server_name  erp24;
 
+        location ~ /uploads/.*\.(js|css|jpg|png|ico|woff|woff2|ttf) {
+            root    /www;
+        }
+
         location ~ .*\.(js|css|jpg|png|ico|woff|woff2|ttf) {
           root        /www/web;
         }
index d0ddafb934fe6e304e75e98538518db735e977f9..9b650013b6e51fde0ba6455a9fed9c743969381b 100644 (file)
@@ -133,7 +133,7 @@ class MatrixErpController extends Controller
     {
         $model = $this->findModel($id);
         $modelProperty = MatrixErpProperty::find()->where(['guid' => $model->guid])->one();
-        $matrixErpMedia = MatrixErpMedia::find()->where(['guid' => $model->guid])->with('files')->all();
+        $matrixErpMedia = MatrixErpMedia::find()->where(['guid' => $model->guid])->with('file')->all();
         if (empty($modelProperty)) {
             $modelProperty = new MatrixErpProperty();
             $modelProperty->guid = $model->guid;
@@ -182,62 +182,18 @@ class MatrixErpController extends Controller
         if (empty($modelMatrixErpProperty)) {
             $modelMatrixErpProperty = new MatrixErpProperty();
             $modelMatrixErpProperty->guid = $modelMatrixErp->guid;
-        }
-
-        $isSetModelsMatrixErpMedia = false;
-
-        $modelsMatrixErpMedia = MatrixErpMedia::find()->where(['guid' => $modelMatrixErp->guid])->with('files')->all();
-//        $modelsMatrixErpMedia, //$modelsMatrixErpMedia = [new MatrixErpMedia()];
-        if (empty($modelsMatrixErpMedia)) {
-            $modelsMatrixErpMediaRow = new MatrixErpMedia();
-            $modelsMatrixErpMediaRow->guid = $modelMatrixErp->guid;
-            $modelsMatrixErpMedia = [$modelsMatrixErpMediaRow];
-        } else {
-            $isSetModelsMatrixErpMedia = true;
-        }
-
-        if ($this->request->isPost && $modelMatrixErp->load($this->request->post()) && $modelMatrixErp->save()) {
-            return $this->redirect(['view', 'id' => $modelMatrixErp->id]);
+            $modelMatrixErpProperty->save();
         }
 
         $filterModel = DynamicModel::validateData([
             'imageFile',
         ], [
-            [
-                [
-                    'imageFile',
-                ],
-                'image',
-
-            ],
+            [['imageFile',], 'image',],
         ]);
 
-        $modelsMatrixErpMediaArray = [];
-
-
-//        if ($isSetModelsMatrixErpMedia) {
-//
-//            foreach ($modelsMatrixErpMedia as $media) {
-//                if (!empty($media->id)) {
-//                    /** @var MatrixErpMedia $media */
-//                    $modelsMatrixErpMediaArray[] = ArrayHelper::getValue($media->getRelatedRecords(), 'files');
-////                    $media->mediaFiles = ArrayHelper::getValue($media->getRelatedRecords(), 'files');
-//                }
-////                $modelsMatrixErpMedia->mediaFiles = ArrayHelper::getValue($modelsMatrixErpMedia->getRelatedRecords(), 'files');
-////            $modelsMatrixErpMedia->mediaFiles = $modelsMatrixErpMedia;
-//            }
-//
-////        $modelsMatrixErpMedia->mediaFiles = [
-////
-////];
-//
-//        }
-        $modelMatrixErpProperty->mediaFiles = $modelsMatrixErpMedia;
-
         return $this->render('/matrix_erp/update', [
             'modelMatrixErp' => $modelMatrixErp,
             'modelMatrixErpProperty' => $modelMatrixErpProperty,
-            'modelsMatrixErpMedia' => $modelsMatrixErpMedia,
             'filterModel' => $filterModel,
         ]);
     }
index 7d0b53236360f6bc31bb1c3aa5819a6f34fe9812..fce3f4f4a28a77669c3d8ecf82a6f751b313b8be 100644 (file)
@@ -99,201 +99,142 @@ class MatrixErpPropertyController extends Controller
      * @return string|\yii\web\Response
      * @throws NotFoundHttpException if the model cannot be found
      */
-    public function actionUpdate($id = null)
+    public function actionUpdate()
     {
-        $session = Yii::$app->session;
-        $request = Yii::$app->getRequest();
+        $adminId = Yii::$app->user->id;
 
-        $adminId = $session->get('admin_id');
-
-
-
-
-        if (!empty($id)) {
-            $model = $this->findModel($id);
-        } else {
-            $model = new MatrixErpProperty();
-
-            if ($this->request->isPost) {
-                $modelMatrixErp = new MatrixErp();
-                $modelMatrixErp->load($this->request->post());
+        $model = new MatrixErpProperty();
 
-                $matrixErpId = $modelMatrixErp->id;
+        if ($this->request->isPost) {
+            $modelMatrixErp = new MatrixErp();
+            $modelMatrixErp->load($this->request->post());
 
-                if ($model->load($this->request->post())) {
-                    if (!empty($model->id)) {
-                        $modelEdit = $this->findModel($model->id);
-                        $modelEdit->load($this->request->post());
+            $matrixErpId = $modelMatrixErp->id;
 
-                        $modelEdit->updated_at = date("Y-m-d H:i:s");
-                        $modelEdit->updated_admin_id = $adminId;
+            if ($model->load($this->request->post())) {
+                if (!empty($model->id)) {
+                    $modelEdit = $this->findModel($model->id);
+                    $modelEdit->load($this->request->post());
 
-                    } else {
-                        $modelEdit = $model;
-                        $modelEdit->date = date("Y-m-d H:i:s");
-                        $modelEdit->created_at = date("Y-m-d H:i:s");
-                        $modelEdit->created_admin_id = $adminId;
-                    }
+                    $modelEdit->updated_at = date("Y-m-d H:i:s");
+                    $modelEdit->updated_admin_id = $adminId;
 
+                } else {
+                    $modelEdit = $model;
+                    $modelEdit->date = date("Y-m-d H:i:s");
+                    $modelEdit->created_at = date("Y-m-d H:i:s");
+                    $modelEdit->created_admin_id = $adminId;
+                }
 
+                if (!empty($modelEdit->image_id)) {
+                    $oldFile = Images::find()->where(['id' => $modelEdit->image_id])->one();
+                }
 
-                    if (!empty($modelEdit->image_id)) {
-                        $oldFile = Images::find()->where(['id' => $modelEdit->image_id])->one();
+                if ($modelEdit->validate()) {
+                    if (empty($modelEdit->id)) {
+                        unset($modelEdit->id);
                     }
+                    $modelEdit->save();
 
-                    $modelsMatrixErpMedia = [new MatrixErpMedia()];
-
-                    $validate = $modelEdit->validate();
-
-                    if ($validate) {
-                        $modelEdit->save();
-
-                        if (Yii::$app->request->isPost) {
-                            $uploadImageForm = new UploadImageForm();
-
-                            if ($uploadImageForm->load($this->request->post())) {
-                                $test=1;
-                            }
-                            $uploadImage = UploadedFile::getInstanceByName('MatrixErpProperty[imageFile]');
-
-                            $uploadMediaFiles = LoadFileHelper::getInstancesByName('MatrixErpMedia', true);
-
-                            $modelsMediaFiles = [];
-                            if (!empty($uploadMediaFiles)) {
-                                $modelsMediaFiles = ArrayHelper::getValue($uploadMediaFiles, 'mediaFiles');
-                            }
-
-
-//                            $mediaFiles = MultipleModel::createMultipleModel(MatrixErpProperty::classname(), 'MatrixErpProperty', 'mediaFiles', []);
-//                            MultipleModel::loadMultipleFromArray($modelEdit, $modelEdit->mediaFiles , '', $mediaFiles);
-                            $modelsMatrixErpMedia = MultipleModel::createMultipleModel(MatrixErpMedia::classname(), 'MatrixErpProperty', 'mediaFiles');
-                            $postMatrixErpProperty = $this->request->post('MatrixErpProperty');
-                            $loadDataMatrixErpMedia = ArrayHelper::getValue($postMatrixErpProperty, 'mediaFiles');
-                            if (!empty($loadDataMatrixErpMedia)) {
-                                MultipleModel::loadMultipleFromArray($modelsMatrixErpMedia, $loadDataMatrixErpMedia , '',[]);
-                            }
+                    if (Yii::$app->request->isPost) {
+                        $uploadImage = UploadedFile::getInstanceByName('MatrixErpProperty[imageFile]');
 
-                            $loadMediaIds = ArrayHelper::getColumn($modelsMatrixErpMedia, 'id');
+                        $modelsMatrixErpMedia = MultipleModel::createMultipleModel(MatrixErpMedia::class,
+                            'MatrixErpProperty', 'mediaFiles');
+                        $postMatrixErpProperty = $this->request->post('MatrixErpProperty');
+                        $loadDataMatrixErpMedia = ArrayHelper::getValue($postMatrixErpProperty, 'mediaFiles');
+                        if (!empty($loadDataMatrixErpMedia)) {
+                            MultipleModel::loadMultipleFromArray($modelsMatrixErpMedia, $loadDataMatrixErpMedia , '',[]);
+                        }
 
-                            if (!empty(array_filter($loadMediaIds))) {
-                                $MatrixErpMediaOld = MatrixErpMedia::find()->andWhere(['guid' => $modelEdit->guid])->andWhere(['NOT IN','id', $loadMediaIds])->all();
-                            }
-                            if (!empty($MatrixErpMediaOld)) {
-                                foreach ($MatrixErpMediaOld as $item) {
-                                    /** @var MatrixErpMedia $item */
-                                    if (!empty($item->file_id)) {
-                                        $fileRow = Files::find()->where(['id' => $item->file_id])->one();
+                        $loadMediaIds = ArrayHelper::getColumn($modelsMatrixErpMedia, 'id');
 
-                                    /** @var Files $fileRow */
-                                    unlink('./' . $fileRow->url);
-                                    $fileRow->delete();
+                        $MatrixErpMediaOld = MatrixErpMedia::find()->andWhere(['guid' => $modelEdit->guid])
+                            ->andWhere(['NOT IN','id', array_filter($loadMediaIds)])->all();
 
+                        if (!empty($MatrixErpMediaOld)) {
+                            foreach ($MatrixErpMediaOld as $item) {
+                                /** @var MatrixErpMedia $item */
+                                if (!empty($item->file_id)) {
+                                    $fileRow = Files::find()->where(['id' => $item->file_id])->one();
+                                    if ($fileRow) {
+                                        /** @var Files $fileRow */
+                                        @unlink('./' . $fileRow->url);
+                                        $fileRow->delete();
                                     }
-                                    $item->delete();
                                 }
+                                $item->delete();
                             }
+                        }
 
-
-
-                            $infos = FileService::uploadFileMultilevel('MatrixErpProperty', $adminId, ['mediaFiles','mediaFile']);
-
-                            foreach ($modelsMatrixErpMedia as $key => $modelMatrixErpMedia) {
-                                if (!empty( $modelMatrixErpMedia->id)) {
-                                    $modelMatrixErpMediaIdRow = $modelMatrixErpMedia->id;
-                                    /** @var MatrixErpMedia $modelMatrixErpMediaRow */
-                                    $modelMatrixErpMediaRow = MatrixErpMedia::find()->where(['id'=>$modelMatrixErpMediaIdRow])->one();
-                                    $loadDataMatrixErpMediaByKey = $loadDataMatrixErpMedia[$key];
-                                    if (!empty($loadDataMatrixErpMediaByKey)) {
-                                        if (!empty($modelMatrixErpMediaRow)) {
-                                            $modelMatrixErpMediaRow->load($loadDataMatrixErpMediaByKey,'');
-                                        } else {
-                                            /** @var MatrixErpMedia $modelMatrixErpMediaRow */
-                                            $modelMatrixErpMediaRow = $modelMatrixErpMedia;
-                                        }
+                        $infos = FileService::uploadFileMultilevel('MatrixErpProperty', $adminId, ['mediaFiles','mediaFile']);
+
+                        foreach ($modelsMatrixErpMedia as $key => $modelMatrixErpMedia) {
+                            if (!empty($modelMatrixErpMedia->id)) {
+                                $modelMatrixErpMediaRow = MatrixErpMedia::find()->where(['id'=> $modelMatrixErpMedia->id])->one();
+                                /** @var MatrixErpMedia $modelMatrixErpMediaRow */
+                                if (!empty($loadDataMatrixErpMedia[$key])) {
+                                    if (!empty($modelMatrixErpMediaRow)) {
+                                        $modelMatrixErpMediaRow->load($loadDataMatrixErpMedia[$key],'');
+                                    } else {
+                                        $modelMatrixErpMediaRow = $modelMatrixErpMedia;
                                     }
-                                } else {
-
-                                    /** @var MatrixErpMedia $modelMatrixErpMediaRow */
-                                    $modelMatrixErpMediaRow = $modelMatrixErpMedia;
                                 }
+                            } else {
+                                /** @var MatrixErpMedia $modelMatrixErpMediaRow */
+                                /** @var MatrixErpMedia $modelMatrixErpMedia */
+                                $modelMatrixErpMediaRow = $modelMatrixErpMedia;
+                            }
 
-                                if (!empty($modelsMediaFiles[$key])) {
-
-
-                                    if ($infos) {
-                                        if (array_key_exists($key, $infos) && !empty( $infos[$key])) {
-                                            $info = $infos[$key];
-
-                                            $file = new Files();
-                                            $file->created_at = date("Y-m-d H:i:s");
-                                            $file->entity_id = $modelEdit->id;
-                                            $file->entity = "matrix_media";
-                                            $file->file_type = $info['fileType'];
-                                            $file->url = $info['target_base_dir'];
-                                            $file->save(false);
-
-                                            $modelMatrixErpMediaRow->file_id = $file->id;
+                            if (array_key_exists($key, $infos) && !empty($infos[$key])) {
+                                $info = $infos[$key];
 
-                                        }
-                                    }
+                                $file = new Files();
+                                $file->created_at = date("Y-m-d H:i:s");
+                                $file->entity_id = $modelEdit->id;
+                                $file->entity = "matrix_media";
+                                $file->file_type = $info['fileType'];
+                                $file->url = $info['target_base_file'];
+                                $file->save(false);
 
+                                $modelMatrixErpMediaRow->file_id = $file->id;
+                            }
 
+                            if ($modelMatrixErpMediaRow->isNewRecord) {
+                                $modelMatrixErpMediaRow->guid = $modelEdit->guid;
+                                $modelMatrixErpMediaRow->created_admin_id = $adminId;
+                                $modelMatrixErpMediaRow->date = date("Y-m-d H:i:s");
+                                $modelMatrixErpMediaRow->created_at = date("Y-m-d H:i:s");
+                            }
+                            if ($modelMatrixErpMediaRow->validate()) {
+                                if (empty($modelMatrixErpMediaRow->id)) {
+                                    unset($modelMatrixErpMediaRow->id);
                                 }
-                                if (!empty($modelMatrixErpMediaRow)) {
-                                    $modelMatrixErpMediaRow->guid = $modelEdit->guid;
-                                    $modelMatrixErpMediaRow->created_admin_id = $adminId;
-                                    $modelMatrixErpMediaRow->date = date("Y-m-d H:i:s");
-                                    $modelMatrixErpMediaRow->created_at = date("Y-m-d H:i:s");
-                                    $validateRow = $modelMatrixErpMediaRow->validate();
-                                    if ($validateRow) {
-                                        $modelMatrixErpMediaRow->save();
-                                    }
-                                }
+                                $modelMatrixErpMediaRow->save();
                             }
+                        }
 
+                        if ($uploadImage) {
+                            if (Images::isImageFile(($uploadImage), ['png', 'jpg'])) {
+                                $image = new Images();
+                                $imageId = $image->loadImage(($uploadImage));
 
-                            if ($uploadImage) {
-                                if (Images::isImageFile(($uploadImage), ['png', 'jpg'])) {
-                                    $image = new Images();
-                                    $imageId = $image->loadImage(($uploadImage));
-
-                                    if (!empty($imageId)) {
-                                        $modelEdit->image_id = $imageId;
+                                if (!empty($imageId)) {
+                                    $modelEdit->image_id = $imageId;
 
-                                        if (!empty($oldFile)) {
-                                            $oldFile->delete();
-                                        }
-                                        $modelEdit->save();
+                                    if (!empty($oldFile)) {
+                                        $oldFile->delete();
                                     }
+                                    $modelEdit->save();
                                 }
                             }
                         }
-
-                        return $this->redirect(['matrix-erp/view', 'id' => $matrixErpId]);
                     }
+
+                    return $this->redirect(['matrix-erp/view', 'id' => $matrixErpId]);
                 }
             }
         }
-
-        /**/
-//      $form->field($model, 'date')->textInput(['maxlength' => true])
-//
-//     $form->field($model, 'created_admin_id')->textInput()
-//
-//     $form->field($model, 'created_at')->textInput()
-//
-//     $form->field($model, 'updated_admin_id')->textInput()
-//
-//     $form->field($model, 'updated_at')->textInput()
-        /**/
-
-//        if ($this->request->isPost && $model->load($this->request->post()) && $model->save()) {
-//            return $this->redirect(['matrix_erp/view', 'id' => $model->matrix_erp_id]);
-//        }
-//
-//        return $this->render('update', [
-//            'model' => $model,
-//        ]);
     }
 
     /**
index 45ac5d34e9f72b27333bf6d8585b8d232565dd5f..0a21adeccd9576c28a49bc7579ff5382a0aafcf9 100644 (file)
@@ -70,7 +70,7 @@ class File extends FileHelper
         }
 
         $substr = substr($filename, 0, 2);
-               $rootPath = Yii::getAlias("uploads{$prefixStr}/{$substr}/{$filename}");
+               $rootPath = Yii::getAlias("@uploads{$prefixStr}/{$substr}/{$filename}");
                if (file_exists($rootPath)) {
                        return $rootPath;
                } else {
index 39be89056bf259f6a25663483786d27be0de8b9e..7b744a132a6087c5253fb946dab0534dbaf91e82 100644 (file)
@@ -33,7 +33,7 @@ class ImageHelper
     public static function getImage($imageId, $width = 300, $height = 200) {
         $image = '';
         $modelImage = \yii_app\records\Images::findOne(['id' => $imageId]);
-        if ($modelImage) {
+        if ($modelImage && File::src($modelImage->filename, 'images') != null) {
             $fileName = File::src($modelImage->filename, 'images');
             $relaFileName = File::getRealName($imageId);
             $imageThumbRow = File::getResizedImageByName($modelImage->filename, $width, $height);
@@ -55,10 +55,7 @@ class ImageHelper
         foreach ($images as $imageIdRow) {
             $modelImage = \yii_app\records\Images::findOne(['id' => $imageIdRow]);
 
-            $relaFileName = null;
-            $required = true;
-            if ($modelImage) {
-                $required = false;
+            if ($modelImage && File::src($modelImage->filename, 'images') != null) {
                 $fileName = File::src($modelImage->filename, 'images');
                 $relaFileName = File::getRealName($imageIdRow);
                 $imageThumbRow =  File::getResizedImageByName($modelImage->filename, $w , $h);
index 1df22c93b5358cd41ee9191644280ce49b5603e8..37415baf18a835afbf6d99e86f3bc1ec184596f1 100644 (file)
@@ -20,9 +20,8 @@ use Yii;
  */
 class MatrixErpMedia extends \yii\db\ActiveRecord
 {
-
     public $mediaFile;
-//    public $mediaFiles;
+
     /**
      * {@inheritdoc}
      */
@@ -39,7 +38,7 @@ class MatrixErpMedia extends \yii\db\ActiveRecord
         return [
             [['guid', 'name', 'date'], 'required'],
             [['description'], 'string'],
-            [['mediaFiles'], 'safe'],
+            [['mediaFiles', 'id'], 'safe'],
             [['file_id', 'created_admin_id', 'updated_admin_id'], 'integer'],
             [['guid', 'name', 'date', 'created_at', 'updated_at'], 'string', 'max' => 100],
         ];
@@ -65,7 +64,7 @@ class MatrixErpMedia extends \yii\db\ActiveRecord
     }
 
 
-    public function getFiles() {
+    public function getFile() {
         return $this->hasOne(Files::class, ['id' => 'file_id'])->andWhere(['like', 'entity', 'matrix_media']);
     }
 }
index 01572022ee185c73b947450b54f63d1d53a42a76..1699e31f07601fbb16038574c4ca0d46d3b78aad 100644 (file)
@@ -21,7 +21,7 @@ use Yii;
 class MatrixErpProperty extends \yii\db\ActiveRecord
 {
     public $imageFile;
-    public $mediaFiles;
+
     /**
      * {@inheritdoc}
      */
@@ -45,7 +45,7 @@ class MatrixErpProperty extends \yii\db\ActiveRecord
                 ],
                 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg', 'checkExtensionByMimeType' => false
             ],
-            [['mediaFile'], 'safe'],
+            [['mediaFile', 'id'], 'safe'],
             [['guid', 'date', 'created_at', 'updated_at'], 'string', 'max' => 100],
             [['url_link_video'], 'string', 'max' => 255],
         ];
@@ -69,4 +69,8 @@ class MatrixErpProperty extends \yii\db\ActiveRecord
             'updated_at' => 'Updated At',
         ];
     }
+
+    public function getMediaFiles() {
+        return $this->hasMany(MatrixErpMedia::class, ['guid' => 'guid']);
+    }
 }
index a77a03ef7cb73d0bc6ecb016d09409e8a1590883..31bee4fddb32c98f2334b221237d515fdfdcbdac 100755 (executable)
@@ -20,6 +20,10 @@ class FileService
                 $result = [];
                 for ($i=0; $i < $countfiles; $i++) {
                     $filename = $_FILES[$label]["name"][$i];
+                    if (!$filename) {
+                        $result[] = null;
+                        continue;
+                    }
                     $target_file = $target_dir . date("His") . $i . basename($filename);
 
                     $uploadOk = 1;
@@ -193,24 +197,26 @@ class FileService
             $target_dir = $uploadDir."/$admin_id/" . date("Y") . "/" . date("m") . "/" . date("d") . "/";
             $target_base_dir = "/uploads/$admin_id/" . date("Y") . "/" . date("m") . "/" . date("d") . "/";
             if ($isMultiple) {
-                $filesKeyName = $label.'.name';
-
                 $filesKeyName = $label.'.tmp_name';
                 if (!empty($multilevelKey[0])) {
                     $filesKeyName = $label.'.name.' . $multilevelKey[0];
                     $filesTempName = $label.'.tmp_name.' . $multilevelKey[0];
                 }
-                $filesNames = ArrayHelper::getValue($_FILES,$filesKeyName);
-                $filesTempNames = ArrayHelper::getValue($_FILES,$filesTempName);
+                $filesNames = ArrayHelper::getValue($_FILES,$filesKeyName) ?? [];
+                $filesNamesKeys = array_keys($filesNames);
+                $filesNames = array_values($filesNames);
                 $countFiles = count($filesNames);
-                $countfiles = count($_FILES[$label]["name"]);
                 $result = [];
                 for ($i=0; $i < $countFiles; $i++) {
+                    $filesKeyNameRowBeforeReindexing = $filesNamesKeys[$i] . '.' . $multilevelKey[1];
                     $filesKeyNameRow = $i . '.' . $multilevelKey[1];
-//                    $filesKeyNameRow = $i . '.' . $multilevelKey;
-                    $filename = ArrayHelper::getValue($filesNames,$filesKeyNameRow);
-//                    $filename = $_FILES[$label]["name"][$i];
+                    $filename = ArrayHelper::getValue($filesNames, $filesKeyNameRow);
+                    if (!$filename) {
+                        $result [] = null;
+                        continue;
+                    }
                     $target_file = $target_dir . date("His") . $i . basename($filename);
+                    $target_base_file = $target_base_dir . date("His") . $i . basename($filename);
 
                     $uploadOk = 1;
                     $fileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION));
@@ -224,10 +230,10 @@ class FileService
                         if (!is_dir($target_dir)) {
                             mkdir($target_dir, 0777, true);
                         }
-                        $filesTempNameRow = $filesTempName . '.' . $filesKeyNameRow;
+                        $filesTempNameRow = $filesTempName . '.' . $filesKeyNameRowBeforeReindexing;
                         $filesTempRow = ArrayHelper::getValue($_FILES,$filesTempNameRow);
                         if (move_uploaded_file($filesTempRow, $target_file)) {
-                            $result[] = compact('fileType', 'target_file', 'target_base_dir');
+                            $result[] = compact('fileType', 'target_file', 'target_base_dir', 'target_base_file');
                         } else {
                             $result[] = [];
                         }
@@ -246,7 +252,9 @@ class FileService
         $result = '';
 
         if ($file->file_type == 'image' && $drawImage) {
-            $result = ImageHelper::drawImage($file->url);
+            ob_start();
+            ImageHelper::drawImage($file->url);
+            $result = ob_get_clean();
         } else {
             $result = "<a href='" . Url::to(['/files/download', 'url' => $file->url]) . "' class='btn btn-link' target='_blank' data-pjax='0'>" . basename($file->url) . "</a>";
         }
index 7722a0d832f9c967590792c79a1a56ede773ab82..3a4411b291daf5a47b0bb4a38b5a9996ed9ecccd 100644 (file)
@@ -5,13 +5,10 @@ use yii\helpers\Html;
 use yii\widgets\DetailView;
 
 /** @var yii\web\View $this */
-/** @var yii_app\records\MatrixErpProperty $modelProperty */
-/** @var yii_app\records\MatrixErpMedia $modelsMatrixErpMedia */
 /** @var DynamicModel $filterModel */
 
 /** @var yii_app\records\MatrixErp $modelMatrixErp */
 /** @var yii_app\records\MatrixErpProperty $modelMatrixErpProperty */
-/** @var yii_app\records\MatrixErpMedia $modelsMatrixErpMedia */
 
 $this->title = 'Изменение свойств матричного букета: ' . $modelMatrixErp->name;
 $this->params['breadcrumbs'][] = ['label' => 'Matrix Erps', 'url' => ['index']];
@@ -79,11 +76,8 @@ $this->params['breadcrumbs'][] = 'Update';
 
     <?= $this->render('/matrix_erp_property/_form', [
         'filterModel' => $filterModel,
-
         'modelMatrixErp' => $modelMatrixErp,
         'modelMatrixErpProperty' => $modelMatrixErpProperty,
-        'modelsMatrixErpMedia' => $modelsMatrixErpMedia,
-
     ]) ?>
 
 </div>
\ No newline at end of file
index d1eb3d50812aca386ed79aded5785884f804d8c7..041a8bbd25c089ef4648ff2af9583994cd0c0018 100644 (file)
@@ -10,7 +10,7 @@ use yii_app\services\FileService;
 /** @var yii\web\View $this */
 /** @var yii_app\records\MatrixErp $model */
 /** @var yii_app\records\MatrixErpProperty $modelProperty */
-/** @var yii_app\records\MatrixErpMedia $matrixErpMedia */
+/** @var yii_app\records\MatrixErpMedia[] $matrixErpMedia */
 
 $this->title = $model->name;
 $this->params['breadcrumbs'][] = ['label' => 'Matrix Erps', 'url' => ['index']];
@@ -132,26 +132,13 @@ $this->params['breadcrumbs'][] = $this->title;
         </tr>
         </thead>
         <tbody>
-
-    <?php
-    foreach ($matrixErpMedia as $matrixErpMediaRow) {
-
-        $filesList = [];
-        $fileRow = null;
-        $filesRow = ArrayHelper::getValue($matrixErpMediaRow->getRelatedRecords(),'files');
-        if (!empty($filesRow)) {
-            $fileRow = FileService::getFile($filesRow);
-        }
-
-        ?>
-        <tr>
-            <td> <?= $matrixErpMediaRow->name?> </td>
-            <td> <?= $fileRow ?? ''?> </td>
-        </tr>
-        <?php
-    }
-
-    ?>
+            <?php foreach ($matrixErpMedia as $matrixErpMediaRow): ?>
+                <tr>
+                    <td> <?= $matrixErpMediaRow->name ?> </td>
+                    <td> <?= !empty($matrixErpMediaRow->file) ?
+                            (FileService::getFile($matrixErpMediaRow->file, true) ?? '') : '' ?> </td>
+                </tr>
+            <?php endforeach; ?>
         </tbody>
     </table>
 
index 6f697670e867312a6717002dde1a9750210c0ca4..5d29333181245006296a0c13201ae879bcbe935d 100644 (file)
@@ -11,7 +11,6 @@ use yii_app\services\FileService;
 /** @var yii\web\View $this */
 /** @var yii_app\records\MatrixErp $modelMatrixErp */
 /** @var yii_app\records\MatrixErpProperty $modelMatrixErpProperty */
-/** @var yii_app\records\MatrixErpMedia $modelsMatrixErpMedia */
 /** @var yii\widgets\ActiveForm $form */
 
 ?>
@@ -50,7 +49,7 @@ use yii_app\services\FileService;
 
     <div class="form-group">
         <?= $form->field($modelMatrixErpProperty, 'mediaFiles')->widget(MultipleInput::className(), [
-            'min' => 1,
+            'min' => 0,
             'max' => 100,
             'columns' => [
                 [
@@ -104,17 +103,10 @@ use yii_app\services\FileService;
                     'name'  => 'images_row',
                     'type'  => BaseColumn::TYPE_STATIC,
                     'value' => function($data) {
-//                    $images = WriteOffsErp::getImagesList($product->imagesWriteOffsErp);
-                        if (!empty($data)) {
-                            $filesRow = ArrayHelper::getValue($data->getRelatedRecords(),'files');
-                            if (!empty($filesRow)) {
-                                $fileRow = FileService::getFile($filesRow);
-                            }
-                            if (!empty($fileRow)) {
-                                $resultData = $fileRow;
-                            }
+                        /* @var $data \yii_app\records\MatrixErpMedia */
+                        if (!empty($data->file)) {
+                            $resultData = FileService::getFile($data->file);
                         }
-                        $test = 33;
                         return $resultData ?? '';
                     },
                     'headerOptions' => [
@@ -126,17 +118,14 @@ use yii_app\services\FileService;
 
                 [
                     'name'  => 'mediaFile',
-                    'title' => 'Файлы',
+                    'title' => 'Файл',
                     'type'  => 'fileInput',
                     'options' => [
-                                'multiple' => 'false',
+                            'multiple' => 'false',
                             'name'  => 'file_name',
                             'class' => 'file'
-
-
                     ],
 
-
                     'columnOptions' => [
 //                        'style' => 'width: 250px;',
 //                        'class' => 'custom-css-class'