forked from worstinme/yii2-uikit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAlert.php
73 lines (56 loc) · 1.99 KB
/
Alert.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
<?php
namespace worstinme\uikit;
use yii\helpers\Html;
class Alert extends \yii\base\Widget
{
public $alertTypes = [
'error' => 'uk-alert-danger',
'danger' => 'uk-alert-danger',
'success' => 'uk-alert-success',
'info' => 'uk-alert-primary',
'warning' => 'uk-alert-warning',
];
public $options;
public $type;
public $closeButton = [];
public function init()
{
parent::init();
$session = \Yii::$app->getSession();
if (!empty($this->options['data']) && is_array($this->options['data'])) {
$this->options['data']['uk-alert'] = true;
}
else {
$this->options['data'] = ['uk-alert'=>''];
}
$this->options['id'] = $this->getId();
if (isset($this->options['class'])) {
$this->options['class'] .= ' uk-alert';
}
else {
$this->options['class'] = 'uk-alert';
}
if ($this->type === null) {
$flashes = $session->getAllFlashes();
foreach ($flashes as $type => $data) {
if (isset($this->alertTypes[$type])) {
$data = (array) $data;
foreach ($data as $message) {
$this->options['class'] .= ' '.$this->alertTypes[$type];
echo Html::beginTag('div',$this->options);
echo Html::a('', $url = null, ['class' => 'uk-alert-close uk-close']);
echo '<p>'.$message.'</p>';
echo Html::endTag('div');
}
$session->removeFlash($type);
}
}
}
elseif(($message = $session->getFlash($this->type)) !== null) {
echo Html::beginTag('div',$this->options);
echo Html::a('', $url = null, ['class' => 'uk-alert-close uk-close']);
echo Html::tag('p',$message);
echo Html::endTag('div');
}
}
}