Guest User

Untitled

a guest
Jul 23rd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.85 KB | None | 0 0
  1. <?php
  2.  
  3. class Messages extends Object
  4. {
  5.  
  6. /*
  7. function getList($userName = NULL, $onlyReplies = FALSE) {
  8. if ($onlyReplies) {
  9. $userId = dibi::fetchSingle('
  10. SELECT userId FROM users WHERE name = %s', $userName, '
  11. ');
  12. return dibi::dataSource('
  13. SELECT messages.message, messages.created, users.name, messages.messageId
  14. FROM messages
  15. INNER JOIN messages AS orig ON messages.previousId = orig.messageId
  16. INNER JOIN users ON messages.userId = users.userId
  17. WHERE orig.userId = %i', $userId, '
  18. ORDER BY created DESC
  19. ');
  20. } elseif ($userName) {
  21. return dibi::dataSource('
  22. SELECT message, created, name, messageId
  23. FROM messages
  24. INNER JOIN users USING (userId)
  25. WHERE name = %s', $userName, '
  26. ORDER BY created DESC
  27. ');
  28. } else {
  29. return dibi::dataSource('
  30. SELECT message, created, name, messageId
  31. FROM messages
  32. INNER JOIN users USING (userId)
  33. ORDER BY created DESC
  34. ');
  35. }
  36. }
  37. */
  38.  
  39. function getAuthorLogin($messageId) {
  40. return dibi::fetchSingle('
  41. SELECT user_login
  42. FROM messages
  43. INNER JOIN users ON (user_id=message_author)
  44. WHERE message_id = %i', $messageId, '
  45. ');
  46. }
  47. /*-----------------------------------------------------------------------*/
  48.  
  49. /**
  50. * @desc gets list of all message
  51. *
  52. * @created 16.12.2009
  53. * @param
  54. */
  55. public function getList() {
  56. try {
  57. return dibi::dataSource('SELECT * FROM [messages]
  58. LEFT JOIN [users] ON(user_id=message_author)
  59. ORDER BY message_id DESC
  60. ');
  61. } catch(DibiException $e) {
  62. Debug::processException($e);
  63. throw new IOException();
  64. }
  65. }
  66.  
  67. /**
  68. * @desc insert message
  69. *
  70. * @created 16.12.2009
  71. * @param
  72. */
  73. public function insert($to, $type, $text, $array = array()) {
  74. try {
  75. dibi::query('
  76. INSERT INTO [messages]', array(
  77. 'message_to' => $to ? (int)$to : NULL,
  78. 'message_type' => $type,
  79. 'message_text' => nl2br($this->validateMessage($text)),
  80. 'message_ip' => $_SERVER['REMOTE_ADDR'],
  81. 'message_created' => time(),
  82. 'message_author' => Environment::getUser()->identity->user_id,
  83. )
  84. );
  85. return TRUE;
  86. } catch(DibiException $e) {
  87. Debug::processException($e);
  88. throw new IOException();
  89. }
  90. }
  91.  
  92. /**
  93. * @desc delete message
  94. *
  95. * @created 16.12.2009
  96. * @param int message id
  97. */
  98. public function deleteMessage($mesasgeId) {
  99. try {
  100. dibi::query('
  101. DELETE FROM [messages] WHERE message_id=%i', $mesasgeId
  102. );
  103. return TRUE;
  104. } catch(DibiException $e) {
  105. Debug::processException($e);
  106. return FALSE;
  107. }
  108. }
  109.  
  110. /**
  111. * @desc set message as favorite
  112. *
  113. * @created 29.12.2009
  114. * @param int message id
  115. * @param string info about relation
  116. */
  117. public function setMessageAsFavorite($mesasgeId, $info=NULL) {
  118. try {
  119. dibi::query('
  120. INSERT INTO [favorites]', array(
  121. 'favorite_userId' => Environment::getUser()->identity->user_id,
  122. 'favorite_messageId' => $mesasgeId,
  123. 'favorite_info' => $info,
  124. ));
  125. return TRUE;
  126. } catch(DibiException $e) {
  127. Debug::processException($e);
  128. return FALSE;
  129. }
  130. }
  131.  
  132. private function validateMessage($text) {
  133. // there will be validate fnc of unavaliable words...
  134. preg_match_all('#@[a-z][a-z0-9-_]*#',$text,$matches);
  135. foreach($matches[0] as $value) {
  136. $userName = substr($value,1);
  137. $userName = dibi::select('*')->from('users')->where('user_login=%s', $userName)->fetch();
  138. if(!empty($userName->user_id)) {
  139. $link = "<a href='".Environment::getApplication()->getPresenter()->link(':Front:Dashboard:people', array('userName'=>$userName->user_login))."'>@".$userName->user_login."</a>";
  140. /*
  141. $link = $this->link(':Front:Dashboard:people', array(
  142. 'userName' => $value->user_login,
  143. ));
  144. */
  145. $text = preg_replace('#@'.$userName->user_login.'#',$link,$text);
  146. }
  147. }
  148. return $text;
  149. }
  150. }
Add Comment
Please, Sign In to add comment