/** * Processes the finish action of this step. This will write the model to the system * @return null */ public function finish() { $defineModel = $this->wizard->getValue(self::FIELD_DEFINE_MODEL); $modelTable = $this->wizard->getModelTable(); $modelClass = $this->wizard->getVariable(BuilderWizard::VARIABLE_MODEL_CLASS); $dataClass = $this->wizard->getVariable(BuilderWizard::VARIABLE_DATA_CLASS); try { $modelBuilder = new ModelBuilder(); $model = $modelBuilder->createModel($modelTable, $modelClass, $dataClass); $modelBuilder->registerModel($model, $defineModel); $request = $this->wizard->getRequest(); $response = $this->wizard->getResponse(); $this->wizard->reset(); $response->setRedirect($this->wizard->getCancelUrl()); } catch (Exception $exception) { Zibo::getInstance()->runEvent(Zibo::EVENT_LOG, $exception->getMessage(), $exception->getTraceAsString()); $this->exception = $exception; } return null; }
/** * Gets the defined models in the system * @param boolean $includeCustomModels * @param boolean $includeModuleModels * @param boolean $includeLocalizedModels * @param boolean $includeLinkModels * @return array Array with Model objects */ private function getModels($includeCustomModels, $includeModuleModels, $includeLocalizedModels, $includeLinkModels) { if (!$includeCustomModels && !$includeModuleModels && !$includeLocalizedModels && !$includeLinkModels) { return array(); } $modelBuilder = new ModelBuilder(); if (!$includeModuleModels && !$includeLocalizedModels && !$includeLinkModels) { return $modelBuilder->getBuilderModels(); } if (!$includeCustomModels && !$includeLocalizedModels && !$includeLinkModels) { return $modelBuilder->getModuleModels(); } $models = ModelManager::getInstance()->getModels(true); if ($includeCustomModels && $includeModuleModels && $includeLocalizedModels && $includeLinkModels) { return $models; } $builderModels = $modelBuilder->getBuilderModels(); $moduleModels = $modelBuilder->getModuleModels(); if (!$includeCustomModels) { foreach ($models as $modelName => $model) { if (array_key_exists($modelName, $builderModels) && (!$includeModuleModels || !array_key_exists($modelName, $moduleModels))) { unset($models[$modelName]); } } } if (!$includeModuleModels) { foreach ($models as $modelName => $model) { if (array_key_exists($modelName, $moduleModels) && (!$includeCustomModels || !array_key_exists($modelName, $builderModels))) { unset($models[$modelName]); } } } if (!$includeLocalizedModels) { foreach ($models as $modelName => $model) { if (preg_match('/^(.*)' . LocalizedModel::MODEL_SUFFIX . '$/', $modelName)) { unset($models[$modelName]); } } } if (!$includeLinkModels) { foreach ($models as $modelName => $model) { if (!array_key_exists($modelName, $builderModels) && !array_key_exists($modelName, $moduleModels) && !preg_match('/^(.*)' . LocalizedModel::MODEL_SUFFIX . '$/', $modelName)) { unset($models[$modelName]); } } } return $models; }