107 public function insert(&$pm, $force=
false)
116 if (
'xoopsprivmessage' != strtolower(get_class($pm))) {
119 if (!$pm->isDirty()) {
122 if (!$pm->cleanVars()) {
125 foreach ($pm->cleanVars as $k => $v) {
129 $msg_id = $this->db->genId(
'priv_msgs_msg_id_seq');
130 $sql = sprintf(
'INSERT INTO %s (msg_id, msg_image, subject, from_userid, to_userid, msg_time, msg_text, read_msg) VALUES (%u, %s, %s, %u, %u, %u, %s, %u)', $this->db->prefix(
'priv_msgs'), $msg_id, $this->db->quoteString($msg_image), $this->db->quoteString($subject), $from_userid, $to_userid, time(), $this->db->quoteString($msg_text), 0);
132 $sql = sprintf(
'UPDATE %s SET msg_image = %s, subject = %s, from_userid = %u, to_userid = %u, msg_text = %s, read_msg = %u WHERE msg_id = %u', $this->db->prefix(
'priv_msgs'), $this->db->quoteString($msg_image), $this->db->quoteString($subject), $from_userid, $to_userid, $this->db->quoteString($msg_text), $read_msg, $msg_id);
135 $result = $force ? $this->db->queryF($sql) : $this->db->query($sql);
140 if (empty($msg_id)) {
141 $msg_id = $this->db->getInsertId();
143 $pm->assignVar(
'msg_id', $msg_id);
170 public function &
getObjects($criteria =
null, $id_as_key =
false)
174 $sql =
'SELECT * FROM '.$this->db->prefix(
'priv_msgs');
175 if (isset($criteria) && $criteria instanceof \criteriaelement) {
176 $sql .=
' '.$criteria->renderWhere();
177 $sort = !in_array($criteria->getSort(), [
'msg_id',
'msg_time',
'from_userid']) ?
'msg_id' : $criteria->getSort();
178 $sql .=
' ORDER BY '.$sort.
' '.$criteria->getOrder();
179 $limit = $criteria->getLimit();
180 $start = $criteria->getStart();
182 $result = $this->db->query($sql, $limit, $start);
186 while ($myrow = $this->db->fetchArray($result)) {
188 $pm->assignVars($myrow);
192 $ret[$myrow[
'msg_id']] =& $pm;