Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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)
Hors ligne
Pages: 1