Commit 0b491165a12251d4574d108a07cc586350c6da37

Authored by Administrator
1 parent 234ba691

Importers CRUD

backend/components/ImageSizer.php
@@ -12,8 +12,8 @@ use yii\base\Widget; @@ -12,8 +12,8 @@ use yii\base\Widget;
12 12
13 class ImageSizer extends Widget 13 class ImageSizer extends Widget
14 { 14 {
15 - public $height;  
16 - public $width; 15 + public $height = 0;
  16 + public $width = 0;
17 public $field; 17 public $field;
18 public $file; 18 public $file;
19 public $model; 19 public $model;
@@ -43,8 +43,17 @@ class ImageSizer extends Widget @@ -43,8 +43,17 @@ class ImageSizer extends Widget
43 43
44 } 44 }
45 45
46 - public function getGalley(){  
47 - return $this->gallery; 46 + public function getGallery(){
  47 + if($this->gallery){
  48 + $array = explode(",", $this->gallery);
  49 + if(count($array) > 1){
  50 + array_pop($array);
  51 + }
  52 + return $array;
  53 + } else {
  54 + return array();
  55 + }
  56 +
48 } 57 }
49 58
50 } 59 }
51 \ No newline at end of file 60 \ No newline at end of file
backend/components/base/BaseController.php
@@ -17,10 +17,7 @@ use yii\imagine\Image; @@ -17,10 +17,7 @@ use yii\imagine\Image;
17 17
18 class BaseController extends Controller { 18 class BaseController extends Controller {
19 19
20 - public function beforeAction($action) {  
21 - $this->enableCsrfValidation = false;  
22 - return parent::beforeAction($action);  
23 - } 20 +
24 21
25 private function resizeImg($w, $h, $imageAlias,$imageAliasSave){ 22 private function resizeImg($w, $h, $imageAlias,$imageAliasSave){
26 $img = Image::getImagine()->open(Yii::getAlias($imageAlias)); 23 $img = Image::getImagine()->open(Yii::getAlias($imageAlias));
@@ -56,6 +53,35 @@ class BaseController extends Controller { @@ -56,6 +53,35 @@ class BaseController extends Controller {
56 53
57 } 54 }
58 55
  56 + private function deleteImages($old_img){
  57 +
  58 + if(!empty($old_img) && file_exists($_SERVER['DOCUMENT_ROOT'].$old_img)){
  59 +
  60 + $rootDir = explode("/", $old_img);
  61 +
  62 + $row = $_SERVER['DOCUMENT_ROOT'].'/'.$rootDir[1].'/'.$rootDir[2].'/';
  63 +
  64 + $allFiles = scandir($row);
  65 +
  66 + $allFiles = array_slice($allFiles, 2);
  67 +
  68 + foreach($allFiles as $oldFile){
  69 +
  70 + unlink($row.$oldFile);
  71 +
  72 + }
  73 +
  74 + }
  75 + }
  76 +
  77 + public function actionDeleteImage(){
  78 + $old_img = Yii::$app->request->post('old_img');
  79 +
  80 + if ($old_img) {
  81 + $this->deleteImages($old_img);
  82 + }
  83 + }
  84 +
59 85
60 public function actionDownloadPhoto() 86 public function actionDownloadPhoto()
61 { 87 {
@@ -64,6 +90,8 @@ class BaseController extends Controller { @@ -64,6 +90,8 @@ class BaseController extends Controller {
64 90
65 if ($model->load(Yii::$app->request->post())) { 91 if ($model->load(Yii::$app->request->post())) {
66 92
  93 + $this->deleteImages($model->old_img);
  94 +
67 $model->file = UploadedFile::getInstance($model, 'file'); 95 $model->file = UploadedFile::getInstance($model, 'file');
68 96
69 $md5_file = md5_file($model->file->tempName); 97 $md5_file = md5_file($model->file->tempName);
@@ -88,20 +116,21 @@ class BaseController extends Controller { @@ -88,20 +116,21 @@ class BaseController extends Controller {
88 116
89 } else { 117 } else {
90 118
91 - $imageLink = $imageOrigAlias; 119 + $imageLink = '/storage/'.$md5_file.'/'.'original'.'.'.$model->file->extension;
92 120
93 } 121 }
94 122
95 - if($model->multi){  
96 -  
97 - return json_encode(['link'=>$imageLink]);  
98 123
99 - } else { 124 + if($model->multi){
100 $view = $this->renderPartial('@app/components/views/_gallery_item', [ 125 $view = $this->renderPartial('@app/components/views/_gallery_item', [
101 'item' => ['image'=>$imageLink], 126 'item' => ['image'=>$imageLink],
102 ]); 127 ]);
103 128
104 return json_encode(['link'=>$imageLink, 'view' =>$view]); 129 return json_encode(['link'=>$imageLink, 'view' =>$view]);
  130 +
  131 +
  132 + } else {
  133 + return json_encode(['link'=>$imageLink]);
105 } 134 }
106 135
107 136
backend/components/views/image_sizer.php
@@ -41,12 +41,11 @@ $this->registerJsFile('@web/js/vendor/bower/jquery-file-upload/js/jquery.fileupl @@ -41,12 +41,11 @@ $this->registerJsFile('@web/js/vendor/bower/jquery-file-upload/js/jquery.fileupl
41 <?= $form->field( new \backend\models\ImageSizerForm(), 'file')->fileInput(['id'=>$field, 'data-url'=>"/admin/site/download-photo" ]); ?> 41 <?= $form->field( new \backend\models\ImageSizerForm(), 'file')->fileInput(['id'=>$field, 'data-url'=>"/admin/site/download-photo" ]); ?>
42 42
43 <?= $form->field($model,$field)->hiddenInput(['id' => "{$field}_picture_link"]) ?> 43 <?= $form->field($model,$field)->hiddenInput(['id' => "{$field}_picture_link"]) ?>
44 -<?= $form->field(new \backend\models\ImageSizerForm(),'height')->hiddenInput(['value' => $height])->label(false) ?>  
45 -<?= $form->field(new \backend\models\ImageSizerForm(), 'width')->hiddenInput(['value' => $width])->label(false) ?>  
46 -  
47 - 44 + <input type="hidden" name="ImageSizerForm[width]" value="<?=$width?>"/>
  45 + <input type="hidden" name="ImageSizerForm[height]" value="<?=$height?>"/>
  46 + <input type="hidden" name="ImageSizerForm[old_img]" value="<?=$model->$field?>"/>
48 <div id="<?= $field?>_img_block"> 47 <div id="<?= $field?>_img_block">
49 - <?= $model->$field ? Html::img('/'.$model->$field): '' ?> 48 + <?= $model->$field ? Html::img($model->$field): '' ?>
50 </div> 49 </div>
51 50
52 <script> 51 <script>
@@ -70,13 +69,14 @@ $this-&gt;registerJsFile(&#39;@web/js/vendor/bower/jquery-file-upload/js/jquery.fileupl @@ -70,13 +69,14 @@ $this-&gt;registerJsFile(&#39;@web/js/vendor/bower/jquery-file-upload/js/jquery.fileupl
70 <?= $form->field( new \backend\models\ImageSizerForm(), 'file')->fileInput(['id'=>$field, 'data-url'=>"/admin/site/download-photo", 'multiple'=> 'multiple']); ?> 69 <?= $form->field( new \backend\models\ImageSizerForm(), 'file')->fileInput(['id'=>$field, 'data-url'=>"/admin/site/download-photo", 'multiple'=> 'multiple']); ?>
71 70
72 <?= $form->field($model,$field)->hiddenInput(['id' => "{$field}_picture_link"]) ?> 71 <?= $form->field($model,$field)->hiddenInput(['id' => "{$field}_picture_link"]) ?>
73 - <?= $form->field(new \backend\models\ImageSizerForm(),'height')->hiddenInput(['value' => $height])->label(false) ?>  
74 - <?= $form->field(new \backend\models\ImageSizerForm(), 'width')->hiddenInput(['value' => $width])->label(false) ?>  
75 - <?= $form->field(new \backend\models\ImageSizerForm(), 'multi')->hiddenInput(['value' => $multi])->label(false) ?> 72 + <input type="hidden" name="ImageSizerForm[width]" value="<?=$width?>"/>
  73 + <input type="hidden" name="ImageSizerForm[height]" value="<?=$height?>"/>
  74 + <input type="hidden" name="ImageSizerForm[multi]" value="<?=$multi?>"/>
  75 +
76 <div id="<?= $field?>_img_block"> 76 <div id="<?= $field?>_img_block">
77 <?php 77 <?php
78 78
79 - foreach($this->context->getGalley() as $image){ 79 + foreach($this->context->getGallery() as $image){
80 echo $this->render('_gallery_item', [ 'item' => ['image'=>$image]]); 80 echo $this->render('_gallery_item', [ 'item' => ['image'=>$image]]);
81 } 81 }
82 ?> 82 ?>
@@ -101,6 +101,9 @@ $this-&gt;registerJsFile(&#39;@web/js/vendor/bower/jquery-file-upload/js/jquery.fileupl @@ -101,6 +101,9 @@ $this-&gt;registerJsFile(&#39;@web/js/vendor/bower/jquery-file-upload/js/jquery.fileupl
101 var gallery = $("#<?= $field?>_picture_link"); 101 var gallery = $("#<?= $field?>_picture_link");
102 var urls = gallery.val(); 102 var urls = gallery.val();
103 gallery.val(urls.replace(url+',', "")); 103 gallery.val(urls.replace(url+',', ""));
  104 + $.post( "/admin/site/delete-image",{old_img: url}, function( data ) {
  105 + $( ".result" ).html( data );
  106 + });
104 }) 107 })
105 108
106 }) 109 })
backend/controllers/SiteController.php
@@ -11,6 +11,10 @@ use yii\filters\VerbFilter; @@ -11,6 +11,10 @@ use yii\filters\VerbFilter;
11 */ 11 */
12 class SiteController extends BaseController 12 class SiteController extends BaseController
13 { 13 {
  14 + public function beforeAction($action) {
  15 + $this->enableCsrfValidation = false;
  16 + return parent::beforeAction($action);
  17 + }
14 18
15 public $layout = '/column'; 19 public $layout = '/column';
16 /** 20 /**
@@ -23,7 +27,7 @@ class SiteController extends BaseController @@ -23,7 +27,7 @@ class SiteController extends BaseController
23 'class' => AccessControl::className(), 27 'class' => AccessControl::className(),
24 'rules' => [ 28 'rules' => [
25 [ 29 [
26 - 'actions' => ['login', 'error', 'download-photo' ], 30 + 'actions' => ['login', 'error', 'download-photo','delete-image' ],
27 'allow' => true, 31 'allow' => true,
28 ], 32 ],
29 [ 33 [
backend/models/ImageSizerForm.php
@@ -19,6 +19,7 @@ class ImageSizerForm extends Model @@ -19,6 +19,7 @@ class ImageSizerForm extends Model
19 public $model; 19 public $model;
20 public $form; 20 public $form;
21 public $multi; 21 public $multi;
  22 + public $old_img;
22 23
23 /** 24 /**
24 * @return array the validation rules. 25 * @return array the validation rules.
@@ -27,7 +28,8 @@ class ImageSizerForm extends Model @@ -27,7 +28,8 @@ class ImageSizerForm extends Model
27 { 28 {
28 return [ 29 return [
29 [['width', 'height'], 'integer'], 30 [['width', 'height'], 'integer'],
30 - [['field', 'model', 'form'], 'string', 'max' => 255], 31 + [['field', 'multi','old_img'], 'string', 'max' => 255],
  32 + [['model', 'form',], 'string'],
31 [['file'], 'file'], 33 [['file'], 'file'],
32 ]; 34 ];
33 } 35 }
backend/views/layouts/column.php
@@ -295,6 +295,14 @@ $this-&gt;beginContent(&#39;@app/views/layouts/main.php&#39;); @@ -295,6 +295,14 @@ $this-&gt;beginContent(&#39;@app/views/layouts/main.php&#39;);
295 ['label' => 'Администраторы', 'url' => ['user/index']], 295 ['label' => 'Администраторы', 'url' => ['user/index']],
296 ], 296 ],
297 ], 297 ],
  298 + ['label' => 'Ценообразование', 'url' => ['#'], 'items' => [
  299 + ['label' => 'Курс', 'url' => ['accounts/index']],
  300 + ['label' => 'Типы цен', 'url' => ['importers/index']],
  301 + ['label' => 'Коэфициенты на поставщиков', 'url' => ['user/index']],
  302 + ['label' => 'Коэфициенты на импорт поставщиков', 'url' => ['user/index']],
  303 + ['label' => 'Коэфициенты на группы RG', 'url' => ['user/index']],
  304 + ],
  305 + ],
298 ], 306 ],
299 'submenuTemplate' => "\n<ul class='treeview-menu'>\n{items}\n</ul>\n", 307 'submenuTemplate' => "\n<ul class='treeview-menu'>\n{items}\n</ul>\n",
300 ]); 308 ]);
backend/views/user/_form.php
@@ -33,7 +33,7 @@ use yii\helpers\ArrayHelper; @@ -33,7 +33,7 @@ use yii\helpers\ArrayHelper;
33 ], 'id', 'name')) ?> 33 ], 'id', 'name')) ?>
34 34
35 35
36 - <?= \backend\components\ImageSizer::widget(['form'=>$form, 'model'=> $model, 'field'=>'photo','width'=>200,'height'=>200,'multi'=>true, 'gallery' => []]); ?> 36 + <?= \backend\components\ImageSizer::widget(['form'=>$form, 'model'=> $model, 'field'=>'photo','width'=>200,'height'=>200,'multi'=>false, 'gallery' =>$model->photo]); ?>
37 37
38 <?= $form->field($model, 'contacts')->textInput(['maxlength' => true]) ?> 38 <?= $form->field($model, 'contacts')->textInput(['maxlength' => true]) ?>
39 39
backend/web/css/AdminLTE.css
@@ -67,7 +67,7 @@ body { @@ -67,7 +67,7 @@ body {
67 -moz-transition: -moz-transform 0.3s ease-in-out, margin 0.3s ease-in-out; 67 -moz-transition: -moz-transform 0.3s ease-in-out, margin 0.3s ease-in-out;
68 -o-transition: -o-transform 0.3s ease-in-out, margin 0.3s ease-in-out; 68 -o-transition: -o-transform 0.3s ease-in-out, margin 0.3s ease-in-out;
69 transition: transform 0.3s ease-in-out, margin 0.3s ease-in-out; 69 transition: transform 0.3s ease-in-out, margin 0.3s ease-in-out;
70 - margin-left: 230px; 70 + margin-left: 280px;
71 z-index: 820; 71 z-index: 820;
72 } 72 }
73 .layout-top-nav .content-wrapper, 73 .layout-top-nav .content-wrapper,
@@ -419,7 +419,7 @@ a:focus { @@ -419,7 +419,7 @@ a:focus {
419 left: 0; 419 left: 0;
420 padding-top: 50px; 420 padding-top: 50px;
421 min-height: 100%; 421 min-height: 100%;
422 - width: 230px; 422 + width: 280px;
423 z-index: 810; 423 z-index: 810;
424 -webkit-transition: -webkit-transform 0.3s ease-in-out, width 0.3s ease-in-out; 424 -webkit-transition: -webkit-transform 0.3s ease-in-out, width 0.3s ease-in-out;
425 -moz-transition: -moz-transform 0.3s ease-in-out, width 0.3s ease-in-out; 425 -moz-transition: -moz-transform 0.3s ease-in-out, width 0.3s ease-in-out;