XOOPS 2.5.6  Final
 All Classes Namespaces Files Functions Variables Pages
xoopsmodel.php
Go to the documentation of this file.
1 <?php
20 defined('XOOPS_ROOT_PATH') or die('Restricted access');
21 
22 include_once XOOPS_ROOT_PATH . '/kernel/object.php';
30 {
34  var $handlers = array();
35 
39  function __construct()
40  {
41  }
42 
46  function XoopsModelFactory()
47  {
48  }
49 
55  function getInstance()
56  {
57  static $instance;
58  if (!isset($instance)) {
59  $class = __CLASS__;
60  $instance = new $class();
61  }
62  return $instance;
63  }
64 
74  function loadHandler($ohander, $name, $args = null)
75  {
76  static $handlers;
77  if (!isset($handlers[$name])) {
78  if (file_exists($file = dirname(__FILE__) . '/' . $name . '.php')) {
79  include_once $file;
80  $className = 'XoopsModel' . ucfirst($name);
81  $handler = new $className();
82  } else if (xoops_load('model', 'framework')) {
83  $handler = XoopsModel::loadHandler($name);
84  }
85  if (!is_object($handler)) {
86  trigger_error('Handler not found in file ' . __FILE__ . 'at line ' . __LINE__, E_USER_WARNING);
87  return null;
88  }
89  $handlers[$name] = $handler;
90  }
91  $handlers[$name]->setHandler($ohander);
92  if (!empty($args) && is_array($args) && is_a($handlers[$name], 'XoopsModelAbstract')) {
93  $handlers[$name]->setVars($args);
94  }
95  return $handlers[$name];
96  }
97 }
98 
106 {
114  var $handler;
115 
123  function __construct($args = null, $handler = null)
124  {
125  $this->setHandler($handler);
126  $this->setVars($args);
127  }
128 
136  function XoopsObjectAbstract($args = null, $handler = null)
137  {
138  $this->__construct($args, $handler);
139  }
140 
148  {
149  if (is_object($handler) && is_a($handler, 'XoopsPersistableObjectHandler')) {
150  $this->handler =& $handler;
151  return true;
152  }
153  return false;
154  }
155 
162  function setVars($args)
163  {
164  if (!empty($args) && is_array($args)) {
165  foreach ($args as $key => $value) {
166  $this->$key = $value;
167  }
168  }
169  return true;
170  }
171 }
172 
173 ?>