A tumblelog CMS built on AJAX, PHP and MySQL.

comments.class.php 4.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /* ===========================
  3. gelato CMS - A PHP based tumblelog CMS
  4. development version
  5. http://www.gelatocms.com/
  6. gelato CMS is a free software licensed under the GPL 2.0
  7. Copyright (C) 2007 by Pedro Santana <pecesama at gmail dot com>
  8. =========================== */
  9. ?>
  10. <?php
  11. require_once("configuration.class.php");
  12. require_once("functions.php");
  13. class comments extends Conexion_Mysql {
  14. var $conf;
  15. function comments() {
  16. parent::Conexion_Mysql(DB_name, DB_Server, DB_User, DB_Password);
  17. $this->conf = new configuration();
  18. }
  19. function addComment($fieldsArray) {
  20. if ($this->insertarDeFormulario($this->conf->tablePrefix."data", $fieldsArray)) {
  21. return true;
  22. } else {
  23. return false;
  24. }
  25. }
  26. function generateCookie($fieldsArray) {
  27. setcookie("cookie_gel_user", $fieldsArray["username"], time() + 30000000);
  28. setcookie("cookie_gel_email", $fieldsArray["email"], time() + 30000000);
  29. setcookie("cookie_gel_web", $fieldsArray["web"], time() + 30000000);
  30. }
  31. function isSpam($fieldsArray) {
  32. if (preg_match( "/^\d+$/", $fieldsArray["username"])) { return true; }
  33. elseif (trim($fieldsArray["content"]) == "") { return true; }
  34. elseif (preg_match( "/^\d+$/", $fieldsArray["content"])) { return true; }
  35. elseif (strtolower($fieldsArray["content"]) == strtolower($fieldsArray["username"])) { return true; }
  36. elseif (preg_match("#^<strong>[^.]+\.\.\.</strong>#", $fieldsArray["content"])) { return true; }
  37. elseif (3 <= preg_match_all("/a href=/", strtolower($fieldsArray["content"]), $matches)) { return true; }
  38. elseif ($this->isBadWord($fieldsArray["content"])) { return true; }
  39. else { return false; }
  40. }
  41. function isBadWord($str="") {
  42. $bads = array ("puto", "viagra", "ringtones", "casino", "buy", "cheap", "order", "poker", "discount", "fuck", "cool", "site", "online", "very", "cholesterol", "milf", "sex", "sexo", "arredamento", "reddit", "sesso", "lesbico", "vzge", "angelcities", "porno", "holdem", "blackjack", "black-jack", "mortgage", "pharmacy", "loan", "refinance", "credit", "alberghi", "scarica", "hotel", "cellulare", "giochi", "gratis", "gif", "animata", "fantasy", "albergo", "blowjob", "delicio", "cosco", "dealerships");
  43. for($i=0;$i<sizeof($bads);$i++) {
  44. if(eregi($bads[$i],$str)) return true;
  45. }
  46. return false;
  47. }
  48. function confirmacionEmail($email_autor_post, $tit_blog, $desc_blog, $url_blog, $id_post, $titulo_post, $usuario, $email, $pagina_web, $comentario, $ip_usuario) {
  49. $msg = "<br/><br/><font face=verdana><em><font size=2>Hay un nuevo comentario en el post #".$id_post." \"".$titulo_post."\"</font></em><br/><br/>";
  50. $msg .= "Autor : ".$usuario." (IP: ".$ip_usuario.")<br /><br />";
  51. $msg .= "E-mail : <a href=\"mailto:".$email."\">".$email."</a><br /><br />";
  52. $msg .= "URL &nbsp; &nbsp;: <a href=\"".$pagina_web."\" target=\"_blank\">".$pagina_web."</a><br /><br />";
  53. $msg .= "Whois &nbsp;: <a href=\"http://ws.arin.net/cgi-bin/whois.pl?queryinput=".$ip_usuario."\" target=\"_blank\">http://ws.arin.net/cgi-bin/whois.pl?queryinput=".$ip_usuario."</a><br /><br />";
  54. $msg .= "Comentario:<br /><br />".$comentario;
  55. $msg .= "<br /><br /><a href=\"".$url_blog."/index.php?id=".$id_post."\">".$url_blog."/index.php?id=".$id_post."</a><br /><br />";
  56. enviaMail($email_autor_post, "[".$desc_blog."] Nuevo mensaje en: ".$titulo_post."", $msg, EMAIL_ADMIN);
  57. }
  58. function obtenerComentarios($idArticulo="") {
  59. $this->ejecutarConsulta("select * from ".tabla_prefijo."comentarios WHERE id_post=".$idArticulo." AND spam=0 order by fecha ASC");
  60. return $this->mid_consulta;
  61. }
  62. function contarComentarios($idArticulo="") {
  63. $this->ejecutarConsulta("select * from ".tabla_prefijo."comentarios WHERE id_post=".$idArticulo." AND spam=0");
  64. return $this->contarRegistros();
  65. }
  66. function mostrarGravatar($email="") {
  67. $emailg = $email;
  68. $default = URL_CODICE."/images/noGravatar.jpg";
  69. $size = 30;
  70. $grav_url = "http://www.gravatar.com/avatar.php?gravatar_id=".md5($emailg)."&amp;default=".urlencode($default)."&amp;size=".$size;
  71. return "<img src=\"".$grav_url."\" alt=\"Gravatar\" title=\"Gravatar\" />";
  72. }
  73. }
  74. ?>