XOOPS 2.5.6  Final
 All Classes Namespaces Files Functions Variables Pages
privmessage.php
Go to the documentation of this file.
1 <?php
19 defined('XOOPS_ROOT_PATH') or die('Restricted access');
20 
30 {
34  function XoopsPrivmessage()
35  {
36  $this->XoopsObject();
37  $this->initVar('msg_id', XOBJ_DTYPE_INT, null, false);
38  $this->initVar('msg_image', XOBJ_DTYPE_OTHER, null, false, 100);
39  $this->initVar('subject', XOBJ_DTYPE_TXTBOX, null, true, 255);
40  $this->initVar('from_userid', XOBJ_DTYPE_INT, null, true);
41  $this->initVar('to_userid', XOBJ_DTYPE_INT, null, true);
42  $this->initVar('msg_time', XOBJ_DTYPE_OTHER, null, false);
43  $this->initVar('msg_text', XOBJ_DTYPE_TXTAREA, null, true);
44  $this->initVar('read_msg', XOBJ_DTYPE_INT, 0, false);
45  }
46 
50  function id($format = 'N')
51  {
52  return $this->getVar('msg_id', $format);
53  }
54 
58  function msg_id($format = '')
59  {
60  return $this->getVar('msg_id', $format);
61  }
62 
66  function msg_image($format = '')
67  {
68  return $this->getVar('msg_image', $format);
69  }
70 
74  function subject($format = '')
75  {
76  return $this->getVar('subject', $format);
77  }
78 
82  function from_userid($format = '')
83  {
84  return $this->getVar('from_userid', $format);
85  }
86 
90  function to_userid($format = '')
91  {
92  return $this->getVar('to_userid', $format);
93  }
94 
98  function msg_time($format = '')
99  {
100  return $this->getVar('msg_time', $format);
101  }
102 
106  function msg_text($format = '')
107  {
108  return $this->getVar('msg_text', $format);
109  }
110 
114  function read_msg($format = '')
115  {
116  return $this->getVar('read_msg', $format);
117  }
118 
119 }
120 
135 {
141  function &create($isNew = true)
142  {
143  $pm = new XoopsPrivmessage();
144  if ($isNew) {
145  $pm->setNew();
146  }
147  return $pm;
148  }
149 
155  function &get($id)
156  {
157  $pm = false;
158  $id = intval($id);
159  if ($id > 0) {
160  $sql = 'SELECT * FROM ' . $this->db->prefix('priv_msgs') . ' WHERE msg_id=' . $id;
161  if (!$result = $this->db->query($sql)) {
162  return $pm;
163  }
164  $numrows = $this->db->getRowsNum($result);
165  if ($numrows == 1) {
166  $pm = new XoopsPrivmessage();
167  $pm->assignVars($this->db->fetchArray($result));
168  }
169  }
170  return $pm;
171  }
172 
180  function insert(&$pm, $force = false)
181  {
185  if (!is_a($pm, 'xoopsprivmessage')) {
186  return false;
187  }
188 
189  if (!$pm->isDirty()) {
190  return true;
191  }
192  if (!$pm->cleanVars()) {
193  return false;
194  }
195  foreach ($pm->cleanVars as $k => $v) {
196  ${$k} = $v;
197  }
198  if ($pm->isNew()) {
199  $msg_id = $this->db->genId('priv_msgs_msg_id_seq');
200  $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);
201  } else {
202  $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);
203  }
204  $queryFunc = empty($force) ? "query" : "queryF";
205  if (!$result = $this->db->{$queryFunc}($sql)) {
206  return false;
207  }
208  if (empty($msg_id)) {
209  $msg_id = $this->db->getInsertId();
210  }
211  $pm->assignVar('msg_id', $msg_id);
212  return true;
213  }
214 
220  function delete(&$pm)
221  {
225  if (!is_a($pm, 'xoopsprivmessage')) {
226  return false;
227  }
228 
229  if (!$result = $this->db->query(sprintf("DELETE FROM %s WHERE msg_id = %u", $this->db->prefix('priv_msgs'), $pm->getVar('msg_id')))) {
230  return false;
231  }
232  return true;
233  }
234 
241  function getObjects($criteria = null, $id_as_key = false)
242  {
243  $ret = array();
244  $limit = $start = 0;
245  $sql = 'SELECT * FROM ' . $this->db->prefix('priv_msgs');
246  if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
247  $sql .= ' ' . $criteria->renderWhere();
248  $sort = ! in_array($criteria->getSort(), array(
249  'msg_id' ,
250  'msg_time' ,
251  'from_userid')) ? 'msg_id' : $criteria->getSort();
252  $sql .= ' ORDER BY ' . $sort . ' ' . $criteria->getOrder();
253  $limit = $criteria->getLimit();
254  $start = $criteria->getStart();
255  }
256  $result = $this->db->query($sql, $limit, $start);
257  if (!$result) {
258  return $ret;
259  }
260  while ($myrow = $this->db->fetchArray($result)) {
261  $pm = new XoopsPrivmessage();
262  $pm->assignVars($myrow);
263  if (!$id_as_key) {
264  $ret[] =& $pm;
265  } else {
266  $ret[$myrow['msg_id']] =& $pm;
267  }
268  unset($pm);
269  }
270  return $ret;
271  }
272 
278  function getCount($criteria = null)
279  {
280  $sql = 'SELECT COUNT(*) FROM ' . $this->db->prefix('priv_msgs');
281  if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
282  $sql .= ' ' . $criteria->renderWhere();
283  }
284  if (!$result = $this->db->query($sql)) {
285  return 0;
286  }
287  list ($count) = $this->db->fetchRow($result);
288  return $count;
289  }
290 
296  function setRead(&$pm)
297  {
301  if (!is_a($pm, 'xoopsprivmessage')) {
302  return false;
303  }
304 
305  $sql = sprintf("UPDATE %s SET read_msg = 1 WHERE msg_id = %u", $this->db->prefix('priv_msgs'), $pm->getVar('msg_id'));
306  if (!$this->db->queryF($sql)) {
307  return false;
308  }
309  return true;
310  }
311 }
312 ?>