ArtboxModalWidget.php
2.62 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
<?php
    namespace frontend\widgets;
    
    use yii\base\Widget;
    use yii\helpers\Html;
    use frontend\assets\ArtboxModalAsset;
    
    class ArtboxModalWidget extends Widget
    {
        
        public $modalTagOptions = [
            'class' => '',
        ];
    
        public $headerTagOptions = [
            'class' => '',
        ];
    
        public $titleTagOptions = [
            'class' => '',
        ];
        
        public $headerText = '';
        
        public $bodyTagOptions = [
            'class' => 'modal-body',
        ];
        
        
        public $closeTagButton = 'button';
        public $closeTagContent = '×';
        public $closeButtonOptions = [
            'class' => 'close'
        ];
        public function init()
        {
            parent::init();
    
            $this->modalTagOptions[ 'class' ] = ($this->modalTagOptions[ 'class' ]??"") . " forms_ ";
            $this->headerTagOptions[ 'class' ] = ($this->headerTagOptions[ 'class' ]??"") . " modal-header";
            $this->titleTagOptions[ 'class' ] = ($this->titleTagOptions[ 'class' ]??"") . " modal-title";
            $this->bodyTagOptions[ 'class' ] = ($this->bodyTagOptions[ 'class' ]??"") . " modal-body";
    
            ob_start();
        }
        
        public function run()
        {
            
            $content = ob_get_clean();
            
            $closeButton = Html::tag($this->closeTagButton,
                $this->closeTagContent,
                $this->closeButtonOptions
            );
            $modalHeader = Html::tag(
                'div',
                $closeButton .
                Html::tag(
                    'h3',
                    $this->headerText,
                    $this->titleTagOptions
                ),
                $this->headerTagOptions
            );
            
            $modalBody = Html::tag(
                'div',
                $content,
                $this->bodyTagOptions
            );
            
            $formWrapper = Html::tag(
                "div",
                $modalHeader . "\n" . $modalBody,
                [
                    'class' => 'forms_wr_'
                ]
            );
            
            $result = Html::tag(
                "div",
                $formWrapper . "<div class='overlay-new'></div>",
                $this->modalTagOptions
            );
            
            $this->AssetRegister();
            
            return $result;
            
        }
        
        private function AssetRegister(){
            
            ArtboxModalAsset::register($this->getView());
            
        }
    
    } 
