Commit 06d508f34e1a32f4c97f1d3856f6878c0b9acb96
1 parent
71f66dca
add Vitaliy's widgets
Showing
105 changed files
with
629 additions
and
16 deletions
Show diff stats
.gitignore
backend/assets/AppAsset.php
| @@ -17,6 +17,7 @@ class AppAsset extends AssetBundle | @@ -17,6 +17,7 @@ class AppAsset extends AssetBundle | ||
| 17 | { | 17 | { |
| 18 | public $basePath = '@webroot'; | 18 | public $basePath = '@webroot'; |
| 19 | public $baseUrl = '@web'; | 19 | public $baseUrl = '@web'; |
| 20 | + public $jsOptions = ['position' => \yii\web\View::POS_HEAD]; | ||
| 20 | public $css = [ | 21 | public $css = [ |
| 21 | 'css/site.css', | 22 | 'css/site.css', |
| 22 | 'css/flags32.css' | 23 | 'css/flags32.css' |
| @@ -25,8 +26,9 @@ class AppAsset extends AssetBundle | @@ -25,8 +26,9 @@ class AppAsset extends AssetBundle | ||
| 25 | 'js/option.js' | 26 | 'js/option.js' |
| 26 | ]; | 27 | ]; |
| 27 | public $depends = [ | 28 | public $depends = [ |
| 29 | + 'yii\web\JqueryAsset', | ||
| 28 | 'yii\web\YiiAsset', | 30 | 'yii\web\YiiAsset', |
| 29 | 'yii\bootstrap\BootstrapAsset', | 31 | 'yii\bootstrap\BootstrapAsset', |
| 30 | - 'yii\web\JqueryAsset' | 32 | + 'backend\assets\FileUploadAsset' |
| 31 | ]; | 33 | ]; |
| 32 | } | 34 | } |
| 1 | +<?php | ||
| 2 | +/** | ||
| 3 | + * @link http://www.yiiframework.com/ | ||
| 4 | + * @copyright Copyright (c) 2008 Yii Software LLC | ||
| 5 | + * @license http://www.yiiframework.com/license/ | ||
| 6 | + */ | ||
| 7 | + | ||
| 8 | + | ||
| 9 | +namespace backend\assets; | ||
| 10 | + | ||
| 11 | +use yii\web\AssetBundle; | ||
| 12 | + | ||
| 13 | +/** | ||
| 14 | + * Asset bundle for the Twitter bootstrap javascript files. | ||
| 15 | + * | ||
| 16 | + * @author Qiang Xue <qiang.xue@gmail.com> | ||
| 17 | + * @since 2.0 | ||
| 18 | + */ | ||
| 19 | +class FileUploadAsset extends AssetBundle | ||
| 20 | +{ | ||
| 21 | + public $sourcePath = '@bower/blueimp-file-upload/'; | ||
| 22 | + public $css = [ | ||
| 23 | + 'css/jquery.fileupload.css' | ||
| 24 | + ]; | ||
| 25 | + public $js = [ | ||
| 26 | + 'js/vendor/jquery.ui.widget.js', | ||
| 27 | + 'js/jquery.iframe-transport.js', | ||
| 28 | + 'js/jquery.fileupload.js' | ||
| 29 | + ]; | ||
| 30 | +} |
| 1 | +<?php | ||
| 2 | +/** | ||
| 3 | + * Created by PhpStorm. | ||
| 4 | + * User: Cibermag | ||
| 5 | + * Date: 31.08.2015 | ||
| 6 | + * Time: 9:58 | ||
| 7 | + */ | ||
| 8 | +namespace backend\controllers; | ||
| 9 | +use Yii; | ||
| 10 | +use yii\web\UploadedFile; | ||
| 11 | +use common\models\ImageSizerForm; | ||
| 12 | +use yii\web\Controller; | ||
| 13 | +use Imagine\Gd\Imagine; | ||
| 14 | +use Imagine\Image\Box; | ||
| 15 | +use yii\imagine\Image; | ||
| 16 | + | ||
| 17 | +class FileController extends Controller { | ||
| 18 | + | ||
| 19 | + public function isBigger($width,$height,$w,$h) | ||
| 20 | + { | ||
| 21 | + if($width>$w){ | ||
| 22 | + return true; | ||
| 23 | + }else if($height >$h) { | ||
| 24 | + return true; | ||
| 25 | + } | ||
| 26 | + return false; | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + public function actionIndex(){ | ||
| 30 | + die('hello'); | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + private function resizeImg($w, $h, $imageAlias,$imageAliasSave){ | ||
| 34 | + $img = Image::getImagine()->open(Yii::getAlias($imageAlias)); | ||
| 35 | + | ||
| 36 | + $size = $img->getSize(); | ||
| 37 | + | ||
| 38 | + $width = $size->getWidth(); | ||
| 39 | + $height = $size->getHeight(); | ||
| 40 | + | ||
| 41 | + $e_width = $w/$h; | ||
| 42 | + $e_height = $h/$w; | ||
| 43 | + | ||
| 44 | + $e1_width = $width/$height; | ||
| 45 | + $e1_height = $height/$width; | ||
| 46 | + | ||
| 47 | + | ||
| 48 | + if($this->isBigger($width,$height,$w,$h)){ | ||
| 49 | + if($e_width<$e1_width){ | ||
| 50 | + | ||
| 51 | + $new_width = $width*($e_width/$e1_width); | ||
| 52 | + | ||
| 53 | + $y = 0; | ||
| 54 | + $x = $width/ 2-($new_width/2); | ||
| 55 | + $width = $new_width; | ||
| 56 | + | ||
| 57 | + }else { | ||
| 58 | + | ||
| 59 | + $new_height = $height*($e_height/$e1_height); | ||
| 60 | + $x = 0; | ||
| 61 | + $y = $height/2-($new_height/2); | ||
| 62 | + $height = $new_height; | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + | ||
| 66 | + } else { | ||
| 67 | + $img->save($imageAliasSave, array('flatten' => false)); | ||
| 68 | + return true; | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | + | ||
| 72 | + Image::crop($imageAlias, $width, $height,[$x,$y]) | ||
| 73 | + ->save(Yii::getAlias($imageAliasSave), ['quality' => | ||
| 74 | + 100]); | ||
| 75 | + | ||
| 76 | + | ||
| 77 | + $imagine = new Imagine(); | ||
| 78 | + $imagine->open($imageAliasSave) | ||
| 79 | + ->resize(new Box($w, $h)) | ||
| 80 | + ->save($imageAliasSave, array('flatten' => false)); | ||
| 81 | + | ||
| 82 | + | ||
| 83 | + | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | + private function deleteImages($old_img){ | ||
| 87 | + | ||
| 88 | + if(!empty($old_img) && file_exists($_SERVER['DOCUMENT_ROOT'].$old_img)){ | ||
| 89 | + | ||
| 90 | +// $rootDir = explode("/", $old_img); | ||
| 91 | +// | ||
| 92 | +// $row = $_SERVER['DOCUMENT_ROOT'].'/'.$rootDir[1].'/'.$rootDir[2].'/'; | ||
| 93 | +// | ||
| 94 | +// $allFiles = scandir($row); | ||
| 95 | +// | ||
| 96 | +// $allFiles = array_slice($allFiles, 2); | ||
| 97 | +// | ||
| 98 | +// foreach($allFiles as $oldFile){ | ||
| 99 | +// | ||
| 100 | +// unlink($row.$oldFile); | ||
| 101 | +// | ||
| 102 | +// } | ||
| 103 | + | ||
| 104 | + } | ||
| 105 | + } | ||
| 106 | + | ||
| 107 | + public function actionDeleteImage(){ | ||
| 108 | + | ||
| 109 | + $request = Yii::$app->request->post(); | ||
| 110 | + | ||
| 111 | + if($request){ | ||
| 112 | + if ($request['old_img']) { | ||
| 113 | + $this->deleteImages($request['old_img']); | ||
| 114 | + } | ||
| 115 | + if(isset($request['action']) && $request['action']=='save'){ | ||
| 116 | + $object = str_replace('-', '\\',$request['model']); | ||
| 117 | + $model = new $object; | ||
| 118 | + $model = $model->findOne($request['id']); | ||
| 119 | + $model->$request['field'] = $request['new_url']; | ||
| 120 | +// print_r($model->validate()); | ||
| 121 | +// print_r($model->getErrors()); | ||
| 122 | +// die(var_dump($model->save())); | ||
| 123 | + $model->save(); | ||
| 124 | + } | ||
| 125 | + } | ||
| 126 | + | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + | ||
| 130 | + public function actionDownloadPhoto() | ||
| 131 | + { | ||
| 132 | + | ||
| 133 | + $model = new ImageSizerForm(); | ||
| 134 | + | ||
| 135 | + $request = Yii::$app->request->post(); | ||
| 136 | + if ($request) { | ||
| 137 | + | ||
| 138 | + $model->file = UploadedFile::getInstance($model, 'file'); | ||
| 139 | + | ||
| 140 | + $md5_file = md5_file($model->file->tempName); | ||
| 141 | + | ||
| 142 | + $imgDir = Yii::getAlias('@storage/'.$md5_file.'/'); | ||
| 143 | + | ||
| 144 | + $imageOrigAlias = Yii::getAlias($imgDir.'original'.'.'.$model->file->extension); | ||
| 145 | + | ||
| 146 | + if(!is_dir($imgDir)) { | ||
| 147 | + mkdir($imgDir, 0755, true); | ||
| 148 | + } | ||
| 149 | + | ||
| 150 | + $model->file->saveAs($imageOrigAlias); | ||
| 151 | + | ||
| 152 | + if($request['width'] && $request['height']){ | ||
| 153 | + | ||
| 154 | + $imageAlias = Yii::getAlias($imgDir.$request['width'].'x'.$request['height'].'.'.$model->file->extension); | ||
| 155 | + | ||
| 156 | + $imageLink = '/storage/'.$md5_file.'/'.$request['width'].'x'.$request['height'].'.'.$model->file->extension; | ||
| 157 | + | ||
| 158 | + $this->resizeImg($request['width'], $request['height'], $imageOrigAlias,$imageAlias); | ||
| 159 | + | ||
| 160 | + } else { | ||
| 161 | + | ||
| 162 | + $imageLink = '/storage/'.$md5_file.'/'.'original'.'.'.$model->file->extension; | ||
| 163 | + | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + | ||
| 167 | + if($model->multi){ | ||
| 168 | + $view = $this->renderPartial('@app/components/views/_gallery_item', [ | ||
| 169 | + 'item' => ['image'=>$imageLink], | ||
| 170 | + ]); | ||
| 171 | + | ||
| 172 | + return json_encode(['link'=>$imageLink, 'view' =>$view]); | ||
| 173 | + | ||
| 174 | + | ||
| 175 | + } else { | ||
| 176 | + return json_encode(['link'=>$imageLink]); | ||
| 177 | + } | ||
| 178 | + | ||
| 179 | + | ||
| 180 | + } | ||
| 181 | + } | ||
| 182 | + | ||
| 183 | + | ||
| 184 | + public function getex($filename) { | ||
| 185 | + return end(explode(".", $filename)); | ||
| 186 | + } | ||
| 187 | + | ||
| 188 | + | ||
| 189 | + public function actionImagesUpload(){ | ||
| 190 | + if($_FILES['upload']) | ||
| 191 | + { | ||
| 192 | + if (($_FILES['upload'] == "none") OR (empty($_FILES['upload']['name'])) ) | ||
| 193 | + { | ||
| 194 | + $message = "Вы не выбрали файл"; | ||
| 195 | + } | ||
| 196 | + else if ($_FILES['upload']["size"] == 0 OR $_FILES['upload']["size"] > 2050000) | ||
| 197 | + { | ||
| 198 | + $message = "Размер файла не соответствует нормам"; | ||
| 199 | + } | ||
| 200 | + 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')) | ||
| 201 | + { | ||
| 202 | + $message = "Допускается загрузка только картинок JPG и PNG."; | ||
| 203 | + } | ||
| 204 | + else if (!is_uploaded_file($_FILES['upload']["tmp_name"])) | ||
| 205 | + { | ||
| 206 | + $message = "Что-то пошло не так. Попытайтесь загрузить файл ещё раз."; | ||
| 207 | + } | ||
| 208 | + else{ | ||
| 209 | + $name =rand(1, 1000).md5($_FILES['upload']['name']).'.'.$this->getex($_FILES['upload']['name']); | ||
| 210 | + move_uploaded_file($_FILES['upload']['tmp_name'], "../../storage/images/".$name); | ||
| 211 | + $full_path = '/storage/images/'.$name; | ||
| 212 | + $message = "Файл ".$_FILES['upload']['name']." загружен"; | ||
| 213 | + $size=@getimagesize('images/'.$name); | ||
| 214 | + | ||
| 215 | + } | ||
| 216 | + $callback = $_REQUEST['CKEditorFuncNum']; | ||
| 217 | + echo '<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction("'.$callback.'", "'.$full_path.'", "'.$message.'" );</script>'; | ||
| 218 | + } | ||
| 219 | + } | ||
| 220 | + | ||
| 221 | + | ||
| 222 | +} | ||
| 0 | \ No newline at end of file | 223 | \ No newline at end of file |
backend/controllers/SpecializationController.php
100644 → 100755
backend/controllers/UserInfoTestController.php
100644 → 100755
| @@ -14,7 +14,15 @@ use yii\helpers\ArrayHelper; | @@ -14,7 +14,15 @@ use yii\helpers\ArrayHelper; | ||
| 14 | 14 | ||
| 15 | <?= $form->field($model, 'specialization_pid')->dropDownList(ArrayHelper::map($model->find()->all(), 'specialization_id', 'specialization_name'), ['prompt' => 'Выберие родителя']) ?> | 15 | <?= $form->field($model, 'specialization_pid')->dropDownList(ArrayHelper::map($model->find()->all(), 'specialization_id', 'specialization_name'), ['prompt' => 'Выберие родителя']) ?> |
| 16 | <?= $form->field($model, 'specialization_name')->textInput(['maxlength' => true]) ?> | 16 | <?= $form->field($model, 'specialization_name')->textInput(['maxlength' => true]) ?> |
| 17 | - | 17 | + <?= \common\widgets\ImageUploader::widget([ |
| 18 | + 'model'=> $model, | ||
| 19 | + 'field'=>'img', | ||
| 20 | + 'width'=>240, | ||
| 21 | + 'height'=>160, | ||
| 22 | + 'multi'=>false, | ||
| 23 | + 'gallery' =>$model->img, | ||
| 24 | + 'name' => 'Загрузить картинку' | ||
| 25 | + ]); ?> | ||
| 18 | <div class="form-group"> | 26 | <div class="form-group"> |
| 19 | <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> | 27 | <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> |
| 20 | </div> | 28 | </div> |
common/config/main.php
| 1 | <?php | 1 | <?php |
| 2 | return [ | 2 | return [ |
| 3 | 'vendorPath' => dirname(dirname(__DIR__)) . '/vendor', | 3 | 'vendorPath' => dirname(dirname(__DIR__)) . '/vendor', |
| 4 | + 'controllerMap' => [ | ||
| 5 | + 'elfinder' => [ | ||
| 6 | + 'class' => 'mihaildev\elfinder\Controller', | ||
| 7 | + 'access' => ['@'], //глобальный доступ к фаил менеджеру @ - для авторизорованных , ? - для гостей , чтоб открыть всем ['@', '?'] | ||
| 8 | + 'disabledCommands' => ['netmount'], //отключение ненужных команд https://github.com/Studio-42/elFinder/wiki/Client-configuration-options#commands | ||
| 9 | + 'roots' => [ | ||
| 10 | + [ | ||
| 11 | + 'class' => 'mihaildev\elfinder\UserPath', | ||
| 12 | + 'path' => '../../storage/user_{id}', | ||
| 13 | + 'name' => 'My Documents' | ||
| 14 | + ], | ||
| 15 | + ], | ||
| 16 | + 'watermark' => [ | ||
| 17 | + 'source' => __DIR__.'/logo.png', // Path to Water mark image | ||
| 18 | + 'marginRight' => 5, // Margin right pixel | ||
| 19 | + 'marginBottom' => 5, // Margin bottom pixel | ||
| 20 | + 'quality' => 95, // JPEG image save quality | ||
| 21 | + 'transparency' => 70, // Water mark image transparency ( other than PNG ) | ||
| 22 | + 'targetType' => IMG_GIF|IMG_JPG|IMG_PNG|IMG_WBMP, // Target image formats ( bit-field ) | ||
| 23 | + 'targetMinPixel' => 200 // Target image minimum pixel size | ||
| 24 | + ] | ||
| 25 | + ] | ||
| 26 | + ], | ||
| 4 | 'modules' => [ | 27 | 'modules' => [ |
| 5 | 'permit' => [ | 28 | 'permit' => [ |
| 6 | 'class' => 'common\components\developeruz\db_rbac\Yii2DbRbac', | 29 | 'class' => 'common\components\developeruz\db_rbac\Yii2DbRbac', |
common/models/ImageSizerForm.php
common/modules/file/controller/DefaultController.php
0 → 100755
| 1 | +<?php | ||
| 2 | +/** | ||
| 3 | + * Created by PhpStorm. | ||
| 4 | + * User: Cibermag | ||
| 5 | + * Date: 31.08.2015 | ||
| 6 | + * Time: 9:58 | ||
| 7 | + */ | ||
| 8 | +namespace common\modules\file\controllers; | ||
| 9 | +use Yii; | ||
| 10 | +use yii\web\UploadedFile; | ||
| 11 | +use common\models\ImageSizerForm; | ||
| 12 | +use yii\web\Controller; | ||
| 13 | +use Imagine\Gd\Imagine; | ||
| 14 | +use Imagine\Image\Box; | ||
| 15 | +use yii\imagine\Image; | ||
| 16 | + | ||
| 17 | +class DefaultController extends Controller { | ||
| 18 | + | ||
| 19 | + public function isBigger($width,$height,$w,$h) | ||
| 20 | + { | ||
| 21 | + if($width>$w){ | ||
| 22 | + return true; | ||
| 23 | + }else if($height >$h) { | ||
| 24 | + return true; | ||
| 25 | + } | ||
| 26 | + return false; | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + public function actionIndex(){ | ||
| 30 | + die('hello'); | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + private function resizeImg($w, $h, $imageAlias,$imageAliasSave){ | ||
| 34 | + $img = Image::getImagine()->open(Yii::getAlias($imageAlias)); | ||
| 35 | + | ||
| 36 | + $size = $img->getSize(); | ||
| 37 | + | ||
| 38 | + $width = $size->getWidth(); | ||
| 39 | + $height = $size->getHeight(); | ||
| 40 | + | ||
| 41 | + $e_width = $w/$h; | ||
| 42 | + $e_height = $h/$w; | ||
| 43 | + | ||
| 44 | + $e1_width = $width/$height; | ||
| 45 | + $e1_height = $height/$width; | ||
| 46 | + | ||
| 47 | + | ||
| 48 | + if($this->isBigger($width,$height,$w,$h)){ | ||
| 49 | + if($e_width<$e1_width){ | ||
| 50 | + | ||
| 51 | + $new_width = $width*($e_width/$e1_width); | ||
| 52 | + | ||
| 53 | + $y = 0; | ||
| 54 | + $x = $width/ 2-($new_width/2); | ||
| 55 | + $width = $new_width; | ||
| 56 | + | ||
| 57 | + }else { | ||
| 58 | + | ||
| 59 | + $new_height = $height*($e_height/$e1_height); | ||
| 60 | + $x = 0; | ||
| 61 | + $y = $height/2-($new_height/2); | ||
| 62 | + $height = $new_height; | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + | ||
| 66 | + } else { | ||
| 67 | + $img->save($imageAliasSave, array('flatten' => false)); | ||
| 68 | + return true; | ||
| 69 | + } | ||
| 70 | + | ||
| 71 | + | ||
| 72 | + Image::crop($imageAlias, $width, $height,[$x,$y]) | ||
| 73 | + ->save(Yii::getAlias($imageAliasSave), ['quality' => | ||
| 74 | + 100]); | ||
| 75 | + | ||
| 76 | + | ||
| 77 | + $imagine = new Imagine(); | ||
| 78 | + $imagine->open($imageAliasSave) | ||
| 79 | + ->resize(new Box($w, $h)) | ||
| 80 | + ->save($imageAliasSave, array('flatten' => false)); | ||
| 81 | + | ||
| 82 | + | ||
| 83 | + | ||
| 84 | + } | ||
| 85 | + | ||
| 86 | + private function deleteImages($old_img){ | ||
| 87 | + | ||
| 88 | + if(!empty($old_img) && file_exists($_SERVER['DOCUMENT_ROOT'].$old_img)){ | ||
| 89 | + | ||
| 90 | +// $rootDir = explode("/", $old_img); | ||
| 91 | +// | ||
| 92 | +// $row = $_SERVER['DOCUMENT_ROOT'].'/'.$rootDir[1].'/'.$rootDir[2].'/'; | ||
| 93 | +// | ||
| 94 | +// $allFiles = scandir($row); | ||
| 95 | +// | ||
| 96 | +// $allFiles = array_slice($allFiles, 2); | ||
| 97 | +// | ||
| 98 | +// foreach($allFiles as $oldFile){ | ||
| 99 | +// | ||
| 100 | +// unlink($row.$oldFile); | ||
| 101 | +// | ||
| 102 | +// } | ||
| 103 | + | ||
| 104 | + } | ||
| 105 | + } | ||
| 106 | + | ||
| 107 | + public function actionDeleteImage(){ | ||
| 108 | + | ||
| 109 | + $request = Yii::$app->request->post(); | ||
| 110 | + | ||
| 111 | + if($request){ | ||
| 112 | + if ($request['old_img']) { | ||
| 113 | + $this->deleteImages($request['old_img']); | ||
| 114 | + } | ||
| 115 | + if(isset($request['action']) && $request['action']=='save'){ | ||
| 116 | + $object = str_replace('-', '\\',$request['model']); | ||
| 117 | + $model = new $object; | ||
| 118 | + $model = $model->findOne($request['id']); | ||
| 119 | + $model->$request['field'] = $request['new_url']; | ||
| 120 | +// print_r($model->validate()); | ||
| 121 | +// print_r($model->getErrors()); | ||
| 122 | +// die(var_dump($model->save())); | ||
| 123 | + $model->save(); | ||
| 124 | + } | ||
| 125 | + } | ||
| 126 | + | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + | ||
| 130 | + public function actionDownloadPhoto() | ||
| 131 | + { | ||
| 132 | + | ||
| 133 | + $model = new ImageSizerForm(); | ||
| 134 | + | ||
| 135 | + $request = Yii::$app->request->post(); | ||
| 136 | + if ($request) { | ||
| 137 | + | ||
| 138 | + $model->file = UploadedFile::getInstance($model, 'file'); | ||
| 139 | + | ||
| 140 | + $md5_file = md5_file($model->file->tempName); | ||
| 141 | + | ||
| 142 | + $imgDir = Yii::getAlias('@storage/'.$md5_file.'/'); | ||
| 143 | + | ||
| 144 | + $imageOrigAlias = Yii::getAlias($imgDir.'original'.'.'.$model->file->extension); | ||
| 145 | + | ||
| 146 | + if(!is_dir($imgDir)) { | ||
| 147 | + mkdir($imgDir, 0755, true); | ||
| 148 | + } | ||
| 149 | + | ||
| 150 | + $model->file->saveAs($imageOrigAlias); | ||
| 151 | + | ||
| 152 | + if($request['width'] && $request['height']){ | ||
| 153 | + | ||
| 154 | + $imageAlias = Yii::getAlias($imgDir.$request['width'].'x'.$request['height'].'.'.$model->file->extension); | ||
| 155 | + | ||
| 156 | + $imageLink = '/storage/'.$md5_file.'/'.$request['width'].'x'.$request['height'].'.'.$model->file->extension; | ||
| 157 | + | ||
| 158 | + $this->resizeImg($request['width'], $request['height'], $imageOrigAlias,$imageAlias); | ||
| 159 | + | ||
| 160 | + } else { | ||
| 161 | + | ||
| 162 | + $imageLink = '/storage/'.$md5_file.'/'.'original'.'.'.$model->file->extension; | ||
| 163 | + | ||
| 164 | + } | ||
| 165 | + | ||
| 166 | + | ||
| 167 | + if($model->multi){ | ||
| 168 | + $view = $this->renderPartial('@app/components/views/_gallery_item', [ | ||
| 169 | + 'item' => ['image'=>$imageLink], | ||
| 170 | + ]); | ||
| 171 | + | ||
| 172 | + return json_encode(['link'=>$imageLink, 'view' =>$view]); | ||
| 173 | + | ||
| 174 | + | ||
| 175 | + } else { | ||
| 176 | + return json_encode(['link'=>$imageLink]); | ||
| 177 | + } | ||
| 178 | + | ||
| 179 | + | ||
| 180 | + } | ||
| 181 | + } | ||
| 182 | + | ||
| 183 | + | ||
| 184 | + public function getex($filename) { | ||
| 185 | + return end(explode(".", $filename)); | ||
| 186 | + } | ||
| 187 | + | ||
| 188 | + | ||
| 189 | + public function actionImagesUpload(){ | ||
| 190 | + if($_FILES['upload']) | ||
| 191 | + { | ||
| 192 | + if (($_FILES['upload'] == "none") OR (empty($_FILES['upload']['name'])) ) | ||
| 193 | + { | ||
| 194 | + $message = "Вы не выбрали файл"; | ||
| 195 | + } | ||
| 196 | + else if ($_FILES['upload']["size"] == 0 OR $_FILES['upload']["size"] > 2050000) | ||
| 197 | + { | ||
| 198 | + $message = "Размер файла не соответствует нормам"; | ||
| 199 | + } | ||
| 200 | + 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')) | ||
| 201 | + { | ||
| 202 | + $message = "Допускается загрузка только картинок JPG и PNG."; | ||
| 203 | + } | ||
| 204 | + else if (!is_uploaded_file($_FILES['upload']["tmp_name"])) | ||
| 205 | + { | ||
| 206 | + $message = "Что-то пошло не так. Попытайтесь загрузить файл ещё раз."; | ||
| 207 | + } | ||
| 208 | + else{ | ||
| 209 | + $name =rand(1, 1000).md5($_FILES['upload']['name']).'.'.$this->getex($_FILES['upload']['name']); | ||
| 210 | + move_uploaded_file($_FILES['upload']['tmp_name'], "../../storage/images/".$name); | ||
| 211 | + $full_path = '/storage/images/'.$name; | ||
| 212 | + $message = "Файл ".$_FILES['upload']['name']." загружен"; | ||
| 213 | + $size=@getimagesize('images/'.$name); | ||
| 214 | + | ||
| 215 | + } | ||
| 216 | + $callback = $_REQUEST['CKEditorFuncNum']; | ||
| 217 | + echo '<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction("'.$callback.'", "'.$full_path.'", "'.$message.'" );</script>'; | ||
| 218 | + } | ||
| 219 | + } | ||
| 220 | + | ||
| 221 | + | ||
| 222 | +} | ||
| 0 | \ No newline at end of file | 223 | \ No newline at end of file |
common/widgets/ImageResizer.php
| 1 | <?php | 1 | <?php |
| 2 | -namespace backend\components; | 2 | +namespace common\widgets; |
| 3 | 3 | ||
| 4 | use yii\web\UploadedFile; | 4 | use yii\web\UploadedFile; |
| 5 | -use backend\models\ImageSizerForm; | 5 | +use common\models\ImageSizerForm; |
| 6 | use yii\base\Widget; | 6 | use yii\base\Widget; |
| 7 | use Imagine\Image\Box; | 7 | use Imagine\Image\Box; |
| 8 | use yii\imagine\Image; | 8 | use yii\imagine\Image; |
| 1 | +<?php | ||
| 2 | +/** | ||
| 3 | + * Created by PhpStorm. | ||
| 4 | + * User: vitaliy | ||
| 5 | + * Date: 05.10.15 | ||
| 6 | + * Time: 16:18 | ||
| 7 | + */ | ||
| 8 | + | ||
| 9 | +namespace common\widgets; | ||
| 10 | +use yii\base\Widget; | ||
| 11 | + | ||
| 12 | + | ||
| 13 | +class ImageUploader extends Widget | ||
| 14 | +{ | ||
| 15 | + public $height = 0; | ||
| 16 | + public $width = 0; | ||
| 17 | + public $field; | ||
| 18 | + public $file; | ||
| 19 | + public $model; | ||
| 20 | + public $multi = false; | ||
| 21 | + public $gallery; | ||
| 22 | + public $name = 'Add file...'; | ||
| 23 | + | ||
| 24 | + public function init(){ | ||
| 25 | + | ||
| 26 | + parent::init(); | ||
| 27 | + | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + | ||
| 31 | + public function run() | ||
| 32 | + { | ||
| 33 | + | ||
| 34 | + return $this->render('image_sizer', | ||
| 35 | + [ | ||
| 36 | + 'model'=>$this->model, | ||
| 37 | + 'field' => $this->field, | ||
| 38 | + 'height' => $this->height, | ||
| 39 | + 'width' => $this->width, | ||
| 40 | + 'multi' => $this->multi, | ||
| 41 | + 'name' => $this->name | ||
| 42 | + ]); | ||
| 43 | + | ||
| 44 | + } | ||
| 45 | + | ||
| 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 | + | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | +} | ||
| 0 | \ No newline at end of file | 60 | \ No newline at end of file |
common/widgets/views/image_sizer.php
| @@ -6,10 +6,8 @@ | @@ -6,10 +6,8 @@ | ||
| 6 | * Time: 16:20 | 6 | * Time: 16:20 |
| 7 | */ | 7 | */ |
| 8 | use yii\helpers\Html; | 8 | use yii\helpers\Html; |
| 9 | -$this->registerJsFile('@web/js/vendor/bower/jquery-file-upload/js/vendor/jquery.ui.widget.js'); | ||
| 10 | -$this->registerJsFile('@web/js/vendor/bower/jquery-file-upload/js/jquery.iframe-transport.js'); | ||
| 11 | -$this->registerJsFile('@web/js/vendor/bower/jquery-file-upload/js/jquery.fileupload.js'); | ||
| 12 | -$this->registerCssFile('@web/js/vendor/bower/jquery-file-upload/css/jquery.fileupload.css'); | 9 | + |
| 10 | +$id = $model::tableName().'_id'; | ||
| 13 | 11 | ||
| 14 | ?> | 12 | ?> |
| 15 | <div class="file-uploader-block"> | 13 | <div class="file-uploader-block"> |
| @@ -18,13 +16,13 @@ $this->registerCssFile('@web/js/vendor/bower/jquery-file-upload/css/jquery.fileu | @@ -18,13 +16,13 @@ $this->registerCssFile('@web/js/vendor/bower/jquery-file-upload/css/jquery.fileu | ||
| 18 | <i class="glyphicon glyphicon-plus"></i> | 16 | <i class="glyphicon glyphicon-plus"></i> |
| 19 | <span><?=$name?></span> | 17 | <span><?=$name?></span> |
| 20 | 18 | ||
| 21 | - <?= Html::activeFileInput( new \backend\models\ImageSizerForm(),'file',['id'=>$field, 'data-url'=>"/admin/site/download-photo" ]);?> | 19 | + <?= Html::activeFileInput( new \common\models\ImageSizerForm(),'file',['id'=>$field, 'data-url'=>"/file/download-photo" ]);?> |
| 22 | </span> | 20 | </span> |
| 23 | 21 | ||
| 24 | <?= Html::activeHiddenInput( $model,$field,['id' => "{$field}_picture_link"]) ?> | 22 | <?= Html::activeHiddenInput( $model,$field,['id' => "{$field}_picture_link"]) ?> |
| 25 | <input type="hidden" id="<?=$field?>_old_img" name="ImageSizerForm[old_img]" value="<?=$model->$field?>"/> | 23 | <input type="hidden" id="<?=$field?>_old_img" name="ImageSizerForm[old_img]" value="<?=$model->$field?>"/> |
| 26 | <input type="hidden" id="<?=$field?>_new_img" name="ImageSizerForm[new_img]" value=""/> | 24 | <input type="hidden" id="<?=$field?>_new_img" name="ImageSizerForm[new_img]" value=""/> |
| 27 | - <input type="hidden" id="<?=$field?>_row_id" name="ImageSizerForm[new_img]" value="<?=$model->id?>"/> | 25 | + <input type="hidden" id="<?=$field?>_row_id" name="ImageSizerForm[new_img]" value="<?=$model->$id?>"/> |
| 28 | <div id="<?= $field?>_img_block"> | 26 | <div id="<?= $field?>_img_block"> |
| 29 | <?= $model->$field ? Html::img($model->$field): '' ?> | 27 | <?= $model->$field ? Html::img($model->$field): '' ?> |
| 30 | </div> | 28 | </div> |
| @@ -59,7 +57,7 @@ $this->registerCssFile('@web/js/vendor/bower/jquery-file-upload/css/jquery.fileu | @@ -59,7 +57,7 @@ $this->registerCssFile('@web/js/vendor/bower/jquery-file-upload/css/jquery.fileu | ||
| 59 | var old_url = $('#<?=$field?>_old_img').val(); | 57 | var old_url = $('#<?=$field?>_old_img').val(); |
| 60 | var new_url = $('#<?=$field?>_new_img').val(); | 58 | var new_url = $('#<?=$field?>_new_img').val(); |
| 61 | var model = '<?=str_replace('\\', '-',$model::className());?>'; | 59 | var model = '<?=str_replace('\\', '-',$model::className());?>'; |
| 62 | - $.post( "/admin/site/delete-image",{new_url:new_url,old_img: old_url,model:model,field:"<?= $field?>", id:"<?=$model->id?>",action:'save'}, function() { | 60 | + $.post( "/admin/site/delete-image",{new_url:new_url,old_img: old_url,model:model,field:"<?= $field?>", id:"<?=$model->$id?>",action:'save'}, function() { |
| 63 | }); | 61 | }); |
| 64 | $("#<?=$field?>_picture_link").val(new_url); | 62 | $("#<?=$field?>_picture_link").val(new_url); |
| 65 | }); | 63 | }); |
| @@ -85,7 +83,7 @@ $this->registerCssFile('@web/js/vendor/bower/jquery-file-upload/css/jquery.fileu | @@ -85,7 +83,7 @@ $this->registerCssFile('@web/js/vendor/bower/jquery-file-upload/css/jquery.fileu | ||
| 85 | <i class="glyphicon glyphicon-plus"></i> | 83 | <i class="glyphicon glyphicon-plus"></i> |
| 86 | <span><?=$name?></span> | 84 | <span><?=$name?></span> |
| 87 | 85 | ||
| 88 | - <?= Html::activeFileInput( new \backend\models\ImageSizerForm(),'file',['id'=>$field, 'data-url'=>"/admin/site/download-photo", 'multiple'=> 'multiple' ]);?> | 86 | + <?= Html::activeFileInput( new \common\models\ImageSizerForm(),'file',['id'=>$field, 'data-url'=>"/file/download-photo", 'multiple'=> 'multiple' ]);?> |
| 89 | </span> | 87 | </span> |
| 90 | 88 | ||
| 91 | <?= Html::activeHiddenInput( $model,$field,['id' => "{$field}_picture_link"]) ?> | 89 | <?= Html::activeHiddenInput( $model,$field,['id' => "{$field}_picture_link"]) ?> |
console/migrations/m160125_151635_delete_lang_field.php
100644 → 100755
console/migrations/m160202_084703_specialization.php
100644 → 100755
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +use yii\db\Migration; | ||
| 4 | + | ||
| 5 | +class m160203_082111_jobs extends Migration | ||
| 6 | +{ | ||
| 7 | + public function up() | ||
| 8 | + { | ||
| 9 | + $tableOptions = null; | ||
| 10 | + | ||
| 11 | + $this->createTable('{{%job}}', [ | ||
| 12 | + 'job_id' => $this->primaryKey(), | ||
| 13 | + 'name' => $this->string(255)->notNull(), | ||
| 14 | + 'link' => $this->string(255), | ||
| 15 | + 'date_start' => $this->timestamp(), | ||
| 16 | + 'date_end' => $this->timestamp(), | ||
| 17 | + 'position' => $this->string(255), | ||
| 18 | + 'user_id' => $this->integer(), | ||
| 19 | + 'total_count' => $this->integer(), | ||
| 20 | + 'complete_count' => $this->integer(), | ||
| 21 | + ], $tableOptions); | ||
| 22 | + | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + public function down() | ||
| 26 | + { | ||
| 27 | + $this->dropTable('{{%job}}'); | ||
| 28 | + } | ||
| 29 | +} |
No preview for this file type
| @@ -6,10 +6,9 @@ | @@ -6,10 +6,9 @@ | ||
| 6 | * Time: 9:58 | 6 | * Time: 9:58 |
| 7 | */ | 7 | */ |
| 8 | namespace frontend\controllers; | 8 | namespace frontend\controllers; |
| 9 | - | ||
| 10 | use Yii; | 9 | use Yii; |
| 11 | use yii\web\UploadedFile; | 10 | use yii\web\UploadedFile; |
| 12 | -use backend\models\ImageSizerForm; | 11 | +use common\models\ImageSizerForm; |
| 13 | use yii\web\Controller; | 12 | use yii\web\Controller; |
| 14 | use Imagine\Gd\Imagine; | 13 | use Imagine\Gd\Imagine; |
| 15 | use Imagine\Image\Box; | 14 | use Imagine\Image\Box; |
| 1 | <?php | 1 | <?php |
| 2 | - | ||
| 3 | use yii\helpers\Html; | 2 | use yii\helpers\Html; |
| 4 | use yii\widgets\ActiveForm; | 3 | use yii\widgets\ActiveForm; |
| 5 | use mihaildev\ckeditor\CKEditor; | 4 | use mihaildev\ckeditor\CKEditor; |
| 5 | +use mihaildev\elfinder\InputFile; | ||
| 6 | use mihaildev\elfinder\ElFinder; | 6 | use mihaildev\elfinder\ElFinder; |
| 7 | ?> | 7 | ?> |
| 8 | 8 | ||
| @@ -51,6 +51,7 @@ use mihaildev\elfinder\ElFinder; | @@ -51,6 +51,7 @@ use mihaildev\elfinder\ElFinder; | ||
| 51 | ) | 51 | ) |
| 52 | ]); ?> | 52 | ]); ?> |
| 53 | 53 | ||
| 54 | + | ||
| 54 | <?= \common\widgets\FieldEditor::widget([ | 55 | <?= \common\widgets\FieldEditor::widget([ |
| 55 | 'template'=>'education', | 56 | 'template'=>'education', |
| 56 | 'item_id'=> $user->id, | 57 | 'item_id'=> $user->id, |
frontend/views/landing/landing-order-project.php
100644 → 100755
storage/images/731f3def4141ee16d28c15219e46e5d2297.jpg deleted
87.3 KB