XOOPS 2.5.6  Final
 All Classes Namespaces Files Functions Variables Pages
image.php
Go to the documentation of this file.
1 <?php
19 defined('XOOPS_ROOT_PATH') or die('Restricted access');
20 
28 class XoopsImage extends XoopsObject
29 {
33  function XoopsImage()
34  {
35  $this->XoopsObject();
36  $this->initVar('image_id', XOBJ_DTYPE_INT, null, false);
37  $this->initVar('image_name', XOBJ_DTYPE_OTHER, null, false, 30);
38  $this->initVar('image_nicename', XOBJ_DTYPE_TXTBOX, null, true, 100);
39  $this->initVar('image_mimetype', XOBJ_DTYPE_OTHER, null, false);
40  $this->initVar('image_created', XOBJ_DTYPE_INT, null, false);
41  $this->initVar('image_display', XOBJ_DTYPE_INT, 1, false);
42  $this->initVar('image_weight', XOBJ_DTYPE_INT, 0, false);
43  $this->initVar('image_body', XOBJ_DTYPE_SOURCE, null, true);
44  $this->initVar('imgcat_id', XOBJ_DTYPE_INT, 0, false);
45  }
46 
50  function id($format = 'N')
51  {
52  return $this->getVar('image_id', $format);
53  }
54 
58  function image_id($format = '')
59  {
60  return $this->getVar('image_id', $format);
61  }
62 
66  function image_name($format = '')
67  {
68  return $this->getVar('image_name', $format);
69  }
70 
74  function image_nicename($format = '')
75  {
76  return $this->getVar('image_nicename', $format);
77  }
78 
82  function image_mimetype($format = '')
83  {
84  return $this->getVar('image_mimetype', $format);
85  }
86 
90  function image_created($format = '')
91  {
92  return $this->getVar('image_created', $format);
93  }
94 
98  function image_display($format = '')
99  {
100  return $this->getVar('image_display', $format);
101  }
102 
106  function image_weight($format = '')
107  {
108  return $this->getVar('image_weight', $format);
109  }
110 
114  function image_body($format = '')
115  {
116  return $this->getVar('image_body', $format);
117  }
118 
122  function imgcat_id($format = '')
123  {
124  return $this->getVar('imgcat_id', $format);
125  }
126 
127 }
128 
141 {
148  function &create($isNew = true)
149  {
150  $image = new XoopsImage();
151  if ($isNew) {
152  $image->setNew();
153  }
154  return $image;
155  }
156 
164  function &get($id, $getbinary = true)
165  {
166  $image = false;
167  $id = intval($id);
168  if ($id > 0) {
169  $sql = 'SELECT i.*, b.image_body FROM ' . $this->db->prefix('image') . ' i LEFT JOIN ' . $this->db->prefix('imagebody') . ' b ON b.image_id=i.image_id WHERE i.image_id=' . $id;
170  if (!$result = $this->db->query($sql)) {
171  return $image;
172  }
173  $numrows = $this->db->getRowsNum($result);
174  if ($numrows == 1) {
175  $image = new XoopsImage();
176  $image->assignVars($this->db->fetchArray($result));
177  }
178  }
179  return $image;
180  }
181 
188  function insert(&$image)
189  {
193  if (!is_a($image, 'xoopsimage')) {
194  return false;
195  }
196 
197  if (!$image->isDirty()) {
198  return true;
199  }
200  if (!$image->cleanVars()) {
201  return false;
202  }
203  foreach ($image->cleanVars as $k => $v) {
204  ${$k} = $v;
205  }
206  if ($image->isNew()) {
207  $image_id = $this->db->genId('image_image_id_seq');
208  $sql = sprintf("INSERT INTO %s (image_id, image_name, image_nicename, image_mimetype, image_created, image_display, image_weight, imgcat_id) VALUES (%u, %s, %s, %s, %u, %u, %u, %u)", $this->db->prefix('image'), $image_id, $this->db->quoteString($image_name), $this->db->quoteString($image_nicename), $this->db->quoteString($image_mimetype), time(), $image_display, $image_weight, $imgcat_id);
209  if (!$result = $this->db->query($sql)) {
210  return false;
211  }
212  if (empty($image_id)) {
213  $image_id = $this->db->getInsertId();
214  }
215  if (isset($image_body) && $image_body != '') {
216  $sql = sprintf("INSERT INTO %s (image_id, image_body) VALUES (%u, %s)", $this->db->prefix('imagebody'), $image_id, $this->db->quoteString($image_body));
217  if (!$result = $this->db->query($sql)) {
218  $sql = sprintf("DELETE FROM %s WHERE image_id = %u", $this->db->prefix('image'), $image_id);
219  $this->db->query($sql);
220  return false;
221  }
222  }
223  $image->assignVar('image_id', $image_id);
224  } else {
225  $sql = sprintf("UPDATE %s SET image_name = %s, image_nicename = %s, image_display = %u, image_weight = %u, imgcat_id = %u WHERE image_id = %u", $this->db->prefix('image'), $this->db->quoteString($image_name), $this->db->quoteString($image_nicename), $image_display, $image_weight, $imgcat_id, $image_id);
226  if (!$result = $this->db->query($sql)) {
227  return false;
228  }
229  if (isset($image_body) && $image_body != '') {
230  $sql = sprintf("UPDATE %s SET image_body = %s WHERE image_id = %u", $this->db->prefix('imagebody'), $this->db->quoteString($image_body), $image_id);
231  if (!$result = $this->db->query($sql)) {
232  $this->db->query(sprintf("DELETE FROM %s WHERE image_id = %u", $this->db->prefix('image'), $image_id));
233  return false;
234  }
235  }
236  }
237  return true;
238  }
239 
246  function delete(&$image)
247  {
251  if (!is_a($image, 'xoopsimage')) {
252  return false;
253  }
254 
255  $id = $image->getVar('image_id');
256  $sql = sprintf("DELETE FROM %s WHERE image_id = %u", $this->db->prefix('image'), $id);
257  if (!$result = $this->db->query($sql)) {
258  return false;
259  }
260  $sql = sprintf("DELETE FROM %s WHERE image_id = %u", $this->db->prefix('imagebody'), $id);
261  $this->db->query($sql);
262  return true;
263  }
264 
273  function getObjects($criteria = null, $id_as_key = false, $getbinary = false)
274  {
275  $ret = array();
276  $limit = $start = 0;
277  if ($getbinary) {
278  $sql = 'SELECT i.*, b.image_body FROM ' . $this->db->prefix('image') . ' i LEFT JOIN ' . $this->db->prefix('imagebody') . ' b ON b.image_id=i.image_id';
279  } else {
280  $sql = 'SELECT * FROM ' . $this->db->prefix('image');
281  }
282  if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
283  $sql .= ' ' . $criteria->renderWhere();
284  $sort = $criteria->getSort() == '' ? 'image_weight' : $criteria->getSort();
285  $sql .= ' ORDER BY ' . $sort . ' ' . $criteria->getOrder();
286  $limit = $criteria->getLimit();
287  $start = $criteria->getStart();
288  }
289  $result = $this->db->query($sql, $limit, $start);
290  if (!$result) {
291  return $ret;
292  }
293  while ($myrow = $this->db->fetchArray($result)) {
294  $image = new XoopsImage();
295  $image->assignVars($myrow);
296  if (!$id_as_key) {
297  $ret[] =& $image;
298  } else {
299  $ret[$myrow['image_id']] =& $image;
300  }
301  unset($image);
302  }
303  return $ret;
304  }
305 
312  function getCount($criteria = null)
313  {
314  $sql = 'SELECT COUNT(*) FROM ' . $this->db->prefix('image');
315  if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
316  $sql .= ' ' . $criteria->renderWhere();
317  }
318  if (!$result =& $this->db->query($sql)) {
319  return 0;
320  }
321  list ($count) = $this->db->fetchRow($result);
322  return $count;
323  }
324 
332  function getList($imgcat_id, $image_display = null)
333  {
334  $criteria = new CriteriaCompo(new Criteria('imgcat_id', intval($imgcat_id)));
335  if (isset($image_display)) {
336  $criteria->add(new Criteria('image_display', intval($image_display)));
337  }
338  $images = $this->getObjects($criteria, false, true);
339  $ret = array();
340  foreach (array_keys($images) as $i) {
341  $ret[$images[$i]->getVar('image_name')] = $images[$i]->getVar('image_nicename');
342  }
343  return $ret;
344  }
345 }
346 ?>