Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 21 |
| Alert | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 21 |
| run | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 21 |
|||
| <?php | |
| namespace common\widgets; | |
| use Yii; | |
| /** | |
| * Alert widget renders a message from session flash. All flash messages are displayed | |
| * in the sequence they were assigned using setFlash. You can set message as following: | |
| * | |
| * ```php | |
| * Yii::$app->session->setFlash('error', 'This is the message'); | |
| * Yii::$app->session->setFlash('success', 'This is the message'); | |
| * Yii::$app->session->setFlash('info', 'This is the message'); | |
| * ``` | |
| * | |
| * Multiple messages could be set as follows: | |
| * | |
| * ```php | |
| * Yii::$app->session->setFlash('error', ['Error 1', 'Error 2']); | |
| * ``` | |
| * | |
| * @author Kartik Visweswaran <kartikv2@gmail.com> | |
| * @author Alexander Makarov <sam@rmcreative.ru> | |
| */ | |
| class Alert extends \yii\bootstrap\Widget | |
| { | |
| /** | |
| * @var array the alert types configuration for the flash messages. | |
| * This array is setup as $key => $value, where: | |
| * - key: the name of the session flash variable | |
| * - value: the bootstrap alert type (i.e. danger, success, info, warning) | |
| */ | |
| public $alertTypes = [ | |
| 'error' => 'alert-danger', | |
| 'danger' => 'alert-danger', | |
| 'success' => 'alert-success', | |
| 'info' => 'alert-info', | |
| 'warning' => 'alert-warning' | |
| ]; | |
| /** | |
| * @var array the options for rendering the close button tag. | |
| * Array will be passed to [[\yii\bootstrap\Alert::closeButton]]. | |
| */ | |
| public $closeButton = []; | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function run() | |
| { | |
| $session = Yii::$app->session; | |
| $flashes = $session->getAllFlashes(); | |
| $appendClass = isset($this->options['class']) ? ' ' . $this->options['class'] : ''; | |
| foreach ($flashes as $type => $flash) { | |
| if (!isset($this->alertTypes[$type])) { | |
| continue; | |
| } | |
| foreach ((array) $flash as $i => $message) { | |
| echo \yii\bootstrap\Alert::widget([ | |
| 'body' => $message, | |
| 'closeButton' => $this->closeButton, | |
| 'options' => array_merge($this->options, [ | |
| 'id' => $this->getId() . '-' . $type . '-' . $i, | |
| 'class' => $this->alertTypes[$type] . $appendClass, | |
| ]), | |
| ]); | |
| } | |
| $session->removeFlash($type); | |
| } | |
| } | |
| } |