Bonjour à tous,

Dans tuto de A à Z, au niveau du PostController partie ADMIN, il y a deux fonctions :

admin_index :
Donne le listing des différents articles.

function admin_index(){
        $perPage = 10; 
        $this->loadModel('Post');
        $condition = array('type'=>'post'); 
        $d'posts'] = $this->Post->find(array(
            'fields' => 'Post.id,Post.name,Post.file,Post.online,Category.name as catname,Category.slug as catslug',
            'order' => 'created DESC',
            'conditions' => $condition,
            'limit' => ($perPage*($this->request->page-1)).','.$perPage,
            'join' => array('categories as Category'=>'Category.id=Post.category_id')
        ));
        $d'total'] = $this->Post->findCount($condition); 
        $d'page'] = ceil($d'total'] / $perPage);
        $this->set($d);
    }

admin_edit :
Permet l'édition d'articles.

function admin_edit($id = null){
        $this->loadModel('Post'); 
        if($id === null){
            $post = $this->Post->findFirst(array(
                'conditions' => array('online' => -1),
            ));
            if(!empty($post)){
                $id = $post->id;
            }else{
                $this->Post->save(array(
                    'online' => -1,
                    'created' => date('Y-m-d')
                ));
                $id = $this->Post->id;
            }
        }
        $d'id'] = $id; 
        if($this->request->data){
            if($this->Post->validates($this->request->data)){
                $this->request->data->type = 'post';
                $this->Post->save($this->request->data);
                $this->Session->setFlash('Le contenu a bien été modifié');
                $this->redirect('admin/posts/index'); 
            }else{
                $this->Session->setFlash('Merci de corriger vos informations','error'); 
            }
        }else{
            $this->request->data = $this->Post->findFirst(array(
                'conditions' => array('id'=>$id)
            ));
        }
        // On veut un sélecteur de catégorie donc on récup la liste des catégories
        $this->loadModel('Category');
        $d'categories'] = $this->Category->findList(); 
        $this->set($d);
    }

Dans admin_edit se trouve un setFlash() au mauvais endroit, je voudrais que le setFlash s'affiche après la redirection :

$this->redirect('admin/posts/index');

qui redirige justement vers admin_index.

Je pense qu'il faudrait bouger le setFlash() de place et le mettre avec une condition particulière dans la fonction admin_index !?

Quelle condition(s) devrais-je utiliser pour qu'il m'affiche le message Flash() dans admin_index ?!

Merci de votre aide ! Si je me suis mal exprimé faites le moi savoir et je ferais mon possible pour etre compréhensible !!!

Olivier

2 réponses


djtec
Réponse acceptée

Je pense que tu as le même problème que moi et j'ai trouvé la réponse ici

bzazz
Auteur

Un tout grand merci à toi djtec !