示例#1
0
 public static function dispatch_ajax()
 {
     $id = joosRequest::int('id', 0);
     $page = joosRequest::int('page', false, $_GET);
     $page = $page ? $page : 0;
     $id = $id ? $id : $page;
     $task = joosRequest::param('task', 'index');
     $option = joosRequest::param('option');
     $class = 'actionsAjaxAdmin' . ucfirst($option);
     JDEBUG ? joosDebug::add($class . '::' . $task) : null;
     // в контроллере можно прописать общие действия необходимые при любых действиях контроллера - они будут вызваны первыми, например подклбчение можделей, скриптов и т.д.
     method_exists($class, 'action_before') ? call_user_func_array($class . '::action_before', array()) : null;
     $events_name = sprintf('ajax.controller.admin.*');
     joosEvents::has_events($events_name) ? joosEvents::fire_events($events_name, $class, $task) : null;
     $events_name = sprintf('ajax.controller.admin.%s.*', $class);
     joosEvents::has_events($events_name) ? joosEvents::fire_events($events_name, $task) : null;
     $events_name = sprintf('ajax.controller.admin.%s.%s', $class, $task);
     joosEvents::has_events($events_name) ? joosEvents::fire_events($events_name) : null;
     if (method_exists($class, $task)) {
         $result = call_user_func_array($class . '::' . $task, array($option, $id, $page, $task));
     } else {
         $result = call_user_func_array($class . '::index', array($option, $id, $page, $task));
     }
     // контроллер может содержать метод вызываемый после окончания работы основного контроллера, но тоже вызовется
     method_exists($class, 'action_after') ? call_user_func_array($class . '::action_after', array($task, $result)) : null;
     if (is_array($result)) {
         echo json_encode($result);
     } elseif (is_string($result)) {
         echo $result;
     }
 }
示例#2
0
 /**
  * Загрузка данных в модель непосредственно из БД по значению ключевого поля
  * В случае успешного выполнения заполняет поля модели значениями из БД выбранными по ключевому полю
  *
  * @param integer $oid значение уникального ключевого поля, по которому необходимо делать выборку в БД
  *
  * @return boolean результат заполнения свойств модели
  */
 public function load($oid)
 {
     // сброс установок для обнуления назначенных ранее свойств объекта ( проблема с isset($obj->id) )
     $this->reset();
     $query = 'SELECT * FROM ' . $this->_tbl . ' WHERE ' . $this->_tbl_key . ' = ' . $this->_db->get_quoted($oid);
     $result = $this->_db->set_query($query)->load_object($this);
     $events_name = 'model.on_load.' . $this->get_class_name();
     joosEvents::has_events($events_name) ? joosEvents::fire_events($events_name, $result, $this) : null;
     return $result;
 }