Blame view

backend/components/base/BaseController.php 6.26 KB
693c46cb   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;
  
f7ab7644   Mihail   after merge with ...
10
11
12
  use Yii;
  use yii\web\UploadedFile;
  use backend\models\ImageSizerForm;
693c46cb   Mihail   add base classes ...
13
  use yii\web\Controller;
f7ab7644   Mihail   after merge with ...
14
15
16
  use Imagine\Gd\Imagine;
  use Imagine\Image\Box;
  use yii\imagine\Image;
693c46cb   Mihail   add base classes ...
17
18
19
  
  class BaseController extends Controller {
  
c6152cd6   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;
      }
0b491165   Administrator   Importers CRUD
29
  
f7ab7644   Mihail   after merge with ...
30
31
32
33
34
  
      private function resizeImg($w, $h, $imageAlias,$imageAliasSave){
          $img = Image::getImagine()->open(Yii::getAlias($imageAlias));
  
          $size = $img->getSize();
f7ab7644   Mihail   after merge with ...
35
  
3a9830b4   Administrator   Importers CRUD
36
37
38
          $width = $size->getWidth();
          $height = $size->getHeight();
  
c6152cd6   Administrator   VItaliy 25.11.2015
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
          $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;
              }
  
  
3a9830b4   Administrator   Importers CRUD
64
          } else {
c6152cd6   Administrator   VItaliy 25.11.2015
65
66
              $img->save($imageAliasSave, array('flatten' => false));
              return true;
3a9830b4   Administrator   Importers CRUD
67
68
          }
  
c6152cd6   Administrator   VItaliy 25.11.2015
69
70
  
          Image::crop($imageAlias, $width, $height,[$x,$y])
4dbe8d44   Administrator   Importers CRUD
71
72
              ->save(Yii::getAlias($imageAliasSave), ['quality' =>
                  100]);
3a9830b4   Administrator   Importers CRUD
73
74
  
  
4dbe8d44   Administrator   Importers CRUD
75
76
77
78
          $imagine = new Imagine();
          $imagine->open($imageAliasSave)
              ->resize(new Box($w, $h))
              ->save($imageAliasSave, array('flatten' => false));
f7ab7644   Mihail   after merge with ...
79
  
f7ab7644   Mihail   after merge with ...
80
81
  
  
f7ab7644   Mihail   after merge with ...
82
      }
3a9830b4   Administrator   Importers CRUD
83
  
0b491165   Administrator   Importers CRUD
84
85
86
87
      private function deleteImages($old_img){
  
          if(!empty($old_img) && file_exists($_SERVER['DOCUMENT_ROOT'].$old_img)){
  
e9398092   Administrator   VItaliy 27.11.2015
88
89
90
91
92
93
94
95
96
97
98
99
100
  //            $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);
  //
  //            }
0b491165   Administrator   Importers CRUD
101
102
103
104
105
  
          }
      }
  
      public function actionDeleteImage(){
0b491165   Administrator   Importers CRUD
106
  
c6152cd6   Administrator   VItaliy 25.11.2015
107
108
109
110
111
112
113
114
115
116
117
          $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'];
b77421d2   Administrator   VItaliy 26.11.2015
118
119
120
  //                print_r($model->validate());
  //                print_r($model->getErrors());
  //                die(var_dump($model->save()));
c6152cd6   Administrator   VItaliy 25.11.2015
121
122
                  $model->save();
              }
0b491165   Administrator   Importers CRUD
123
          }
c6152cd6   Administrator   VItaliy 25.11.2015
124
  
0b491165   Administrator   Importers CRUD
125
126
      }
  
f7ab7644   Mihail   after merge with ...
127
128
129
130
131
  
      public function actionDownloadPhoto()
      {
  
          $model = new ImageSizerForm();
df629228   Mihail   console csv parsing
132
  
c6152cd6   Administrator   VItaliy 25.11.2015
133
134
          $request = Yii::$app->request->post();
          if ($request) {
0b491165   Administrator   Importers CRUD
135
  
f7ab7644   Mihail   after merge with ...
136
137
138
              $model->file = UploadedFile::getInstance($model, 'file');
  
              $md5_file = md5_file($model->file->tempName);
4dbe8d44   Administrator   Importers CRUD
139
  
f7ab7644   Mihail   after merge with ...
140
              $imgDir = Yii::getAlias('@storage/'.$md5_file.'/');
4dbe8d44   Administrator   Importers CRUD
141
142
  
              $imageOrigAlias = Yii::getAlias($imgDir.'original'.'.'.$model->file->extension);
df629228   Mihail   console csv parsing
143
  
f7ab7644   Mihail   after merge with ...
144
145
146
              if(!is_dir($imgDir)) {
                  mkdir($imgDir, 0755, true);
              }
4dbe8d44   Administrator   Importers CRUD
147
148
149
  
              $model->file->saveAs($imageOrigAlias);
  
c6152cd6   Administrator   VItaliy 25.11.2015
150
              if($request['width'] && $request['height']){
4dbe8d44   Administrator   Importers CRUD
151
  
c6152cd6   Administrator   VItaliy 25.11.2015
152
                  $imageAlias = Yii::getAlias($imgDir.$request['width'].'x'.$request['height'].'.'.$model->file->extension);
4dbe8d44   Administrator   Importers CRUD
153
  
c6152cd6   Administrator   VItaliy 25.11.2015
154
                  $imageLink = '/storage/'.$md5_file.'/'.$request['width'].'x'.$request['height'].'.'.$model->file->extension;
4dbe8d44   Administrator   Importers CRUD
155
  
c6152cd6   Administrator   VItaliy 25.11.2015
156
                  $this->resizeImg($request['width'], $request['height'], $imageOrigAlias,$imageAlias);
4dbe8d44   Administrator   Importers CRUD
157
158
159
  
              } else {
  
0b491165   Administrator   Importers CRUD
160
                  $imageLink = '/storage/'.$md5_file.'/'.'original'.'.'.$model->file->extension;
4dbe8d44   Administrator   Importers CRUD
161
162
163
  
              }
  
4dbe8d44   Administrator   Importers CRUD
164
  
0b491165   Administrator   Importers CRUD
165
              if($model->multi){
4dbe8d44   Administrator   Importers CRUD
166
167
168
169
170
                  $view = $this->renderPartial('@app/components/views/_gallery_item', [
                      'item' => ['image'=>$imageLink],
                  ]);
  
                  return json_encode(['link'=>$imageLink, 'view' =>$view]);
0b491165   Administrator   Importers CRUD
171
172
173
174
  
  
              } else {
                  return json_encode(['link'=>$imageLink]);
4dbe8d44   Administrator   Importers CRUD
175
176
              }
  
f7ab7644   Mihail   after merge with ...
177
178
179
  
          }
      }
693c46cb   Mihail   add base classes ...
180
  
b77421d2   Administrator   VItaliy 26.11.2015
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
218
  
      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>';
          }
      }
  
78641da2   Mihail   rewrite parser wr...
219
  
693c46cb   Mihail   add base classes ...
220
  }