<?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 '';
    }
}