I thought I understood purpose of namespaces in the flash messenger,
but now I'm not so sure. I thought that namespaces just created
separate containers to which one or more messages could be written,
but this does not seem to be the case.

To test this, I put used this code in a controller action:

        $this->_helper->flashMessenger('Warning Message1', 'warning');
        $this->_helper->flashMessenger('Warning Message2', 'warning');
        $this->_helper->flashMessenger('Warning Message3', 'warning');
        $this->_helper->flashMessenger('Error Message1', 'error');
        $this->_helper->flashMessenger('Error Message2', 'error');
        $this->_helper->flashMessenger('Error Message3', 'error');
        $this->_helper->flashMessenger('Info Message1', 'info');
        $this->_helper->flashMessenger('Info Message2', 'info');
        $this->_helper->flashMessenger('Info Message3', 'info');
        $this->_helper->flashMessenger('Default Message1');
        $this->_helper->flashMessenger('Default Message2');
        $this->_helper->flashMessenger('Default Message3');


Then I extended the flash messenger and registered my class in the
bootstrap. That class has this method:

    public function postDispatch()
    {

           $view = $this->getActionController()->view;

           $namespaces = array('error', 'warning', 'info', null);

           $output = '';

           foreach ($namespaces as $namespace) {
               $messages = $this->getMessages($namespace);
               Zend_Debug::dump($messages, $namespace);
               if (count($messages)) {
                   $output .= $view->htmlList($messages, false,
array('class' => $namespace));
               }
           }

           $output = (strlen($output) === 0) ? '' : '<section
class="messages">' . $output . '</section>';

           $view->layout()->messages = $output;

    }

I expected the layout to output four blocks of message, each
containing 3 messages, but this is only true of the non-namespaced
messages. Here is the output I am getting:

<section class="messages"><ul class="error">
<li>Error Message3</li>
</ul>
<ul class="warning">
<li>Warning Message3</li>
</ul>
<ul class="info">
<li>Info Message3</li>
</ul>
<ul class="">
<li>Default Message1</li>
<li>Default Message2</li>
<li>Default Message3</li>
</ul>
</section>

Have I misunderstood the intent of these namespaces, or is something
not working correctly?

Andrew

-- 
List: [email protected]
Info: http://framework.zend.com/archives
Unsubscribe: [email protected]


Reply via email to