XOOPS 2.5.6  Final
 All Classes Namespaces Files Functions Variables Pages
imageset.php
Go to the documentation of this file.
1 <?php
19 defined('XOOPS_ROOT_PATH') or die('Restricted access');
20 
34 {
35 
36  function XoopsImageset()
37  {
38  $this->XoopsObject();
39  $this->initVar('imgset_id', XOBJ_DTYPE_INT, null, false);
40  $this->initVar('imgset_name', XOBJ_DTYPE_TXTBOX, null, true, 50);
41  $this->initVar('imgset_refid', XOBJ_DTYPE_INT, 0, false);
42  }
43 
47  function id($format = 'N')
48  {
49  return $this->getVar('imgset_id', $format);
50  }
51 
55  function imgset_id($format = '')
56  {
57  return $this->getVar('imgset_id', $format);
58  }
59 
63  function imgset_name($format = '')
64  {
65  return $this->getVar('imgset_name', $format);
66  }
67 
71  function imgset_refid($format = '')
72  {
73  return $this->getVar('imgset_refid', $format);
74  }
75 
76 }
77 
87 {
94  function &create($isNew = true)
95  {
96  $imgset = new XoopsImageset();
97  if ($isNew) {
98  $imgset->setNew();
99  }
100  return $imgset;
101  }
102 
110  function &get($id)
111  {
112  $id = intval($id);
113  $imgset = false;
114  if ($id > 0) {
115  $sql = 'SELECT * FROM ' . $this->db->prefix('imgset') . ' WHERE imgset_id=' . $id;
116  if (!$result = $this->db->query($sql)) {
117  return $imgset;
118  }
119  $numrows = $this->db->getRowsNum($result);
120  if ($numrows == 1) {
121  $imgset = new XoopsImageset();
122  $imgset->assignVars($this->db->fetchArray($result));
123  }
124  }
125  return $imgset;
126  }
127 
134  function insert(&$imgset)
135  {
139  if (!is_a($imgset, 'xoopsimageset')) {
140  return false;
141  }
142 
143  if (!$imgset->isDirty()) {
144  return true;
145  }
146  if (!$imgset->cleanVars()) {
147  return false;
148  }
149  foreach ($imgset->cleanVars as $k => $v) {
150  ${$k} = $v;
151  }
152  if ($imgset->isNew()) {
153  $imgset_id = $this->db->genId('imgset_imgset_id_seq');
154  $sql = sprintf("INSERT INTO %s (imgset_id, imgset_name, imgset_refid) VALUES (%u, %s, %u)", $this->db->prefix('imgset'), $imgset_id, $this->db->quoteString($imgset_name), $imgset_refid);
155  } else {
156  $sql = sprintf("UPDATE %s SET imgset_name = %s, imgset_refid = %u WHERE imgset_id = %u", $this->db->prefix('imgset'), $this->db->quoteString($imgset_name), $imgset_refid, $imgset_id);
157  }
158  if (!$result = $this->db->query($sql)) {
159  return false;
160  }
161  if (empty($imgset_id)) {
162  $imgset_id = $this->db->getInsertId();
163  }
164  $imgset->assignVar('imgset_id', $imgset_id);
165  return true;
166  }
167 
174  function delete(&$imgset)
175  {
179  if (!is_a($imgset, 'xoopsimageset')) {
180  return false;
181  }
182  $sql = sprintf("DELETE FROM %s WHERE imgset_id = %u", $this->db->prefix('imgset'), $imgset->getVar('imgset_id'));
183  if (!$result = $this->db->query($sql)) {
184  return false;
185  }
186  $sql = sprintf("DELETE FROM %s WHERE imgset_id = %u", $this->db->prefix('imgset_tplset_link'), $imgset->getVar('imgset_id'));
187  $this->db->query($sql);
188  return true;
189  }
190 
199  function getObjects($criteria = null, $id_as_key = false)
200  {
201  $ret = array();
202  $limit = $start = 0;
203  $sql = 'SELECT DISTINCT i.* FROM ' . $this->db->prefix('imgset') . ' i LEFT JOIN ' . $this->db->prefix('imgset_tplset_link') . ' l ON l.imgset_id=i.imgset_id';
204  if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
205  $sql .= ' ' . $criteria->renderWhere();
206  $limit = $criteria->getLimit();
207  $start = $criteria->getStart();
208  }
209  $result = $this->db->query($sql, $limit, $start);
210  if (!$result) {
211  return $ret;
212  }
213  while ($myrow = $this->db->fetchArray($result)) {
214  $imgset = new XoopsImageset();
215  $imgset->assignVars($myrow);
216  if (!$id_as_key) {
217  $ret[] =& $imgset;
218  } else {
219  $ret[$myrow['imgset_id']] =& $imgset;
220  }
221  unset($imgset);
222  }
223  return $ret;
224  }
225 
233  function linkThemeset($imgset_id, $tplset_name)
234  {
235  $imgset_id = intval($imgset_id);
236  $tplset_name = trim($tplset_name);
237  if ($imgset_id <= 0 || $tplset_name == '') {
238  return false;
239  }
240  if (!$this->unlinkThemeset($imgset_id, $tplset_name)) {
241  return false;
242  }
243  $sql = sprintf("INSERT INTO %s (imgset_id, tplset_name) VALUES (%u, %s)", $this->db->prefix('imgset_tplset_link'), $imgset_id, $this->db->quoteString($tplset_name));
244  $result = $this->db->query($sql);
245  if (!$result) {
246  return false;
247  }
248  return true;
249  }
250 
258  function unlinkThemeset($imgset_id, $tplset_name)
259  {
260  $imgset_id = intval($imgset_id);
261  $tplset_name = trim($tplset_name);
262  if ($imgset_id <= 0 || $tplset_name == '') {
263  return false;
264  }
265  $sql = sprintf("DELETE FROM %s WHERE imgset_id = %u AND tplset_name = %s", $this->db->prefix('imgset_tplset_link'), $imgset_id, $this->db->quoteString($tplset_name));
266  $result = $this->db->query($sql);
267  if (!$result) {
268  return false;
269  }
270  return true;
271  }
272 
280  function getList($refid = null, $tplset = null)
281  {
282  $criteria = new CriteriaCompo();
283  if (isset($refid)) {
284  $criteria->add(new Criteria('imgset_refid', intval($refid)));
285  }
286  if (isset($tplset)) {
287  $criteria->add(new Criteria('tplset_name', $tplset));
288  }
289  $imgsets = $this->getObjects($criteria, true);
290  $ret = array();
291  foreach (array_keys($imgsets) as $i) {
292  $ret[$i] = $imgsets[$i]->getVar('imgset_name');
293  }
294  return $ret;
295  }
296 }
297 ?>