Mercurial > defr > DualBlog
view comment.php @ 11:ff57b45eda37
Changement profond de l'index. Utilisation des templates.
Dual Blog utilise maintenant intimement la libraire de templates
que l'on peut trouver sur http://hg.defr.org/defr/templates,
ce qui permet d'eviter de mixer du code PHP avec du HTML.
Accessoirement, on est aussi assurer d'avoir du XML valide,
puisque c'est l'API DOM qui est utilisée pour générer la
sortie.
author | Franck Deroche <webmaster@defr.org> |
---|---|
date | Wed, 24 Oct 2007 20:06:00 +0200 |
parents | 7dec52982000 |
children | 116ef98b4cb5 |
line wrap: on
line source
<?php setlocale(LC_ALL, "fr_FR.utf8@euro"); ini_set("display_errors", "off"); include("classes.php"); $id = $_GET['id']; $Data = new DataAccess; $Req = new Requete; $Auteur=$Req->get('Auteur'); $Adresse=$Req->get('Adresse'); $AdresseMail = $Req->get('AdresseMail'); $Comment=$Req->get('Comment'); $DateComment=gmdate("Y-m-d H:i:s", time() + 3600*2); if(!is_null($Auteur) && $Auteur!='Votre Nom' && $Auteur != $Adresse && !empty($Comment)) { // Prévention d'un "cassage" par ajout d'un commentaire incorrectement formaté $ip = $_SERVER['REMOTE_ADDR']; $Auteur = str_replace(array('<', '>'), array('<', '>'), $Auteur); /*if(!DOMDocument::loadXML('<comment>' . $Comment . '</comment>')) $Comment = '<![CDATA[' . str_replace(']]>', ']]>',$Comment) . ']]>';*/ if(DOMDocument::loadXML('<comment>' . $Comment . '</comment>')) { $Data->debugQuery(" INSERT INTO Commentaires(MessId, Auteur, Adresse, AdresseMail, Comment, DateComment, ip) VALUES({$id}, '{$Auteur}', '{$Adresse}', '{$AdresseMail}', '{$Comment}', '{$DateComment}', '{$ip}') "); $Data->Query("UPDATE Mess SET NbCommentaires=NbCommentaires+1 WHERE num_mess={$id}"); mail('webmaster+blogcomment@defr.org', 'Nouveau commentaire sur de ' . $Auteur, $Auteur . " vient de mettre en ligne le commentaire suivant: \n" . wordwrap($Comment, 70)); } else { $infos = 'Votre commentaire doit etre fait de XML valide pour apparaitre.'; } } $Data->Query("SELECT * FROM Mess WHERE num_mess = {$id}"); $row = $Data->GetRow(); $mood = ''; $Mess=$Data->utf8_ensure(str_replace("<P>","<p>",str_replace("</P>","</p>", $row['Message']))); $dateFormatee = strftime("%A %d %B %Y, %Hh%M", strtotime($row['DatePost'])); $Titre = $Data->utf8_ensure($row['Titre']); $Titre_url = str_replace(" ", "_", strip_tags($Titre)); $Titre_url = str_replace("-", "_", $Titre_url); include("top.php"); if(!empty($row['Emot'])) { $mood = "<img src='/blog/mood/{$row['Emot']}.png' alt='Mood : {$row['Emot']}' class='mood' />"; $row['Emot'] = " " . $row['Emot']; } echo(" <div class='PostContent{$row['Emot']}'> <h2>{$Titre} | <span class='Date'>{$dateFormatee}</span></h2> {$mood} {$Mess}<br /> {$infos} </div>"); $Data->Query("SELECT * FROM Commentaires Where MessId={$id} AND Visible=1 ORDER BY num_comm"); $defaultGravatar = urlencode("http://defr.org/Misc/NoGravatar.png"); while(0 !== ($row = $Data->GetRow())) { $dateFormatee = strftime(" à %Hh%M le <span class='Date'>%A %d %B %Y</span>", strtotime($row['DateComment'])); $AdresseMail = $row['AdresseMail']; $grav_id = md5($AdresseMail); $Comment = nl2br($row['Comment']); $Comment = str_replace(" & ", " & ", $Comment); if($row['num_comm'] == 172) $Comment = str_replace("</sup>", "</del>", $Comment); //if(stristr($Adresse, "@")) $Adresse = "mailto:" . $Adresse; $betterHref = (stristr($row['Adresse'], 'http://') != false)?"href='{$row['Adresse']}'":''; echo(" <div class='PostContent'> <div class='Infos'> <img class='gravatar' src='http://www.gravatar.com/avatar.php?gravatar_id={$grav_id}&size=50&default=$defaultGravatar' alt='' /> <a {$betterHref} name='c{$row['num_comm']}'>{$row['Auteur']}</a> {$dateFormatee} </div> <div class='Comment'>{$Comment}</div> <br class='endComment' /> </div>"); } echo(" <div class='PostContent'> <a href='/blog/'>Revenir au blog</a> </div> <div class='PostContent'> <form method='post' action='#'> <div id='FormCommentaire'> Vous souhaitez ajouter un nouveau commentaire ? Faites donc, il vous suffit de remplir le petit formulaire ci-dessous. <input type='text' name='Auteur' value='Votre Nom' onfocus=\"if(this.value== this.getAttribute('value')) this.value='';\" /> <input type='text' name='AdresseMail' value='Une adresse mail où vous joindre ? ( Non affichée publiquement )' onfocus=\"if(this.value == this.getAttribute('value')) this.value='';\"/> <input type='text' name='Adresse' value='Un site web à vous ?' onfocus=\"if(this.value == this.getAttribute('value')) this.value='';\"/> <textarea name='Comment' rows='10' cols='40' onfocus=\"if(this.value == 'Et z\'enfin, votre petit commentaire') this.value='';\">Et z'enfin, votre petit commentaire</textarea> <input type='submit' value='Poster ce commentaire' /> </div> </form> </div> "); include("foot.php"); ?>