image_sizer.php
3.63 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
<?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"]) ?>
<?= $form->field(new \backend\models\ImageSizerForm(),'height')->hiddenInput(['value' => $height])->label(false) ?>
<?= $form->field(new \backend\models\ImageSizerForm(), 'width')->hiddenInput(['value' => $width])->label(false) ?>
<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"]) ?>
    <?= $form->field(new \backend\models\ImageSizerForm(),'height')->hiddenInput(['value' => $height])->label(false) ?>
    <?= $form->field(new \backend\models\ImageSizerForm(), 'width')->hiddenInput(['value' => $width])->label(false) ?>
    <?= $form->field(new \backend\models\ImageSizerForm(), 'multi')->hiddenInput(['value' => $multi])->label(false) ?>
    <div id="<?= $field?>_img_block">
        <?php
        foreach($this->context->getGalley() 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+',', ""));
            })
        })
    </script>
<? endif;?>