Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-10-2012 11:46:30

micky
Nouveau membre
Lieu: France
Date d'inscription: 04-10-2012
Messages: 1
Site web

[Zend_View_Helper_Flash][1.17] Message flash executer 2 fois

Bonjour à toutes et à tous,

J'ai un problème avec un message flash qui apparaît 2 fois.

******************************************
* Voici mon helper (de vue) : *****************
******************************************

/**
* Aide de vue qui récupère les messages des aides d'actions flash
*/
class Zend_View_Helper_Flash extends Zend_View_Helper_Abstract {
    private $_types = array(
            Dpapa_Helpers_Flash::ERROR,
            Dpapa_Helpers_Flash::WARNING,
            Dpapa_Helpers_Flash::NOTICE,
            Dpapa_Helpers_Flash::SUCCESS
    );
   
    public function flash(){
        $flashMessenger = Zend_Controller_Action_HelperBroker::getStaticHelper('Flash');

        $html = '';
        foreach ($this->_types as $type) {
            $messages = $flashMessenger->getMessages($type);
           
            if (!$messages){
                $messages = $flashMessenger->getCurrentMessages($type);
            }
            if ($messages) {
                if ( !$html ) {
                    $html .= '<p class="message '. $type .'">';
                }
                foreach ( $messages as $message ) {
                    $html .= $message->message;
                }
            }
        }
        if ( $html) {
            $html .= '</p>';

            $contentJs = new Zend_Json_Expr($html);
            //$this->view->headScript()->appendFile($this->view->baseUrl()."/js/shadowbox/shadowbox.js");
            $this->view->headScript()->appendScript("
            Shadowbox.init({
                // let's skip the automatic setup because we don't have any
                // properly configured link elements on the page
                skipSetup : true,
                modal: true
            });
            $(window).load(function() {
                Shadowbox.open({
                    content:    '".$contentJs."',
                    player: 'html',
                    height:150
                });
            });");
           
        }
       
        // Effacement conditionnel de l'aide 'Flash' du gestionnaire :
        if (Zend_Controller_Action_HelperBroker::hasHelper('Flash')) {
            Zend_Controller_Action_HelperBroker::removeHelper('Flash');
        }

    }//fin function
}//fin class



******************************************
* Voici mon action : *************************
******************************************
$this->_helper->flash->success($this->view->_("Mon message ici"));



******************************************
* Voici ma vue : ****************************
******************************************
echo $this->flash();


Et donc, lors de la validation d'un formulaire, j'ai le message flash qui apparait, puis en allant sur une autre page, j'ai de nouveau le message flash qui surgit.

Comment faire pour ne plus voir apparaitre, 2 fois, le message flash ?

Merci d'avance de vos réponses.

NB : j'ai sur chaque page (vue), le "echo $this->flash();".

Dernière modification par micky (05-10-2012 10:46:50)


Michael / Zend Framework 1.7

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages