Index: library/Zend/Controller/Action/Helper/FlashMessenger.php =================================================================== --- library/Zend/Controller/Action/Helper/FlashMessenger.php (revision 19980) +++ library/Zend/Controller/Action/Helper/FlashMessenger.php (working copy) @@ -112,6 +112,16 @@ $this->_namespace = $namespace; return $this; } + + /** + * getNamespace() - return the current namepsace + * + * @return string + */ + public function getNamespace() + { + return $this->_namespace; + } /** * resetNamespace() - reset the namespace to the default @@ -130,17 +140,21 @@ * @param string $message * @return Zend_Controller_Action_Helper_FlashMessenger Provides a fluent interface */ - public function addMessage($message) + public function addMessage($message, $namespace = null) { + if (!is_string($namespace) || $namespace == '') { + $namespace = $this->getNamespace(); + } + if (self::$_messageAdded === false) { self::$_session->setExpirationHops(1, null, true); } if (!is_array(self::$_session->{$this->_namespace})) { - self::$_session->{$this->_namespace} = array(); + self::$_session->{$namespace} = array(); } - self::$_session->{$this->_namespace}[] = $message; + self::$_session->{$namespace}[] = $message; return $this; } @@ -150,9 +164,13 @@ * * @return boolean */ - public function hasMessages() + public function hasMessages($namespace = null) { - return isset(self::$_messages[$this->_namespace]); + if (!is_string($namespace) || $namespace == '') { + $namespace = $this->getNamespace(); + } + + return isset(self::$_messages[$namespace]); } /** @@ -160,10 +178,14 @@ * * @return array */ - public function getMessages() + public function getMessages($namespace = null) { - if ($this->hasMessages()) { - return self::$_messages[$this->_namespace]; + if (!is_string($namespace) || $namespace == '') { + $namespace = $this->getNamespace(); + } + + if ($this->hasMessages($namespace)) { + return self::$_messages[$namespace]; } return array(); @@ -174,10 +196,14 @@ * * @return boolean True if messages were cleared, false if none existed */ - public function clearMessages() + public function clearMessages($namespace = null) { - if ($this->hasMessages()) { - unset(self::$_messages[$this->_namespace]); + if (!is_string($namespace) || $namespace == '') { + $namespace = $this->getNamespace(); + } + + if ($this->hasMessages($namespace)) { + unset(self::$_messages[$namespace]); return true; } @@ -190,9 +216,13 @@ * * @return boolean */ - public function hasCurrentMessages() + public function hasCurrentMessages($namespace = null) { - return isset(self::$_session->{$this->_namespace}); + if (!is_string($namespace) || $namespace == '') { + $namespace = $this->getNamespace(); + } + + return isset(self::$_session->{$namespace}); } /** @@ -201,10 +231,14 @@ * * @return array */ - public function getCurrentMessages() + public function getCurrentMessages($namespace = null) { + if (!is_string($namespace) || $namespace == '') { + $namespace = $this->getNamespace(); + } + if ($this->hasCurrentMessages()) { - return self::$_session->{$this->_namespace}; + return self::$_session->{$namespace}; } return array(); @@ -215,10 +249,14 @@ * * @return boolean */ - public function clearCurrentMessages() + public function clearCurrentMessages($namespace = null) { + if (!is_string($namespace) || $namespace == '') { + $namespace = $this->getNamespace(); + } + if ($this->hasCurrentMessages()) { - unset(self::$_session->{$this->_namespace}); + unset(self::$_session->{$namespace}); return true; } @@ -230,10 +268,14 @@ * * @return ArrayObject */ - public function getIterator() + public function getIterator($namespace = null) { - if ($this->hasMessages()) { - return new ArrayObject($this->getMessages()); + if (!is_string($namespace) || $namespace == '') { + $namespace = $this->getNamespace(); + } + + if ($this->hasMessages($namespace)) { + return new ArrayObject($this->getMessages($namespace)); } return new ArrayObject(); @@ -244,10 +286,14 @@ * * @return int */ - public function count() + public function count($namespace = null) { - if ($this->hasMessages()) { - return count($this->getMessages()); + if (!is_string($namespace) || $namespace == '') { + $namespace = $this->getNamespace(); + } + + if ($this->hasMessages($namespace)) { + return count($this->getMessages($namespace)); } return 0;