Tutoriel Vidéo CakePHP : Création d'un blog, les commentaires

Dans ce tutoriel vidéo vous découvrirez comment utiliser CakePHP pour intégrer un système de commentaire. Les points essentiels de ce tutoriel sont :


Télécharger la vidéo
(Réservé aux premiums)


Après avoir appris sur Internet quoi de plus normal que de partager à son tour ? Passionné par le web depuis un peu plus de 5 ans maintenant j'aime partager mes compétences et mes découvertes avec les personnes qui ont cette même passion pour le web : Vous.

Vous aimerez aussi

Créer un système d'abonnement

Créer un système d'abonnement
1h1

Dans ce tutoriel vidéo vous découvrirez comment mettre en place un...

Les View Blocks

Les View Blocks
10m

Dans ce tutoriel vidéo je vous propose d'en découvrir plus sur une des...

48 commentaires
Ajouter un commentaire

Jean Il y a 4 mois Répondre

Très bon tutoriel !

ojp Il y a 4 mois Répondre

hbkj

Skull Il y a 8 mois Répondre

Dans le cas où le formulaire de commentaire ne se trouve pas sur la même page que le post, comment récupère-t-on ou transmet-on l'id ?

Pour ma part j'ai choisi cette méthode :

Controller : Posts
Vue : Afficher

$html->link("Ajouter commentaire",array('','controller'=>'commentaire','action'=>'add',$post['Post']['id']));


Controller : Comments
Vue : Ajouter

$form->hidden('post_id', array('default'=> $this->params['pass'][0] )); ?>


N'y a t'il pas une autre solution que de passer l'id en paramètre d'url ?
Merci d'avance.

Grafikart Il y a 8 mois - Répondre

non pas de meilleur solution

GOGOPHOTO Il y a 9 mois Répondre

Petite précision, depuis cakephp 1.3, vous devez ajouter ceci dans la vue pour l'affichage des données de setFlash():

echo $session->flash();

J'ai cherché 3h alors je pense que ça pourra aider
N'oubliez pas non plus d'activer le component session dans le App controller !!!

Deus Ex Machina Il y a 10 mois Répondre

Salut, à nouveau c'est un super tuto.
Petit (tout petit) bémol sur la toute fin où tu fais exprès de mettre un email non valide : le flash indique que le commentaire a bien été posté lol

x-Val Il y a 1 an Répondre

Très bon tuto mais je bloque.. Rien de méchant mais lorsque j'écris un article ou un commentaire, je n'ai aucun retour à la ligne !
Quelle serait la solution svp ?

remi_junuior Il y a 2 ans Répondre

vos tutos sur cake me servent énormément. Encore merci. bonne continuation...

antittrust Il y a 2 ans Répondre

Bon tuto mais a la fin le session flash déconne toujours si on ne rempli pas un champ il affiche quand même que le commentaire a bien été poste au lieu de l'autre message comment faire pour résoudre ce pb?

bastien974 Il y a 2 ans Répondre

Pourquoi le return true dans le Sanitize svp ?

bastien974 Il y a 2 ans - Répondre

Je n'ai rien dit dsl

bastien974 Il y a 2 ans Répondre

Bonjour,
J'ai un soucis :

Dans mon post controller j'ai

function voir($id)
{
if(!empty($this->data))
{
debug($this->data);
$this->Comment->save($this->data);
}

$q = $this->Post->find('first',array('conditions' =>array('Post.id'=>$id)));
$this->set('a',$q);
$this->layout="blog";
}

Et j'ai bien dans ma vue :


echo $form->create('Comment',array('url'=>array('controller'=>'posts','action'=>'voir',$a['Post']['id'])));
echo $form->input('pseudo',array('label'=>'Pseudo : '));
echo $form->input('mail',array('label'=>'Email: '));
echo $form->input('contenu',array('label'=>'Contenu :<br/> ','style'=>'height=250px'));
echo $form->input('post_id',array('type'=>'hidden','value'=>$a["Post"]["id"] ));
echo $form->end('envoyer');

Et pourtant malgré que le debug me donne :

app\controllers\posts_controller.php (line 92)

Array
(
[Comment] => Array
(
[pseudo] => jerome
[mail] => kjvg
[contenu] => okoko
[post_id] => 27
)

)

Rien n'est inséré dans la base de donnée, pouvez vous m'aider svp ?


Jo Il y a 2 ans Répondre

Merci pour ce tutoriel

512banque Il y a 2 ans Répondre

Salut, est-ce possible d'avoir les sources de ce tutoriel ? Merci

dreadstock Il y a 2 ans Répondre

En faite, quand tu parles de .htaccess ca veut dire que tu fais du rewriting pour rendre les url moins bizarre.

Bon juste une dernière chose, je souhaite faire mon blog avec word press et tout le reste avec un framework php. Peux tu me dire ce que je veux faire peut marcher :
Racine du site : voici les dossiers /img ; /js ; /css ; un dossier blog avec à l'interieur tous les dossiers wordpress; et les dossiers cakephp à la racine du site avec les /img ; /js et /css.

Si tu peux pas répondre par mesure de confidentialité je comprendrai. Merci bonne journée

dreadstock Il y a 2 ans Répondre

Merci pour ta réponse grafikart, seulement je m'en pose une autre, en effet, si tu utilises Wordpress + Cakephp, il doit y avoir plein de dossiers à la racine de ton site ? les dossiers avec le thème de ton site dans la partie cakephp et pour le blog les dossiers cakephp avec encore une fois le thème de ton site. Je vois pas trop étant comment mixer les 2 pour avoir moins de dossier. Merci pour l'aide et bonne journée

Grafikart Il y a 2 ans - Répondre

Pour les dossiers je préfère pas en dire trop sur comment le site fonctionne mais on va dire que tu peux utiliser les .htaccess pour faire des liens rapide vers des dossiers du coup tu peux organiser ça proprement sur ton FTP sans que les url soient bizarre.

dreadstock Il y a 2 ans Répondre

Bonjour Grafikart, pour faire suite à mon poste de juin 2009, tu dis que tu as fait tout le site avec cakephp sauf le blog, mais alors le blog tu l'as fait avec quoi ? en php traditionnel ?

Merci par avance

Bonne soirée

Grafikart Il y a 2 ans - Répondre

Le blog tourne avec Wordpress.

Assurance santé Il y a 2 ans Répondre

Excellent tuto, merci beaucoup.

anthos59 Il y a 2 ans Répondre

J'ai trouvé une erreur dans ton code donc je viens indiquer une petite modification pour éviter aux autres de chercher. Préviens moi si j'ai fait une erreur

Lorsque tu vérifie le formulaire avec validates, il te met le message indiquant que ton commentaire a bien été posté même si tu as une erreur dans le mail...

J'ai donc modifié la condition de vérification dans le posts_controller :

if($this->Comment->saveAll($this->data, array('validate' => 'only'))){
$this->Session->setFlash('Votre commentaire a bien été posté','growl', array('type'=>'important'));
$this->Comment->save($this->data);
}

Voila, grâce à ça, il vérifie la totalité

J'espère que ma petite contribution aura aidée

PS : Petite bug lors du premier envoi, ça n'a pas enregistré sur Grafikart ...

Killian_Surf Il y a 1 an - Répondre

anthoss, Merci : Ca fonctionne mieux comme ça!!

nicodemus Il y a 3 ans Répondre

Merci pour tous ces tuto tous mieux les uns que les autres, j'espère qu'il y en aura beaucoup d'autre.Ils m'ont apprient plein de notion, ainsi j'ai pût intégrer une école d'informatique (Epitech).

Merci beaucoup.

DJPaulo Il y a 3 ans Répondre

Dans votre tutoriels Système de commentaire dans CakePHP,
quand je créer un model comment.php :
<?php
class Comment extends AppModel{

var $name='Comment';
var $belongsTo='Post';
}
?>
et que je l'associe a Post.php :
<?php
class Post extends AppModel{

var $name='Post';
var $belongsTo='Category';
var $hasMany='Comment';
}
?>

le message d'erreur sur le page localhost/blog/posts s'affiche :

Error: The requested address '/posts' was not found on this server.

d'où peut provenir le Problème ?

Malin Il y a 3 ans Répondre

C'est justement ce qu'il me fallait, j'espère que je vais réussir cette fois aussi.
Savez-vous comment faire un système de modération avant publication des commentaires un peu comme le fait wordpress ?
En tout cas, merci une fois de plus pour ce superbe tuto.

dreadstock Il y a 3 ans Répondre

salut, merci pour le tuto encore un tuto super de ta part. je suis en train de faire un système de commentaires/ Avis pour les clients d'un hôtel, je souhaiterai en plus du commentaire, rajouter la possibilité pour le client de mettre un nombre d'étoiles (de 1 à 5) pour noter l'hôtel.
As tu une idée, s'il existe un telle application avec cake php
merci infiniment pour ton aide

dioxy Il y a 3 ans Répondre

Salut !
Comment faire pour integrer un blog wordpress à cakephp

Grafikart Il y a 3 ans - Répondre

Tu le met dans webroot et c'est bon.

dreadstock Il y a 3 ans Répondre

Bonjour, merci pour ta réponse. Pourrais tu me dire alors, avec qu'elle technologie est fait le Blog. En effet, je cherche à faire un blog, mais il y a tellement de choix, que je ne sais pas quoi utiliser.

Merci par avance

s-wf Il y a 3 ans - Répondre

Utilises wordpress ^^

Grafikart Il y a 3 ans Répondre

Tout le site (sauf le blog) est fait avec le framework CakePHP.

dreadstock Il y a 3 ans Répondre

Bonjour,

Merci beaucoup pour le tuto.
j'aurais aimé savoir si tu utilisais le logiciel cakephp pour ton "ajouter commentaires" ?

Je te remercie par avance

Fedoradict Il y a 3 ans Répondre

Super et merci pour tes tutos qui sont vraiment bien expliqués. Continue comme ça !

Mauditcrousse Il y a 3 ans Répondre

Bonjour... je trouves ce tutoriel super bien fait. Félicitation et un gros merci de partager tes connaissances.

- du québec

**Lyes** Il y a 3 ans Répondre

j'ai trouvé ça http://www.siteduzero.com/tutoriel-3-115138-installation-configuration.html
voilà j'ai envoyé mes fichiers : http://lyesbensaadi.shos.fr/blog
mais comment j'accède à mes posts ?

Grafikart Il y a 3 ans Répondre

@Lyes : CakePHP est capable de fonctionner sans l'url rewrite. Cherche sur google, tu trouvera la marche à suivre.

**Lyes** Il y a 3 ans Répondre

non il me reste plus qu'a changer d'hébergeur...quelqu'un connait-il un hebergeur GRATUIT acceptant l'url Rewriting ?

Grafikart Il y a 3 ans Répondre

@Lyes : Ton hébergeur accepte-t-il l'url Rewriting ? Si oui regarde le lien que j'ai ajouté dans la description de l'installation de CakePHP pour essayer de modifier les .htaccess

**Lyes** Il y a 3 ans Répondre

xD, mon joli p'tit blog marche bien en local, mais...quand je l'ai hébergé ça m'affiche une erreur : http://lyesbensaadi.shos.fr/
mon hébergeur est societeg
une autre question, comment acceder aux posts sans taper www.site.com/blog/posts, mais juste en tapant www.site.com/blog ?
merci ^^

Asti Il y a 3 ans Répondre

Ca peut être une bonne idée pour un futur tutoriel

Grafikart Il y a 3 ans Répondre

@lyes : "Comment on fait les bébé ?"... C'est plus complexe que ça, il faut une table qui assure l'association entre les tags et les billets.

lyes Il y a 3 ans Répondre

Bonsoir,comment on fait un nuage de tags ?
c'est comme les commentaires ? faut-il les associer aux articles ?

Asti Il y a 3 ans Répondre

Ok merci beaucoup !!

Grafikart Il y a 3 ans Répondre

@Asti : J'utilise Coda, le logiciel est un peu onéreux mais est vraiment bien pratique.

Asti Il y a 3 ans Répondre

Salut grafikart, très bon tutoriel comme d'habitude
Je voulais juste savoir quel éditeur de code tu utilise sur ton MAC :p
Merci d'avance.

ibrahima Il y a 3 ans Répondre

@Grafik
effectivement j'y avais pensé. mais le hic, c'est que je risque de dupliquer les css et les images (un a la racine et l'autre dans le webroot de cake). sauf si j'indexe directement à cake les css se trouvant dans la racine.

Grafikart Il y a 3 ans Répondre

@ibrahima : Tu laisse ton site tel quel et tu met cakePHP dans un dossier blog, Et voila tu as ton blog sans interférence avec le reste de ton site

@lyes : Absolument pas. De toute façon si tu connait quelques limites rien ne t'empeche de faire du PHP brut dans une vue, une action ou un modèle...

lyes Il y a 3 ans Répondre

depuis le temps que je l'attendais ! merci !
PS: est-ce limité de créer un site en MVC avec cakephp ?
je veut dire est-ce qu'on peut faire avec le framwork cake php tout ce que l'on peut faire avec le "php traditionnel" ??

ibrahima Il y a 3 ans Répondre

@JLou
j'ai un site statatique ou je voudrais intégrer un blog que je ferais avec cake. Mais il se trouve que je n'ai pas envi de me casser la tête à utiliser le framework pour gérer la partie statique du site.

Ravi Il y a 3 ans Répondre

Très bon tuto rien à dire, les explications sont parfait ^^

et encore merci pour les tuto ^^

JLou Il y a 3 ans Répondre

@ibrahima : Le site où tu te trouve utilise dotclear pour le blog et le reste a été fait avec cakephp. Donc oui c'est possible.

ibrahima Il y a 3 ans Répondre

@Grafikart
je voulais savoir comment peut-on faire cohabiter un site web avec un autre fait avec cakephp sur le même nom de domaine.

Harry Il y a 3 ans Répondre

C'est la fin d'une série de tuts Mais j'suis content, j'ai appris pleins de choses sur CakePHP =D
Merci en tout cas de nous avoir fait découvert ce framework !
Harry

Pakito Il y a 3 ans Répondre

Pas le temps de le regarder ce soir, mais dès demain, je me le regarde ! Ca fait toujours du bien de revoir des tutos sur ce frameworks que je n'ai pas utilisé depuis bien longtemps.

leknoppix Il y a 3 ans Répondre

Premier à laisser le commentaire.
Bon, très très bon tutoriel. Continue comme ça.
Prévois-tu d'autre tuto sur cake php?

Laisser un commentaire

Si vous avez une question il est conseillé d'utiliser le forum si vous voulez une réponse sûre.