53 public $mTable =
'message_inbox';
54 public $mPrimary =
'inbox_id';
55 public $mClass =
'MessageInboxObject';
59 parent::__construct($db);
62 public function getCountUnreadByFromUid($uid)
65 $criteria->add(
new Criteria(
'uid', $uid));
66 return $this->getCount($criteria);
69 public function getInboxCount($uid)
71 $criteria =
new CriteriaCompo(
new Criteria(
'uid', $uid));
72 return $this->getCount($criteria);
75 public function getSendUserList($uid = 0, $fuid = 0)
78 $sql =
'SELECT u.`uname`,u.`uid` FROM `' . $this->db->prefix(
'users') .
'` u, ';
79 $sql.=
'`'.$this->mTable .
'` i ';
80 $sql.=
'WHERE i.`from_uid` = u.`uid` ';
81 $sql.=
'AND i.`uid` = ' . $uid .
' ';
82 $sql.=
'GROUP BY u.`uname`, u.`uid`';
84 $result = $this->db->query($sql);
85 while ($row = $this->db->fetchArray($result)) {
86 if ($fuid == $row[
'uid']) {
87 $row[
'select'] =
true;
89 $row[
'select'] =
false;
96 public function deleteDays($day, $type)
101 $time = time() - ($day * 86400);
102 $sql =
'DELETE FROM `' . $this->mTable .
'` ';
103 $sql.=
'WHERE `utime` < ' . $time .
' ';
105 $sql.=
'AND `is_read` = 1 ';
107 $sql.=
'AND `is_read` < 2 ';
109 $this->db->queryF($sql);
112 public function _makeCriteria4sql($criteria)
114 $this->_chane_old($criteria);
115 return parent::_makeCriteria4sql($criteria);
118 private function _chane_old(&$criteria)
120 if (is_a($criteria,
'CriteriaElement')) {
121 if ($criteria->hasChildElements()) {
122 for ($i = 0; $i < $criteria->getCountChildElements(); $i++) {
123 $this->_chane_old($criteria->criteriaElements[$i]);
125 } elseif (
'Criteria' == get_class($criteria)) {
126 switch ($criteria->column) {
127 case 'read_msg': $criteria->column =
'is_read';
break;
128 case 'to_userid': $criteria->column =
'uid';
break;
129 case 'subject': $criteria->column =
'title';
break;
130 case 'from_userid': $criteria->column =
'from_uid';
break;
131 case 'msg_text': $criteria->column =
'message';
break;
132 case 'msg_time': $criteria->column =
'utime';
break;