Beispiel #1
0
 /**
  * Get a list of items suitable for a flexigrid display
  */
 public function listAction()
 {
     $type = $this->_getParam('type');
     $this->typeManager->includeType($type);
     $items = $this->getList($type);
     $dummy = new $type();
     $listFields = $dummy->listFields();
     $asArr = array();
     $aggrRow = array();
     foreach ($items as $item) {
         $cell = array();
         foreach ($listFields as $name => $display) {
             if (method_exists($item, $name)) {
                 $cell[] = $item->{$name}();
             } else {
                 $cell[] = $item->{$name};
             }
         }
         $row = array('id' => $item->id, 'cell' => $cell);
         $asArr[] = $row;
     }
     $obj = new stdClass();
     $obj->page = ifset($this->_getAllParams(), 'page', 1);
     $this->_getParam('rp', za()->getConfig('project_list_size', 10));
     $obj->total = $this->view->totalCount;
     $obj->rows = $asArr;
     $this->getResponse()->setHeader('Content-type', 'text/x-json');
     $json = Zend_Json::encode($obj);
     echo $json;
 }
Beispiel #2
0
 /**
  * Saves an object with the given parameters.
  * If the param['id'] field is filled out, then that object is loaded
  * and updated, otherwise a new object of $type is created
  *
  * @param array $object
  * @param string $type
  * @return The created object
  */
 public function saveObject($params, $type = '')
 {
     $oldObject = null;
     if (is_array($params)) {
         $this->typeManager->includeType(ucfirst($type));
         if (isset($params['id'])) {
             $object = $this->getById((int) $params['id'], $type);
         } else {
             $object = new $type();
             za()->inject($object);
         }
         /* @var $object MappedObject */
         if ($object instanceof MappedObject) {
             $object->bind($params);
         } else {
             throw new InvalidModelException(array("Class " . get_class($object) . " must subclass MappedObject to use saveObject"));
         }
         // Validate
         $modelValidator = new ModelValidator();
         if (!$modelValidator->isValid($object)) {
             throw new InvalidModelException($modelValidator->getMessages());
         }
     } else {
         $object = $params;
     }
     if ($object == null) {
         throw new Exception("Cannot save null object");
     }
     $refObj = new ReflectionObject($object);
     if ($refObj->hasProperty('updated')) {
         $object->updated = date('Y-m-d H:i:s', time());
     }
     if ($refObj->hasProperty('modifier')) {
         $object->modifier = za()->getUser()->getUsername();
     }
     if (get_class($object) == 'stdClass') {
         throw new Exception("Cannot save stdClass");
     }
     $success = false;
     $this->triggerObjectEvent($object, 'beforeSave');
     if ($object->id) {
         $success = $this->updateObject($object);
     } else {
         $success = $this->createObject($object);
     }
     $this->triggerObjectEvent($object, 'saved');
     if ($success) {
         if ($this->searchService != null) {
             $this->searchService->index($object);
         }
         return $object;
     }
     return null;
 }
 /**
  * There's some built in services that we're going to load first. 
  *
  * @return an array of services created
  */
 private function loadDefaultServices()
 {
     $services = new ArrayObject();
     $dbService = new DbService();
     if (isset($this->config['services']['DbService'])) {
         $dbService->configure($this->config['services']['DbService']);
     }
     $this->injector->registerService($dbService);
     $services[] = $dbService;
     $service = new TypeManager();
     if (isset($this->config['services']['TypeManager'])) {
         $service->configure(ifset($this->config['services'], 'TypeManager', array()));
     }
     $this->injector->registerService($service);
     $services[] = $service;
     $service = new SearchService();
     if (isset($this->config['services']['SearchService'])) {
         $service->configure($this->config['services']['SearchService']);
     }
     $this->injector->registerService($service);
     $services[] = $service;
     $authService = new AuthService();
     if (isset($this->config['services']['AuthService'])) {
         $authService->configure($this->config['services']['AuthService']);
     }
     $this->injector->registerService($authService);
     $services[] = $authService;
     $authComponent = new AuthComponent();
     if (isset($this->config['services']['AuthComponent'])) {
         $authComponent->configure($this->config['services']['AuthComponent']);
     }
     $this->injector->registerService($authComponent);
     $services[] = $authComponent;
     $tasksService = new ScheduledTasksService();
     $this->injector->registerService($tasksService);
     $services[] = $tasksService;
     $accessService = new AccessService();
     $this->injector->registerService($accessService);
     $services[] = $accessService;
     $cacheService = new CacheService();
     $this->injector->registerService($cacheService);
     $services[] = $cacheService;
     if (isset($this->config['services']['CacheService'])) {
         $cacheService->configure($this->config['services']['CacheService']);
     }
     $service = new VersioningService();
     $this->injector->registerService($service);
     $services[] = $service;
     if (isset($this->config['services']['VersioningService'])) {
         $service->configure($this->config['services']['VersioningService']);
     }
     return $services;
 }