webmaster@0
|
1 <?php |
webmaster@16
|
2 require_once("classes.php"); |
webmaster@16
|
3 $sk = Factory::getSkeleton(); |
webmaster@0
|
4 $id = $_GET['id']; |
webmaster@16
|
5 $Data = Factory::getDB(); |
webmaster@0
|
6 $Req = new Requete; |
webmaster@16
|
7 |
webmaster@16
|
8 |
webmaster@16
|
9 // Enregistrement éventuel d'un commentaire dans la base de données |
webmaster@0
|
10 $Auteur=$Req->get('Auteur'); |
webmaster@0
|
11 $Adresse=$Req->get('Adresse'); |
webmaster@0
|
12 $AdresseMail = $Req->get('AdresseMail'); |
webmaster@0
|
13 $Comment=$Req->get('Comment'); |
webmaster@0
|
14 $DateComment=gmdate("Y-m-d H:i:s", time() + 3600*2); |
webmaster@0
|
15 if(!is_null($Auteur) && $Auteur!='Votre Nom' && $Auteur != $Adresse && !empty($Comment)) { |
webmaster@0
|
16 // Prévention d'un "cassage" par ajout d'un commentaire incorrectement formaté |
webmaster@0
|
17 $ip = $_SERVER['REMOTE_ADDR']; |
webmaster@0
|
18 $Auteur = str_replace(array('<', '>'), array('<', '>'), $Auteur); |
webmaster@0
|
19 if(DOMDocument::loadXML('<comment>' . $Comment . '</comment>')) { |
webmaster@0
|
20 $Data->debugQuery(" |
webmaster@0
|
21 INSERT INTO Commentaires(MessId, Auteur, Adresse, AdresseMail, Comment, DateComment, ip) |
webmaster@0
|
22 VALUES({$id}, '{$Auteur}', '{$Adresse}', '{$AdresseMail}', '{$Comment}', '{$DateComment}', '{$ip}') |
webmaster@0
|
23 "); |
webmaster@0
|
24 $Data->Query("UPDATE Mess SET NbCommentaires=NbCommentaires+1 WHERE num_mess={$id}"); |
webmaster@0
|
25 mail('webmaster+blogcomment@defr.org', 'Nouveau commentaire sur de ' . $Auteur, $Auteur . " vient de mettre en ligne le commentaire suivant: \n" . wordwrap($Comment, 70)); |
webmaster@0
|
26 } |
webmaster@0
|
27 else { |
webmaster@0
|
28 $infos = 'Votre commentaire doit etre fait de XML valide pour apparaitre.'; |
webmaster@0
|
29 } |
webmaster@0
|
30 } |
webmaster@0
|
31 |
webmaster@16
|
32 // Ajout du post au squelette |
webmaster@0
|
33 $Data->Query("SELECT * FROM Mess WHERE num_mess = {$id}"); |
webmaster@0
|
34 $row = $Data->GetRow(); |
webmaster@16
|
35 $post = new Post($row); |
webmaster@16
|
36 $sk->addBlogPost($post->format()); |
webmaster@16
|
37 |
webmaster@16
|
38 // Récupération des commentaires |
webmaster@1
|
39 $Data->Query("SELECT * FROM Commentaires Where MessId={$id} AND Visible=1 ORDER BY num_comm"); |
webmaster@0
|
40 $defaultGravatar = urlencode("http://defr.org/Misc/NoGravatar.png"); |
webmaster@0
|
41 while(0 !== ($row = $Data->GetRow())) { |
webmaster@16
|
42 $commentTpl = new Template('comment.xml'); |
webmaster@16
|
43 $dateFormatee = strftime(" à %Hh%M le <span class='Date'>%A %d %B %Y</span>", strtotime($row['DateComment'])); |
webmaster@16
|
44 $AdresseMail = $row['AdresseMail']; |
webmaster@16
|
45 $grav_id = md5($AdresseMail); |
webmaster@16
|
46 $grav_url = 'http://www.gravatar.com/avatar.php?gravatar_id=' . $grav_id . '&size=50&default=' . $defaultGravatar; |
webmaster@16
|
47 $Comment = nl2br($row['Comment']); |
webmaster@16
|
48 $Comment = str_replace(" & ", " & ", $Comment); |
webmaster@16
|
49 $commentFrag = $commentTpl->getDocumentFragment(); |
webmaster@16
|
50 $commentFrag->appendXML($Comment); |
webmaster@16
|
51 $params = array( |
webmaster@16
|
52 '#gravatar@src' => $grav_url, |
webmaster@16
|
53 '#auteur@href' => 'TODO', |
webmaster@16
|
54 '#auteur@name' => 'c' . $row['num_comm'], |
webmaster@16
|
55 '#auteur' => $row['Auteur'], |
webmaster@16
|
56 'commentDate' => $dateFormatee, |
webmaster@16
|
57 'comment' => $commentFrag, |
webmaster@16
|
58 ); |
webmaster@16
|
59 if(stristr($row['Adresse'], 'http://')) { |
webmaster@16
|
60 $params['#auteur@href'] = $row['Adresse']; |
webmaster@16
|
61 } |
webmaster@16
|
62 $commentTpl->setParams($params); |
webmaster@16
|
63 $sk->addBlogPost($commentTpl); |
webmaster@0
|
64 } |
webmaster@16
|
65 |
webmaster@16
|
66 // Ajout du formulaire d'ajout de commentaires |
webmaster@16
|
67 $commentForm = new Template('commentForm.xml'); |
webmaster@16
|
68 $sk->addBlogPost($commentForm); |
webmaster@16
|
69 |
webmaster@16
|
70 echo $sk; |
webmaster@0
|
71 ?> |