Blame view

backend/components/base/BaseController.php 6.23 KB
54ada04a   Mihail   add base classes ...
1
2
3
4
5
6
7
8
9
  <?php
  /**
   * Created by PhpStorm.
   * User: Cibermag
   * Date: 31.08.2015
   * Time: 9:58
   */
  namespace backend\components\base;
  
4828b892   Mihail   after merge with ...
10
11
12
  use Yii;
  use yii\web\UploadedFile;
  use backend\models\ImageSizerForm;
54ada04a   Mihail   add base classes ...
13
  use yii\web\Controller;
4828b892   Mihail   after merge with ...
14
15
16
  use Imagine\Gd\Imagine;
  use Imagine\Image\Box;
  use yii\imagine\Image;
54ada04a   Mihail   add base classes ...
17
18
19
  
  class BaseController extends Controller {
  
89d4b5ac   Administrator   VItaliy 25.11.2015
20
21
22
23
24
25
26
27
28
      public function isBigger($width,$height,$w,$h)
      {
          if($width>$w){
              return true;
          }else if($height >$h) {
              return true;
          }
          return false;
      }
4828b892   Mihail   after merge with ...
29
30
31
32
33
  
      private function resizeImg($w, $h, $imageAlias,$imageAliasSave){
          $img = Image::getImagine()->open(Yii::getAlias($imageAlias));
  
          $size = $img->getSize();
4828b892   Mihail   after merge with ...
34
  
992d7eaa   Administrator   Importers CRUD
35
36
37
          $width = $size->getWidth();
          $height = $size->getHeight();
  
89d4b5ac   Administrator   VItaliy 25.11.2015
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
          $e_width = $w/$h;
          $e_height = $h/$w;
  
          $e1_width = $width/$height;
          $e1_height = $height/$width;
  
  
          if($this->isBigger($width,$height,$w,$h)){
              if($e_width<$e1_width){
  
                  $new_width = $width*($e_width/$e1_width);
  
                  $y = 0;
                  $x = $width/ 2-($new_width/2);
                  $width = $new_width;
  
              }else {
  
                  $new_height = $height*($e_height/$e1_height);
                  $x = 0;
                  $y = $height/2-($new_height/2);
                  $height = $new_height;
              }
  
  
992d7eaa   Administrator   Importers CRUD
63
          } else {
89d4b5ac   Administrator   VItaliy 25.11.2015
64
65
              $img->save($imageAliasSave, array('flatten' => false));
              return true;
992d7eaa   Administrator   Importers CRUD
66
67
          }
  
89d4b5ac   Administrator   VItaliy 25.11.2015
68
69
  
          Image::crop($imageAlias, $width, $height,[$x,$y])
4c977682   Administrator   Importers CRUD
70
71
              ->save(Yii::getAlias($imageAliasSave), ['quality' =>
                  100]);
992d7eaa   Administrator   Importers CRUD
72
73
  
  
4c977682   Administrator   Importers CRUD
74
75
76
77
          $imagine = new Imagine();
          $imagine->open($imageAliasSave)
              ->resize(new Box($w, $h))
              ->save($imageAliasSave, array('flatten' => false));
4828b892   Mihail   after merge with ...
78
  
4828b892   Mihail   after merge with ...
79
80
  
  
4828b892   Mihail   after merge with ...
81
      }
992d7eaa   Administrator   Importers CRUD
82
  
bc1a3552   Administrator   Importers CRUD
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
      private function deleteImages($old_img){
  
          if(!empty($old_img) && file_exists($_SERVER['DOCUMENT_ROOT'].$old_img)){
  
              $rootDir = explode("/", $old_img);
  
              $row = $_SERVER['DOCUMENT_ROOT'].'/'.$rootDir[1].'/'.$rootDir[2].'/';
  
              $allFiles = scandir($row);
  
              $allFiles = array_slice($allFiles, 2);
  
              foreach($allFiles as $oldFile){
  
                  unlink($row.$oldFile);
  
              }
  
          }
      }
  
      public function actionDeleteImage(){
bc1a3552   Administrator   Importers CRUD
105
  
89d4b5ac   Administrator   VItaliy 25.11.2015
106
107
108
109
110
111
112
113
114
115
116
          $request = Yii::$app->request->post();
  
          if($request){
              if ($request['old_img']) {
                  $this->deleteImages($request['old_img']);
              }
              if(isset($request['action']) && $request['action']=='save'){
                  $object = str_replace('-', '\\',$request['model']);
                  $model = new $object;
                  $model = $model->findOne($request['id']);
                  $model->$request['field'] = $request['new_url'];
ad4b55bc   Administrator   VItaliy 26.11.2015
117
118
119
  //                print_r($model->validate());
  //                print_r($model->getErrors());
  //                die(var_dump($model->save()));
89d4b5ac   Administrator   VItaliy 25.11.2015
120
121
                  $model->save();
              }
bc1a3552   Administrator   Importers CRUD
122
          }
89d4b5ac   Administrator   VItaliy 25.11.2015
123
  
bc1a3552   Administrator   Importers CRUD
124
125
      }
  
4828b892   Mihail   after merge with ...
126
127
128
129
130
  
      public function actionDownloadPhoto()
      {
  
          $model = new ImageSizerForm();
ea4ecf3d   Mihail   console csv parsing
131
  
89d4b5ac   Administrator   VItaliy 25.11.2015
132
133
          $request = Yii::$app->request->post();
          if ($request) {
bc1a3552   Administrator   Importers CRUD
134
  
4828b892   Mihail   after merge with ...
135
136
137
              $model->file = UploadedFile::getInstance($model, 'file');
  
              $md5_file = md5_file($model->file->tempName);
4c977682   Administrator   Importers CRUD
138
  
4828b892   Mihail   after merge with ...
139
              $imgDir = Yii::getAlias('@storage/'.$md5_file.'/');
4c977682   Administrator   Importers CRUD
140
141
  
              $imageOrigAlias = Yii::getAlias($imgDir.'original'.'.'.$model->file->extension);
ea4ecf3d   Mihail   console csv parsing
142
  
4828b892   Mihail   after merge with ...
143
144
145
              if(!is_dir($imgDir)) {
                  mkdir($imgDir, 0755, true);
              }
4c977682   Administrator   Importers CRUD
146
147
148
  
              $model->file->saveAs($imageOrigAlias);
  
89d4b5ac   Administrator   VItaliy 25.11.2015
149
              if($request['width'] && $request['height']){
4c977682   Administrator   Importers CRUD
150
  
89d4b5ac   Administrator   VItaliy 25.11.2015
151
                  $imageAlias = Yii::getAlias($imgDir.$request['width'].'x'.$request['height'].'.'.$model->file->extension);
4c977682   Administrator   Importers CRUD
152
  
89d4b5ac   Administrator   VItaliy 25.11.2015
153
                  $imageLink = '/storage/'.$md5_file.'/'.$request['width'].'x'.$request['height'].'.'.$model->file->extension;
4c977682   Administrator   Importers CRUD
154
  
89d4b5ac   Administrator   VItaliy 25.11.2015
155
                  $this->resizeImg($request['width'], $request['height'], $imageOrigAlias,$imageAlias);
4c977682   Administrator   Importers CRUD
156
157
158
  
              } else {
  
bc1a3552   Administrator   Importers CRUD
159
                  $imageLink = '/storage/'.$md5_file.'/'.'original'.'.'.$model->file->extension;
4c977682   Administrator   Importers CRUD
160
161
162
  
              }
  
4c977682   Administrator   Importers CRUD
163
  
bc1a3552   Administrator   Importers CRUD
164
              if($model->multi){
4c977682   Administrator   Importers CRUD
165
166
167
168
169
                  $view = $this->renderPartial('@app/components/views/_gallery_item', [
                      'item' => ['image'=>$imageLink],
                  ]);
  
                  return json_encode(['link'=>$imageLink, 'view' =>$view]);
bc1a3552   Administrator   Importers CRUD
170
171
172
173
  
  
              } else {
                  return json_encode(['link'=>$imageLink]);
4c977682   Administrator   Importers CRUD
174
175
              }
  
4828b892   Mihail   after merge with ...
176
177
178
  
          }
      }
54ada04a   Mihail   add base classes ...
179
  
ad4b55bc   Administrator   VItaliy 26.11.2015
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
  
      public function getex($filename) {
          return end(explode(".", $filename));
      }
  
  
      public function actionImagesUpload(){
          if($_FILES['upload'])
          {
              if (($_FILES['upload'] == "none") OR (empty($_FILES['upload']['name'])) )
              {
                  $message = "Вы не выбрали файл";
              }
              else if ($_FILES['upload']["size"] == 0 OR $_FILES['upload']["size"] > 2050000)
              {
                  $message = "Размер файла не соответствует нормам";
              }
              else if (($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/png") AND ($_FILES['upload']['type'] != 'image/gif'))
              {
                  $message = "Допускается загрузка только картинок JPG и PNG.";
              }
              else if (!is_uploaded_file($_FILES['upload']["tmp_name"]))
              {
                  $message = "Что-то пошло не так. Попытайтесь загрузить файл ещё раз.";
              }
              else{
                  $name =rand(1, 1000).'-'.md5($_FILES['upload']['name']).'.'.$this->getex($_FILES['upload']['name']);
                  move_uploaded_file($_FILES['upload']['tmp_name'], "../../storage/images/".$name);
                  $full_path = '/storage/images/'.$name;
                  $message = "Файл ".$_FILES['upload']['name']." загружен";
                  $size=@getimagesize('images/'.$name);
  
              }
              $callback = $_REQUEST['CKEditorFuncNum'];
              echo '<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction("'.$callback.'", "'.$full_path.'", "'.$message.'" );</script>';
          }
      }
  
54ada04a   Mihail   add base classes ...
218
  }