You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.2 KiB

<?php
/**
* @copyright NetMonsters <team@netmonsters.ru>
* @link http://netmonsters.ru
* @package Majestic
* @subpackage View
* @since 2010-03-09
* @version SVN: $Id$
* @filesource $URL$
*/
class MsgViewHelper extends ViewHelper
{
const SUCCESS = 'success';
const ERROR = 'error';
protected $get;
public function msg($msg = null, $type = null)
{
if ($msg && $type) {
if (!in_array($type, array(self::SUCCESS, self::ERROR))) {
throw new GeneralException('Unknown message type: "' . $type . '"');
}
Session::set(__CLASS__, array('message' => $msg, 'type' => $type));
}
return $this;
}
public function success($msg)
{
Session::set(__CLASS__, array('message' => $msg, 'type' => self::SUCCESS));
}
public function error($msg)
{
Session::set(__CLASS__, array('message' => $msg, 'type' => self::ERROR));
}
public function __toString()
{
$msg = Session::get(__CLASS__, false);
if ($msg) {
Session::del(__CLASS__);
return '<div class="' . $msg['type'] . '">' . $this->view->escape($msg['message']) . '</div>';
}
return '';
}
}