Bonjour et excellente année 2012 !

Voilà ma question j'essaye de personnaliser des messages que j'appelle avec la methode controller::flash() j'ai été voir la doc et j'ai vu que le layout par défaut utilisé pour afficher les message appellé par cette méthode est flash.ctp.

J'ai donc crée ce layout pour le personnalisé afin que ce ne soit pas un bête fond blanc, hélas, quand je fais ca, la fonction de redirection automatique apres int $pause secondes ne marche plus, je ne suis plus redirigé et meme quelque soit mon niveau de débug.

Voici le bout de code dans un de mes controller :

<?php if(!empty($this->request->data)){
            $this->Post->save($this->request->data);
            $this->flash('<p>Votre post a bien été sauvegardé</p><p>Redirection en cours ...</p>', '/posts/alist');
            } ?>

J'ai crée un layout flash.ctp avec ce petit code d'essai dedans :

<?php echo $message ?>
    <?php echo $this->Html->image('/theme/img/loading.gif'); ?>

Voilà, et bien résultat je suis bien dirigé sur ma vue, le message de réussite de mon controller apparait bien, l'image gif de chargement aussi mais rien, 0 redirection même après plusieurs secondes, j'ai d’ailleurs pas de lien non plus a cliqué comme ça devrait être le cas en debug 2.

Quelqu'un a une idée ? :)

PS : j'utilise cake 2.0

4 réponses


Je vois pas ou tu définit ta redirection là

tapesec
Auteur

je la définit ici :

$this->flash('<p>Votre post a bien été sauvegardé</p><p>Redirection en cours ...</p>', '/posts/alist');
            } ?>

/posts/alist

Quand j'ecris ça sans crée de flash.ctp ça m'affiche bien le message sur une page blanche puis si je suis a debug 0 ca me redirige au bout de quelques instant vers /posts/alist

Si je crée un flash.ctp pour le personnaliser et bien ça me redirige plus même si je spécifie moi même le nombre de seconde avant la redirection.

Salut,

Dans l'ancien flash.ctp, tu as ça dans le <head></head>

<?php if (Configure::read('debug') == 0) { ?>
<meta http-equiv="Refresh" content="<?php echo $pause; ?>;url=<?php echo $url; ?>"/>
<?php } ?>

Il faut le remettre dans ton flash.ctp

A++

tapesec
Auteur

Qu'une chose à dire :

echo $this->Extrarox->niveau('tropFort' => 'merci'));

;)
J'ai encore du boulot en ce qui concerne mon niveau à fouiller la doc CakePhP