image_sizer.php
3.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
/**
* Created by PhpStorm.
* User: vitaliy
* Date: 05.10.15
* Time: 16:20
*/
use yii\helpers\Html;
$this->registerJsFile('@web/js/vendor/bower/jquery-file-upload/js/vendor/jquery.ui.widget.js');
$this->registerJsFile('@web/js/vendor/bower/jquery-file-upload/js/jquery.iframe-transport.js');
$this->registerJsFile('@web/js/vendor/bower/jquery-file-upload/js/jquery.fileupload.js');
?>
<style>
.gallery_image{
position: relative;
margin-left: 20px;
margin-top: 20px;
display: inline-block;
}
.delete-gallery-item{
background-color: #fff;
opacity: 0.5;
font-size: 20px;
position: absolute;
top: 5px;
right: 5px;
cursor: pointer;
}
.delete-field-item{
position: absolute;
top: 33%;
right: -35px;
font-size: 15px;
cursor: pointer;
}
</style>
<?php if(!$multi):?>
<?= $form->field( new \backend\models\ImageSizerForm(), 'file')->fileInput(['id'=>$field, 'data-url'=>"/admin/site/download-photo" ]); ?>
<?= $form->field($model,$field)->hiddenInput(['id' => "{$field}_picture_link"]) ?>
<input type="hidden" name="ImageSizerForm[width]" value="<?=$width?>"/>
<input type="hidden" name="ImageSizerForm[height]" value="<?=$height?>"/>
<input type="hidden" name="ImageSizerForm[old_img]" value="<?=$model->$field?>"/>
<div id="<?= $field?>_img_block">
<?= $model->$field ? Html::img($model->$field): '' ?>
</div>
<script>
$(function(){
$("#<?= $field?>").fileupload({
dataType: 'json',
done: function (e, data) {
var host = window.location.host.toString();
var img = '<img src="http://'+host+data.result.link+'">';
var block = $("#<?= $field?>_img_block");
block.find('img').remove();
block.append(img);
$("#<?= $field?>_picture_link").val(data.result.link);
}
});
})
</script>
<?php else:?>
<?= $form->field( new \backend\models\ImageSizerForm(), 'file')->fileInput(['id'=>$field, 'data-url'=>"/admin/site/download-photo", 'multiple'=> 'multiple']); ?>
<?= $form->field($model,$field)->hiddenInput(['id' => "{$field}_picture_link"]) ?>
<input type="hidden" name="ImageSizerForm[width]" value="<?=$width?>"/>
<input type="hidden" name="ImageSizerForm[height]" value="<?=$height?>"/>
<input type="hidden" name="ImageSizerForm[multi]" value="<?=$multi?>"/>
<div id="<?= $field?>_img_block">
<?php
foreach($this->context->getGallery() as $image){
echo $this->render('_gallery_item', [ 'item' => ['image'=>$image]]);
}
?>
</div>
<script>
$(function(){
$("#<?= $field?>").fileupload({
dataType: 'json',
done: function (e, data) {
var img = data.result.view;
var block = $("#<?= $field?>_img_block");
block.append(img);
var gallery = $("#<?= $field?>_picture_link");
gallery.val(gallery.val()+data.result.link+',');
}
});
$('body').on('click','.delete-gallery-item', function(){
var url = $(this).data('url');
$(this).parent('.gallery_image').remove();
var gallery = $("#<?= $field?>_picture_link");
var urls = gallery.val();
gallery.val(urls.replace(url+',', ""));
$.post( "/admin/site/delete-image",{old_img: url}, function( data ) {
$( ".result" ).html( data );
});
})
})
</script>
<? endif;?>