messagesModel.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. class messagesModel extends Staple_Model
  3. {
  4. private $db;
  5. private $systemMessages;
  6. private $expiredSystemMessages;
  7. private $privateMessages;
  8. private $expiredPrivateMessages;
  9. /**
  10. * @return mixed
  11. */
  12. public function getSystemMessages()
  13. {
  14. return $this->systemMessages;
  15. }
  16. /**
  17. * @return mixed
  18. */
  19. public function getPrivateMessages()
  20. {
  21. return $this->privateMessages;
  22. }
  23. /**
  24. * @return mixed
  25. */
  26. public function getExpiredSystemMessages()
  27. {
  28. return $this->expiredSystemMessages;
  29. }
  30. /**
  31. * @return mixed
  32. */
  33. public function getExpiredPrivateMessages()
  34. {
  35. return $this->expiredPrivateMessages;
  36. }
  37. function __construct()
  38. {
  39. $this->db = Staple_DB::get();
  40. $this->systemMessages = $this->loadSystemMessages();
  41. $this->expiredSystemMessages = $this->loadExpiredSystemMessages();
  42. $this->privateMessages = $this->loadPrivateMessages();
  43. }
  44. private function loadSystemMessages()
  45. {
  46. $date = new DateTime();
  47. $date->setTime(0,0,0);
  48. $timestamp = $date->format('U');
  49. $sql = "SELECT id FROM messages WHERE expireDate >= $timestamp ORDER BY postDate DESC";
  50. $query = $this->db->query($sql);
  51. $data = array();
  52. while($result = $query->fetch_assoc())
  53. {
  54. $message = new messageModel();
  55. $data[] = $message->load($result['id']);
  56. }
  57. return $data;
  58. }
  59. private function loadExpiredSystemMessages()
  60. {
  61. $date = new DateTime();
  62. $date->setTime(23,59,59);
  63. $timestamp = $date->format('U');
  64. $sql = "SELECT id FROM messages WHERE expireDate <= $timestamp ORDER BY postDate DESC";
  65. $query = $this->db->query($sql);
  66. $data = array();
  67. while($result = $query->fetch_assoc())
  68. {
  69. $message = new messageModel();
  70. $data[] = $message->load($result['id']);
  71. }
  72. return $data;
  73. }
  74. private function loadPrivateMessages()
  75. {
  76. $date = new DateTime();
  77. $date->setTime(0,0,0);
  78. $sql = "SELECT id FROM privateMessages ORDER BY postDate DESC";
  79. $query = $this->db->query($sql);
  80. $data = array();
  81. while($result = $query->fetch_assoc())
  82. {
  83. $message = new privateMessageModel();
  84. $data[] = $message->load($result['id']);
  85. }
  86. return $data;
  87. }
  88. }