Advertisement
gaborroos

Untitled

Feb 3rd, 2017
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.69 KB | None | 0 0
  1. <?php
  2. /***********************************************************
  3. *
  4. * Simple Private Messaging Tutorial Class
  5. *
  6. ***********************************************************/
  7.  
  8. class cpm {
  9. var $userid = '';
  10. var $messages = array();
  11. var $dateformat = '';
  12.  
  13. // Constructor gets initiated with userid
  14. function cpm($user,$date="d.m.Y - H:i") {
  15. // defining the given userid to the classuserid
  16. $this->userid = $user;
  17. // Define that date_format
  18. $this->dateformat = $date;
  19. }
  20.  
  21. // Fetch all messages from this user
  22. function getmessages($type=0) {
  23. // Specify what type of messages you want to fetch
  24. switch($type) {
  25. case "0": $sql = "SELECT * FROM messages WHERE `to` = '".$this->userid."' && `to_viewed` = '0' && `to_deleted` = '0' ORDER BY `created` DESC"; break; // New messages
  26. case "1": $sql = "SELECT * FROM messages WHERE `to` = '".$this->userid."' && `to_viewed` = '1' && `to_deleted` = '0' ORDER BY `to_vdate` DESC"; break; // Read messages
  27. case "2": $sql = "SELECT * FROM messages WHERE `from` = '".$this->userid."' ORDER BY `created` DESC"; break; // Send messages
  28. case "3": $sql = "SELECT * FROM messages WHERE `to` = '".$this->userid."' && `to_deleted` = '1' ORDER BY `to_ddate` DESC"; break; // Deleted messages
  29. default: $sql = "SELECT * FROM messages WHERE `to` = '".$this->userid."' && `to_viewed` = '0' ORDER BY `created` DESC"; break; // New messages
  30. }
  31. $result = mysqli_query($GLOBALS["___mysqli_ston"], $sql) or die (((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)));
  32.  
  33. // Check if there are any results
  34. if(mysqli_num_rows($result)) {
  35. $i=0;
  36. // reset the array
  37. $this->messages = array();
  38. // if yes, fetch them!
  39. while($row = mysqli_fetch_assoc($result)) {
  40. $this->users[$i]['id'] = $row['id'];
  41. $this->messages[$i]['title'] = $row['title'];
  42. $this->messages[$i]['message'] = $row['message'];
  43. $this->messages[$i]['fromid'] = $row['from'];
  44. $this->messages[$i]['toid'] = $row['to'];
  45. $this->messages[$i]['from'] = $this->getusername($row['from']);
  46. $this->messages[$i]['to'] = $this->getusername($row['to']);
  47. $this->messages[$i]['from_viewed'] = $row['from_viewed'];
  48. $this->messages[$i]['to_viewed'] = $row['to_viewed'];
  49. $this->messages[$i]['from_deleted'] = $row['from_deleted'];
  50. $this->messages[$i]['to_deleted'] = $row['to_deleted'];
  51. $this->messages[$i]['from_vdate'] = date($this->dateformat, strtotime($row['from_vdate']));
  52. $this->messages[$i]['to_vdate'] = date($this->dateformat, strtotime($row['to_vdate']));
  53. $this->messages[$i]['from_ddate'] = date($this->dateformat, strtotime($row['from_ddate']));
  54. $this->messages[$i]['to_ddate'] = date($this->dateformat, strtotime($row['to_ddate']));
  55. $this->messages[$i]['created'] = date($this->dateformat, strtotime($row['created']));
  56. $i++;
  57. }
  58. } else {
  59. // If not return false
  60. return false;
  61. }
  62. }
  63.  
  64. // Fetch the username from a userid, I made this function because I don't know how you did build your usersystem, that's why I also didn't use left join... this way you can easily edit it
  65. function getusername($userid) {
  66. $sql = "SELECT username FROM users WHERE `id` = '".$userid."' LIMIT 1";
  67. $result = mysqli_query($GLOBALS["___mysqli_ston"], $sql);
  68. // Check if there is someone with this id
  69. if(mysqli_num_rows($result)) {
  70. // if yes get his username
  71. $row = mysqli_fetch_row($result);
  72. return $row[0];
  73. } else {
  74. // if not, name him Unknown
  75. return "Unknown";
  76. }
  77. }
  78.  
  79. // Fetch a specific message
  80. function getmessage($message) {
  81. $sql = "SELECT * FROM users WHERE `id` = '".$message."' && (`from` = '".$this->userid."' || `to` = '".$this->userid."') LIMIT 1";
  82. $result = mysqli_query($GLOBALS["___mysqli_ston"], $sql);
  83. if(mysqli_num_rows($result)) {
  84. // reset the array
  85. $this->messages = array();
  86. // fetch the data
  87. $row = mysqli_fetch_assoc($result);
  88. $this->users[0]['id'] = $row['id'];
  89. $this->messages[0]['title'] = $row['title'];
  90. $this->messages[0]['message'] = $row['message'];
  91. $this->messages[0]['fromid'] = $row['from'];
  92. $this->messages[0]['toid'] = $row['to'];
  93. $this->messages[0]['from'] = $this->getusername($row['from']);
  94. $this->messages[0]['to'] = $this->getusername($row['to']);
  95. $this->messages[0]['from_viewed'] = $row['from_viewed'];
  96. $this->messages[0]['to_viewed'] = $row['to_viewed'];
  97. $this->messages[0]['from_deleted'] = $row['from_deleted'];
  98. $this->messages[0]['to_deleted'] = $row['to_deleted'];
  99. $this->messages[0]['from_vdate'] = date($this->dateformat, strtotime($row['from_vdate']));
  100. $this->messages[0]['to_vdate'] = date($this->dateformat, strtotime($row['to_vdate']));
  101. $this->messages[0]['from_ddate'] = date($this->dateformat, strtotime($row['from_ddate']));
  102. $this->messages[0]['to_ddate'] = date($this->dateformat, strtotime($row['to_ddate']));
  103. $this->messages[0]['created'] = date($this->dateformat, strtotime($row['created']));
  104. } else {
  105. return false;
  106. }
  107. }
  108.  
  109. // We need the userid for pms, but we only let users input usernames, so we need to get the userid of the username :)
  110. function getuserid($username) {
  111. $sql = "SELECT id FROM users WHERE `username` = '".$username."' LIMIT 1";
  112. $result = mysqli_query($GLOBALS["___mysqli_ston"], $sql);
  113. if(mysqli_num_rows($result)) {
  114. $row = mysqli_fetch_row($result);
  115. return $row[0];
  116. } else {
  117. return false;
  118. }
  119. }
  120.  
  121. // Flag a message as viewed
  122. function viewed($message) {
  123. $sql = "UPDATE messages SET `to_viewed` = '1', `to_vdate` = NOW() WHERE `id` = '".$message."' LIMIT 1";
  124. return (@mysqli_query($GLOBALS["___mysqli_ston"], $sql)) ? true:false;
  125. }
  126.  
  127. // Flag a message as deleted
  128. function deleted($message) {
  129. $sql = "UPDATE messages SET `to_deleted` = '1', `to_ddate` = NOW() WHERE `id` = '".$message."' LIMIT 1";
  130. return (@mysqli_query($GLOBALS["___mysqli_ston"], $sql)) ? true:false;
  131. }
  132.  
  133. // Add a new personal message
  134. function sendmessage($to,$title,$message) {
  135. $to = $this->getuserid($to);
  136. $sql = "INSERT INTO messages SET `to` = '".$to."', `from` = '".$this->userid."', `title` = '".$title."', `message` = '".$message."', `created` = NOW()";
  137. return (@mysqli_query($GLOBALS["___mysqli_ston"], $sql)) ? true:false;
  138. }
  139.  
  140. // Render the text (in here you can easily add bbcode for example)
  141. function render($message) {
  142. $message = strip_tags($message, '');
  143. $message = stripslashes($message);
  144. $message = nl2br($message);
  145. return $message;
  146. }
  147.  
  148. }
  149.  
  150. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement