*/ class Mage_AdminNotification_Model_Inbox extends Mage_Core_Model_Abstract { const SEVERITY_CRITICAL = 1; const SEVERITY_MAJOR = 2; const SEVERITY_MINOR = 3; const SEVERITY_NOTICE = 4; protected function _construct() { $this->_init('adminnotification/inbox'); } /** * Retrieve Severity collection array * * @return array|string */ public function getSeverities($severity = null) { $severities = array( self::SEVERITY_CRITICAL => Mage::helper('adminnotification')->__('critical'), self::SEVERITY_MAJOR => Mage::helper('adminnotification')->__('major'), self::SEVERITY_MINOR => Mage::helper('adminnotification')->__('minor'), self::SEVERITY_NOTICE => Mage::helper('adminnotification')->__('notice'), ); if (!is_null($severity)) { if (isset($severities[$severity])) { return $severities[$severity]; } return null; } return $severities; } /** * Retrieve Latest Notice * * @return Mage_AdminNotification_Model_Inbox */ public function loadLatestNotice() { $this->setData(array()); $this->getResource()->loadLatestNotice($this); return $this; } /** * Retrieve notice statuses * * @return array */ public function getNoticeStatus() { return $this->getResource()->getNoticeStatus($this); } /** * Parse and save new data * * @param array $data * @return Mage_AdminNotification_Model_Inbox */ public function parse(array $data) { return $this->getResource()->parse($this, $data); } /** * Add new message * * @param int $severity * @param string $title * @param string|array $description * @param string $url * @param bool $isInternal * @return Mage_AdminNotification_Model_Inbox */ public function add($severity, $title, $description, $url = '', $isInternal = true) { if (!$this->getSeverities($severity)) { Mage::throwException($this->__('Wrong message type')); } if (is_array($description)) { $description = ''; } $date = date('Y-m-d H:i:s'); $this->parse(array(array( 'severity' => $severity, 'date_added' => $date, 'title' => $title, 'description' => $description, 'url' => $url, 'internal' => $isInternal ))); return $this; } /** * Add critical severity message * * @param string $title * @param string|array $description * @param string $url * @param bool $isInternal * @return Mage_AdminNotification_Model_Inbox */ public function addCritical($title, $description, $url = '', $isInternal = true) { $this->add(self::SEVERITY_CRITICAL, $title, $description, $url, $isInternal); return $this; } /** * Add major severity message * * @param string $title * @param string|array $description * @param string $url * @param bool $isInternal * @return Mage_AdminNotification_Model_Inbox */ public function addMajor($title, $description, $url = '', $isInternal = true) { $this->add(self::SEVERITY_MAJOR, $title, $description, $url, $isInternal); return $this; } /** * Add minor severity message * * @param string $title * @param string|array $description * @param string $url * @param bool $isInternal * @return Mage_AdminNotification_Model_Inbox */ public function addMinor($title, $description, $url = '', $isInternal = true) { $this->add(self::SEVERITY_MINOR, $title, $description, $url, $isInternal); return $this; } /** * Add notice * * @param string $title * @param string|array $description * @param string $url * @param bool $isInternal * @return Mage_AdminNotification_Model_Inbox */ public function addNotice($title, $description, $url = '', $isInternal = true) { $this->add(self::SEVERITY_NOTICE, $title, $description, $url, $isInternal); return $this; } }