XOOPS 2.5.6  Final
 All Classes Namespaces Files Functions Variables Pages
configitem.php
Go to the documentation of this file.
1 <?php
19 defined('XOOPS_ROOT_PATH') or die('Restricted access');
20 
24 define('XOOPS_CONF', 1);
25 define('XOOPS_CONF_USER', 2);
26 define('XOOPS_CONF_METAFOOTER', 3);
27 define('XOOPS_CONF_CENSOR', 4);
28 define('XOOPS_CONF_SEARCH', 5);
29 define('XOOPS_CONF_MAILER', 6);
30 define('XOOPS_CONF_AUTH', 7);
40 {
41 
48  var $_confOptions = array();
49 
53  function XoopsConfigItem()
54  {
55  $this->initVar('conf_id', XOBJ_DTYPE_INT, null, false);
56  $this->initVar('conf_modid', XOBJ_DTYPE_INT, null, false);
57  $this->initVar('conf_catid', XOBJ_DTYPE_INT, null, false);
58  $this->initVar('conf_name', XOBJ_DTYPE_OTHER);
59  $this->initVar('conf_title', XOBJ_DTYPE_TXTBOX);
60  $this->initVar('conf_value', XOBJ_DTYPE_TXTAREA);
61  $this->initVar('conf_desc', XOBJ_DTYPE_OTHER);
62  $this->initVar('conf_formtype', XOBJ_DTYPE_OTHER);
63  $this->initVar('conf_valuetype', XOBJ_DTYPE_OTHER);
64  $this->initVar('conf_order', XOBJ_DTYPE_INT);
65  }
66 
70  function id($format = 'N')
71  {
72  return $this->getVar('conf_id', $format);
73  }
74 
78  function conf_id($format = '')
79  {
80  return $this->getVar('conf_id', $format);
81  }
82 
86  function conf_modid($format = '')
87  {
88  return $this->getVar('conf_modid', $format);
89  }
90 
94  function conf_catid($format = '')
95  {
96  return $this->getVar('conf_catid', $format);
97  }
98 
102  function conf_name($format = '')
103  {
104  return $this->getVar('conf_name', $format);
105  }
106 
110  function conf_title($format = '')
111  {
112  return $this->getVar('conf_title', $format);
113  }
114 
118  function conf_value($format = '')
119  {
120  return $this->getVar('conf_value', $format);
121  }
122 
126  function conf_desc($format = '')
127  {
128  return $this->getVar('conf_desc', $format);
129  }
130 
134  function conf_formtype($format = '')
135  {
136  return $this->getVar('conf_formtype', $format);
137  }
138 
142  function conf_valuetype($format = '')
143  {
144  return $this->getVar('conf_valuetype', $format);
145  }
146 
150  function conf_order($format = '')
151  {
152  return $this->getVar('conf_order', $format);
153  }
154 
160  function getConfValueForOutput()
161  {
162  switch ($this->getVar('conf_valuetype')) {
163  case 'int':
164  return intval($this->getVar('conf_value', 'N'));
165  break;
166  case 'array':
167  $value = @unserialize($this->getVar('conf_value', 'N'));
168  return $value ? $value : array();
169  case 'float':
170  $value = $this->getVar('conf_value', 'N');
171  return (float) $value;
172  break;
173  case 'textarea':
174  return $this->getVar('conf_value');
175  default:
176  return $this->getVar('conf_value', 'N');
177  break;
178  }
179  }
180 
187  function setConfValueForInput(&$value, $force_slash = false)
188  {
189  switch ($this->getVar('conf_valuetype')) {
190  case 'array':
191  if (!is_array($value)) {
192  $value = explode('|', trim($value));
193  }
194  $this->setVar('conf_value', serialize($value), $force_slash);
195  break;
196  case 'text':
197  $this->setVar('conf_value', trim($value), $force_slash);
198  break;
199  default:
200  $this->setVar('conf_value', $value, $force_slash);
201  break;
202  }
203  }
204 
210  function setConfOptions($option)
211  {
212  if (is_array($option)) {
213  $count = count($option);
214  for($i = 0; $i < $count; $i++) {
215  $this->setConfOptions($option[$i]);
216  }
217  } else {
218  if (is_object($option)) {
219  $this->_confOptions[] =& $option;
220  }
221  }
222  }
223 
229  function &getConfOptions()
230  {
231  return $this->_confOptions;
232  }
233 
239  function clearConfOptions() {
240  $this->_confOptions = array();
241  }
242 }
243 
254 {
262  function &create($isNew = true)
263  {
264  $config = new XoopsConfigItem();
265  if ($isNew) {
266  $config->setNew();
267  }
268  return $config;
269  }
270 
277  function &get($id)
278  {
279  $config = false;
280  $id = intval($id);
281  if ($id > 0) {
282  $sql = 'SELECT * FROM ' . $this->db->prefix('config') . ' WHERE conf_id=' . $id;
283  if (! $result = $this->db->query($sql)) {
284  return $config;
285  }
286  $numrows = $this->db->getRowsNum($result);
287  if ($numrows == 1) {
288  $myrow = $this->db->fetchArray($result);
289  $config = new XoopsConfigItem();
290  $config->assignVars($myrow);
291  }
292  }
293  return $config;
294  }
295 
302  function insert(&$config)
303  {
307  if (!is_a($config, 'xoopsconfigitem')) {
308  return false;
309  }
310  if (!$config->isDirty()) {
311  return true;
312  }
313  if (!$config->cleanVars()) {
314  return false;
315  }
316  foreach ($config->cleanVars as $k => $v) {
317  ${$k} = $v;
318  }
319  if ($config->isNew()) {
320  $conf_id = $this->db->genId('config_conf_id_seq');
321  $sql = sprintf("INSERT INTO %s (conf_id, conf_modid, conf_catid, conf_name, conf_title, conf_value, conf_desc, conf_formtype, conf_valuetype, conf_order) VALUES (%u, %u, %u, %s, %s, %s, %s, %s, %s, %u)", $this->db->prefix('config'), $conf_id, $conf_modid, $conf_catid, $this->db->quoteString($conf_name), $this->db->quoteString($conf_title), $this->db->quoteString($conf_value), $this->db->quoteString($conf_desc), $this->db->quoteString($conf_formtype), $this->db->quoteString($conf_valuetype), $conf_order);
322  } else {
323  $sql = sprintf("UPDATE %s SET conf_modid = %u, conf_catid = %u, conf_name = %s, conf_title = %s, conf_value = %s, conf_desc = %s, conf_formtype = %s, conf_valuetype = %s, conf_order = %u WHERE conf_id = %u", $this->db->prefix('config'), $conf_modid, $conf_catid, $this->db->quoteString($conf_name), $this->db->quoteString($conf_title), $this->db->quoteString($conf_value), $this->db->quoteString($conf_desc), $this->db->quoteString($conf_formtype), $this->db->quoteString($conf_valuetype), $conf_order, $conf_id);
324  }
325  if (!$result = $this->db->query($sql)) {
326  return false;
327  }
328  if (empty($conf_id)) {
329  $conf_id = $this->db->getInsertId();
330  }
331  $config->assignVar('conf_id', $conf_id);
332  return true;
333  }
334 
341  function delete(&$config)
342  {
346  if (!is_a($config, 'xoopsconfigitem')) {
347  return false;
348  }
349  $sql = sprintf("DELETE FROM %s WHERE conf_id = %u", $this->db->prefix('config'), $config->getVar('conf_id'));
350  if (!$result = $this->db->query($sql)) {
351  return false;
352  }
353  return true;
354  }
355 
363  function getObjects($criteria = null, $id_as_key = false)
364  {
365  $ret = array();
366  $limit = $start = 0;
367  $sql = 'SELECT * FROM ' . $this->db->prefix('config');
368  if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
369  $sql .= ' ' . $criteria->renderWhere();
370  $sql .= ' ORDER BY conf_order ASC';
371  $limit = $criteria->getLimit();
372  $start = $criteria->getStart();
373  }
374  $result = $this->db->query($sql, $limit, $start);
375  if (!$result) {
376  return false;
377  }
378  while ($myrow = $this->db->fetchArray($result)) {
379  $config = new XoopsConfigItem();
380  $config->assignVars($myrow);
381  if (!$id_as_key) {
382  $ret[] =& $config;
383  } else {
384  $ret[$myrow['conf_id']] = & $config;
385  }
386  unset($config);
387  }
388  return $ret;
389  }
390 
397  function getCount($criteria = null)
398  {
399  $ret = array();
400  $limit = $start = 0;
401  $sql = 'SELECT * FROM ' . $this->db->prefix('config');
402  if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) {
403  $sql .= ' ' . $criteria->renderWhere();
404  }
405  $result = & $this->db->query($sql);
406  if (!$result) {
407  return false;
408  }
409  list ($count) = $this->db->fetchRow($result);
410  return $count;
411  }
412 }
413 
414 ?>