Class comments

Description

bonjour
voici un code qui je le souhaite pourra servir. en faite il s'agit de ma première classe. elle permet de mettre en place un systeme de commentaire sur votre site très simplement, un peu comme les dans un blog.
j'aimerais beaucoup avoir des retour dessus, (genre des commentaires) pour la faire évoluer. alors n'hésitez pas!!!!

Source / Exemple :


<?php
// class Comments
// écrite pour http://kangun.free.fr
// par kangun
// utilisation :
/*
$shout=new Comments();
$shout[$row['tracks_id']]->bdtype ='mysql'; //mysql or postgres
$shout[$row['tracks_id']]->server= 'your_database_server';
$shout[$row['tracks_id']]->user='yourlogin';
$shout[$row['tracks_id']]->pwd ='yourpassord';
$shout[$row['tracks_id']]->bdd = 'database_concerned';
$shout->table="tracks"; -> nom de la table
$shout->id_table="tracks_id"; -> nom du champs id
$shout->foreign_id="3";	-> valeur de l'id
$shout->affichetous(); -> afficher les commentaires

  • /
// ATTENTION!!!! // l'insertion du message dans la abse de données se fait dans la fonction affichetous() //////////////////////////////// error_reporting(E_ALL); include ("./include/adodb/adodb.inc.php"); class Comments { // varibales de connexion var $bdtype;// mysql or postgres var $server; // your batabase server var $user; // login var $pwd;// password var $bdd;// database // description des variables var $table; //nom de la table pour laquelle on laisse les comentaires var $id_table; //nom du champs id par rapport à la table que nous aller travailler var $foreign_id;// valeur du champ id // declaration des variables pour l'insertion des doonées var $Comments_add; var $nom; //le nom de la personne var $email; // son adresse email var $comment; // le commentaire // fonction qui me permettra de savoir quelle est cette classe function __tostring(){ echo "cette classe permet de gérer les commentaires d'une table"; } // fonction d'affichage du formulaire function form(){ echo '<script type="text/javascript"> <!-- function verif_formulaire'.$this->foreign_id.'() { if(document.commentform'.$this->foreign_id.'.nom.value == "") { alert("Veuillez entrer un nom!"); document.commentform'.$this->foreign_id.'.nom.focus(); return false; } if(document.commentform'.$this->foreign_id.'.comment.value == "") { alert("Veuillez entrer un commentaire!"); document.commentform'.$this->foreign_id.'.comment.focus(); return false; } <!-- fonction de test du mail --> if(document.commentform'.$this->foreign_id.'.mail.value == "") { alert("Veuillez entrer votre adresse électronique!"); document.commentform'.$this->foreign_id.'.mail.focus(); return false; } if(document.commentform'.$this->foreign_id.'.mail.value.indexOf(\'@\') == -1) { alert("Ce n\'est pas une adresse électronique!"); document.commentform'.$this->foreign_id.'.mail.focus(); return false; } } //--> </script>'; echo "<form method='post' name='commentform".$this->foreign_id."' action='http://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]."' onSubmit='return verif_formulaire".$this->foreign_id."()'> <input type='hidden' name='Comments_add' id='Comments_add' value='add'> <input type='hidden' name='id_key' value='".$this->foreign_id."'> <table align=center><tr><td>nom: <input type='text' name='nom' id='nom'></td></tr> <tr><td>mail: <input type='text' name='mail' id='mail'></td></tr> <tr><td>Commentaire :</td></tr> <tr><td><textarea name='comment' id='comment'></textarea></td></tr> <tr><td>Suivi mail: <select name='suivi_mail' size='1'> <option value='true'>oui</option> <option value='false'>non</option> </select> </td></tr> <tr><td align='center'><input type='submit' value='Envoyer'></td></tr></table></form>"; } // fonction d'insertion de nouvelles données function add_db(){ $conn_add = &ADONewConnection($this->bdtype); $conn_add->Connect($this->server,$this->user,$this->pwd,$this->bdd); // on ajoute les infos envoyées $add_query = 'INSERT INTO shout (id, foreign_id, table_name, id_table, nom, mail, date, shout, suivi_mail) VALUES ("","'.$this->foreign_id.'", "'.$this->table.'","'.$this->id_table.'", "'.$this->nom.'","'.$this->email.'","'.time().'","'.$this->comment.'","'.$this->suivi_mail.'")'; if ($conn_add->Execute($add_query) === false) { print 'error inserting: '.$conn_add->ErrorMsg().'<BR>'; } else{ echo "requete effectuee avec succes<br />"; } $conn_add->Close(); } // fonction permettant d'afficher tous les commentaires function affichetous(){ $conn_affiche = &ADONewConnection($this->bdtype); $conn_affiche->PConnect($this->server,$this->user,$this->pwd,$this->bdd); $que='SELECT * FROM shout WHERE id_table="'.$this->id_table.'" AND foreign_id="'.$this->foreign_id.'" AND table_name="'.$this->table.'"'; $rs = $conn_affiche->Execute($que); if ($rs === false) { print 'error inserting: '.$conn_affiche->ErrorMsg().'<BR>'; } else { echo '<script type="text/javascript"> <!--// [CDATA[ function divaffiche(nombre){ document.getElementById("popup"+nombre).style.display = "block"; document.getElementById("cache"+nombre).style.display = "inline"; document.getElementById("voir" +nombre).style.display = "none"; } function divcache(nombre){ document.getElementById("popup"+nombre).style.display = "none"; document.getElementById("cache"+nombre).style.display = "none"; document.getElementById("voir"+nombre).style.display = "inline"; } // ]] --> </script>'; if ($rs->RecordCount()==0) { echo "pas encore de commentaires!!!<br>"; echo '<div id="voir'.$this->foreign_id.'" style="display:inline; border:1px solid #aaaaaa;"> <a onClick="divaffiche('.$this->foreign_id.')">.:cliquer ajouter un commentaire:.</a></div> <div id="cache'.$this->foreign_id.'" style="display:none; border:1px solid #aaaaaa;"> <a onClick="divcache('.$this->foreign_id.')">.:cacher le formulaire:.</a></div>'; echo '<div id="popup'.$this->foreign_id.'" style="display:none; width:300px;margin:auto;border:1px solid;">'; $this->form(); echo '</div>'; } else if ($rs->RecordCount()>=1){ echo '<div id="voir'.$this->foreign_id.'" style="display:inline; border:1px solid #aaaaaa;"> <a onClick="divaffiche('.$this->foreign_id.')">.:Afficher les '.$rs->RecordCount().' commentaires:.</a> </div> <div id="cache'.$this->foreign_id.'" style="display:none; border:1px solid #aaaaaa;"> <a onClick="divcache('.$this->foreign_id.')">.:cacher les commentaires:.</a> </div>'; echo '<div id="popup'.$this->foreign_id.'" style="display:none; border: 1px solid black; background-color: whitesmoke; margin-bottom: 2px;">'; echo '<table align="center">'; $conn_affiche->SetFetchMode(ADODB_FETCH_ASSOC); if (!$rs) print $conn_affiche->ErrorMsg(); else{ while (!$rs->EOF) { echo '<tr><td><a href="mailto:'.$rs->fields['mail'].'">'.$rs->fields['nom'].'</a></td></tr>'; echo '<tr><td>'.stripslashes($rs->fields['shout']).'</td></tr>'; echo '<tr><td><hr></td></tr>'; $rs->MoveNext(); } } echo '</table>'; $this->form(); echo '</div>'; $conn_affiche->Close(); } } } } ?>

Conclusion :


le script est en test sur http://kangun.free.fr
pour plus de documentation (genre si vous avez plusieurs objets, images, ... sur lesquelms laiser des commentaires pour chaque page) n'hésitez pas à venir sur : http://scriptgame.free.fr/classes/classcomment/
zoilà

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.