XOOPS 2.5.6  Final
 All Classes Namespaces Files Functions Variables Pages
avatar.php
Go to the documentation of this file.
1 <?php
19 defined('XOOPS_ROOT_PATH') or die('Restricted access');
20 
29 class XoopsAvatar extends XoopsObject
30 {
35  function XoopsAvatar()
36  {
37  $this->XoopsObject();
38  $this->initVar('avatar_id', XOBJ_DTYPE_INT, null, false);
39  $this->initVar('avatar_file', XOBJ_DTYPE_OTHER, null, false, 30);
40  $this->initVar('avatar_name', XOBJ_DTYPE_TXTBOX, null, true, 100);
41  $this->initVar('avatar_mimetype', XOBJ_DTYPE_OTHER, null, false);
42  $this->initVar('avatar_created', XOBJ_DTYPE_INT, null, false);
43  $this->initVar('avatar_display', XOBJ_DTYPE_INT, 1, false);
44  $this->initVar('avatar_weight', XOBJ_DTYPE_INT, 0, false);
45  $this->initVar('avatar_type', XOBJ_DTYPE_OTHER, 0, false);
46  }
47 
51  function id($format='N')
52  {
53  return $this->getVar('avatar_id', $format);
54  }
55 
59  function avatar_id($format='')
60  {
61  return $this->getVar('avatar_id', $format);
62  }
63 
67  function avatar_file($format='')
68  {
69  return $this->getVar('avatar_file', $format);
70  }
71 
75  function avatar_name($format='')
76  {
77  return $this->getVar('avatar_name', $format);
78  }
79 
83  function avatar_mimetype($format='')
84  {
85  return $this->getVar('avatar_mimetype', $format);
86  }
87 
91  function avatar_created($format='')
92  {
93  return $this->getVar('avatar_created', $format);
94  }
95 
99  function avatar_display($format='')
100  {
101  return $this->getVar('avatar_display', $format);
102  }
103 
107  function avatar_weight($format='')
108  {
109  return $this->getVar('avatar_weight', $format);
110  }
111 
115  function avatar_type($format='')
116  {
117  return $this->getVar('avatar_type', $format);
118  }
119 
125  function setUserCount($value)
126  {
127  $this->_userCount = intval($value);
128  }
129 
135  function getUserCount()
136  {
137  return $this->_userCount;
138  }
139 }
140 
153 {
160  function &create($isNew = true)
161  {
162  $avatar = new XoopsAvatar();
163  if ($isNew) {
164  $avatar->setNew();
165  }
166  return $avatar;
167  }
168 
175  function &get($id)
176  {
177  $avatar = false;
178  $id = intval($id);
179  if ($id > 0) {
180  $sql = 'SELECT * FROM ' . $this->db->prefix('avatar') . ' WHERE avatar_id=' . $id;
181  if (!$result = $this->db->query($sql)) {
182  return false;
183  }
184  $numrows = $this->db->getRowsNum($result);
185  if ($numrows == 1) {
186  $avatar = new XoopsAvatar();
187  $avatar->assignVars($this->db->fetchArray($result));
188  return $avatar;
189  }
190  }
191  return $avatar;
192  }
193 
200  function insert(&$avatar)
201  {
205  if (!is_a($avatar, 'xoopsavatar')) {
206  return false;
207  }
208  if (!$avatar->isDirty()) {
209  return true;
210  }
211  if (!$avatar->cleanVars()) {
212  return false;
213  }
214  foreach($avatar->cleanVars as $k => $v) {
215  ${$k} = $v;
216  }
217  if ($avatar->isNew()) {
218  $avatar_id = $this->db->genId('avatar_avatar_id_seq');
219  $sql = sprintf("INSERT INTO %s (avatar_id, avatar_file, avatar_name, avatar_created, avatar_mimetype, avatar_display, avatar_weight, avatar_type) VALUES (%u, %s, %s, %u, %s, %u, %u, %s)", $this->db->prefix('avatar'), $avatar_id, $this->db->quoteString($avatar_file), $this->db->quoteString($avatar_name), time(), $this->db->quoteString($avatar_mimetype), $avatar_display, $avatar_weight, $this->db->quoteString($avatar_type));
220  } else {
221  $sql = sprintf("UPDATE %s SET avatar_file = %s, avatar_name = %s, avatar_created = %u, avatar_mimetype= %s, avatar_display = %u, avatar_weight = %u, avatar_type = %s WHERE avatar_id = %u", $this->db->prefix('avatar'), $this->db->quoteString($avatar_file), $this->db->quoteString($avatar_name), $avatar_created, $this->db->quoteString($avatar_mimetype), $avatar_display, $avatar_weight, $this->db->quoteString($avatar_type), $avatar_id);
222  }
223  if (!$result = $this->db->query($sql)) {
224  return false;
225  }
226  if (empty($avatar_id)) {
227  $avatar_id = $this->db->getInsertId();
228  }
229  $avatar->assignVar('avatar_id', $avatar_id);
230  return true;
231  }
232 
239  function delete(&$avatar)
240  {
244  if (!is_a($avatar, 'xoopsavatar')) {
245  return false;
246  }
247 
248  $id = $avatar->getVar('avatar_id');
249  $sql = sprintf("DELETE FROM %s WHERE avatar_id = %u", $this->db->prefix('avatar'), $id);
250  if (!$result = $this->db->query($sql)) {
251  return false;
252  }
253  $sql = sprintf("DELETE FROM %s WHERE avatar_id = %u", $this->db->prefix('avatar_user_link'), $id);
254  $result = $this->db->query($sql);
255  return true;
256  }
257 
265  function &getObjects($criteria = null, $id_as_key = false)
266  {
267  $ret = array();
268  $limit = $start = 0;
269  $sql = 'SELECT a.*, COUNT(u.user_id) AS count FROM ' . $this->db->prefix('avatar') . ' a LEFT JOIN ' . $this->db->prefix('avatar_user_link') . ' u ON u.avatar_id=a.avatar_id';
270  if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
271  $sql .= ' ' . $criteria->renderWhere();
272  $sql .= ' GROUP BY a.avatar_id ORDER BY avatar_weight, avatar_id';
273  $limit = $criteria->getLimit();
274  $start = $criteria->getStart();
275  }
276  $result = $this->db->query($sql, $limit, $start);
277  if (!$result) {
278  return $ret;
279  }
280  while ($myrow = $this->db->fetchArray($result)) {
281  $avatar = new XoopsAvatar();
282  $avatar->assignVars($myrow);
283  $avatar->setUserCount($myrow['count']);
284  if (!$id_as_key) {
285  $ret[] = & $avatar;
286  } else {
287  $ret[$myrow['avatar_id']] = & $avatar;
288  }
289  unset($avatar);
290  }
291  return $ret;
292  }
293 
300  function getCount($criteria = null)
301  {
302  $sql = 'SELECT COUNT(*) FROM ' . $this->db->prefix('avatar');
303  if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
304  $sql .= ' ' . $criteria->renderWhere();
305  }
306  if (!$result = $this->db->query($sql)) {
307  return 0;
308  }
309  list ($count) = $this->db->fetchRow($result);
310  return $count;
311  }
312 
320  function addUser($avatar_id, $user_id)
321  {
322  $avatar_id = intval($avatar_id);
323  $user_id = intval($user_id);
324  if ($avatar_id < 1 || $user_id < 1) {
325  return false;
326  }
327  $sql = sprintf("DELETE FROM %s WHERE user_id = %u", $this->db->prefix('avatar_user_link'), $user_id);
328  $this->db->query($sql);
329  $sql = sprintf("INSERT INTO %s (avatar_id, user_id) VALUES (%u, %u)", $this->db->prefix('avatar_user_link'), $avatar_id, $user_id);
330  if (! $result = $this->db->query($sql)) {
331  return false;
332  }
333  return true;
334  }
335 
342  function getUser(&$avatar)
343  {
344  $ret = array();
348  if (!is_a($avatar, 'xoopsavatar')) {
349  return false;
350  }
351  $sql = 'SELECT user_id FROM ' . $this->db->prefix('avatar_user_link') . ' WHERE avatar_id=' . $avatar->getVar('avatar_id');
352  if (!$result = $this->db->query($sql)) {
353  return $ret;
354  }
355  while ($myrow = $this->db->fetchArray($result)) {
356  $ret[] = & $myrow['user_id'];
357  }
358  return $ret;
359  }
360 
368  function getList($avatar_type = null, $avatar_display = null)
369  {
370  $criteria = new CriteriaCompo();
371  if (isset($avatar_type)) {
372  $avatar_type = ($avatar_type == 'C') ? 'C' : 'S';
373  $criteria->add(new Criteria('avatar_type', $avatar_type));
374  }
375  if (isset($avatar_display)) {
376  $criteria->add(new Criteria('avatar_display', intval($avatar_display)));
377  }
378  $avatars = & $this->getObjects($criteria, true);
379  $ret = array(
380  'blank.gif' => _NONE);
381  foreach(array_keys($avatars) as $i) {
382  $ret[$avatars[$i]->getVar('avatar_file')] = $avatars[$i]->getVar('avatar_name');
383  }
384  return $ret;
385  }
386 }
387 ?>