Bonjour,
Je suis entraîne de développer un site web sur cake php. Je veux mettre un système de commentaires sur mon blogue. J'ai trouvé le plugin "Comments" de grafikart. Trois gros problème me bloque. Ça fait longtemps que ce problème dur. J'ai essayer de consulté la documentation du plugin, mais je la trouve pas très claire. :(

Voici le lien : http://grafikart.github.com/CakePHP-Comment/index.html

1er Les champs "Username" et ",mail" reste vide lorsque un utilisateur est connecté. Le plugin devrais faire la récupération des données automatiquement non?. (Dans la Base de donné - DDB users)

2e Dans ma vue "show.ctp" j'ai ajouter le formulaire pour écrire un commentaire sur l'article en question. On ne voit pas les commentaires des gens s'affichent sur la page.

J'aimerais beaucoup réglé ces problèmes avant la mise en ligne de mon site web qui est prévue en hiver 2013.

Merci de votre aide en avance. :)

8 réponses


Shoodey
Réponse acceptée

Voic ila solution si jamais, il suffisais de chercher un petit peu :

Dans le controller du plugin :

$user_id = $this->Auth->user("id");
$user_username = $this->Auth->user("username");
$user_mail = $this->Auth->user("mail");
$this->request->data'Comment']'ip'] = $this->getIp();
if(AuthComponent::user('id')){
    $this->request->data'Comment']'user_id'] = $user_id ? $user_id : 0;
    $this->request->data'Comment']'username'] = $user_username;
    $this->request->data'Comment']'mail'] = $user_mail;
}
$this->Comment->create($this->request->data, true);

Et comme ça ça sauvegardera les donnée de l'utilisateur connecté :)

Pour la partie 2 c'est à toi de faire l'affichage des commentaires, le plugin ne gère pas l'affichage.

Pour la partie 1 c'est normal qu'il ne sauvegarde rien, mais si tu fais un
$comments = $this->TON MODEL->findComments();

dans $comments tu vois bien les infos de l'utilisateur associé ?

lakamark
Auteur

Je ne comprend pas d'envoyer dans $Comments de bien voir les infos de l'utilisateur associer.

voici ma function show();

function show($id = null,$slug = null){
        if(!$id)
            throw new NotFoundException('Aucune page ne correspond à cet ID'); 
        $post = $this->Post->find('first',array(
            'conditions' => array('Post.id' => $id),
             'recursive' => 0
        ));
        if(empty($post))
            throw new NotFoundException('Aucune page ne correspond à cet ID'); 
        if($slug != $post'Post']'slug'])
            $this->redirect($post'Post']'link'],301); 
        $d'post'] = $post;
        $this->helpers] = 'Comment.Comment';
        $this->Post->id = $id;
        Configure::read('Plugin.Comment',array(
            'user' => array(
                'model' => 'User',
                'username' => 'username',
                'mail'  => 'mail'
                ),
            'subcomments' => true
        ));
    $comments = $this->Post->findComments(array(
        'order' => 'Comment.created DESC'
    ));
    debug($comments);
    $this->set($d);
    }

Ok normalement ça devrait effectivement marcher tu peux vérifier que la requête sql généré fait bien une liaison sur utilisateurs ?

lakamark
Auteur

Je fait un debug de $comment et on voit bien qui récupère bien les données et c'est de l'envoyer à la base de donner que le problème se produit.

lakamark
Auteur

Je fait un debug de $comment et on voit bien qui récupère bien les données et c'est de l'envoyer à la base de donner que le problème se produit.

Tu as pu résoudre ton problème depuis le temps ? Si oui, merci de partager :)

lakamark
Auteur

Je vais l'essayer ta solution