forked from VisualAppeal/YiiBootstrap
/
EBootstrapAlert.php
85 lines (69 loc) · 1.75 KB
/
EBootstrapAlert.php
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
<?php
/*
* Render an alert
* http://twitter.github.com/bootstrap/javascript.html#alerts
*
* @author Tim Helfensdörfer <tim@visualappeal.de>
* @version 0.3.0
* @package bootstrap.widgets
*/
class EBootstrapAlert extends EBootstrapWidget {
/*
* Type of the alert
*
* Values: warning|error|success|info
*/
public $type = '';
/*
* Message to render
*/
public $message = '';
/*
* Display the message as a block with actions
*/
public $block = false;
/*
* Javascript file to hide the alert.
*
* If its set to false, no file will be included
*/
public $jsFile = null;
/*
* User can close the alert
*/
public $canClose = true;
/*
* Init the widget
*/
public function init() {
parent::init();
Yii::app()->clientScript->registerCoreScript('jquery');
if (is_null($this->jsFile)) {
$jsFile = dirname(__FILE__).'/js/bootstrap.min.js';
$this->jsFile = Yii::app()->getAssetManager()->publish($jsFile);
Yii::app()->clientScript->registerScriptFile($this->jsFile);
}
elseif ($this->jsFile !== false) {
Yii::app()->clientScript->registerScriptFile($this->jsFile);
}
}
/*
* Render alert
*/
public function run() {
parent::run();
EBootstrap::mergeClass($this->htmlOptions, array('alert', 'fade', 'in'));
EBootstrap::mergeClass($this->htmlOptions, array('alert-'.$this->type));
if ($this->block)
EBootstrap::mergeClass($this->htmlOptions, array('alert-block'));
echo EBootstrap::openTag('div', $this->htmlOptions);
if ($this->canClose)
echo EBootstrap::tag('a', array('href' => '#', 'class' => 'close', 'data-dismiss' => 'alert'), "×");
if ($this->block)
echo $this->message;
else
echo EBootstrap::tag('span', array(), $this->message);
echo EBootstrap::closeTag('div');
}
}
?>