/** * 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; }
/** * 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; }