/** * Returns if there are errors or not. * * @param string $attribute * * @return bool */ protected function hasErrors($attribute = 'errors') { return $this->resultModel->hasErrors($attribute); }
/** * Import data model. * * @param Data $model * @param bool $force if set to true items not in the import will be deleted * * @return Result */ private function importDataModel(Data $model, $force) { // Import schema $locales = $model->getAttribute('locales', $force); $localesImportResult = Craft::app()->schematic_locales->import($locales); $plugins = $model->getAttribute('plugins', $force); $pluginImportResult = Craft::app()->schematic_plugins->import($plugins); $fields = $model->getAttribute('fields'); $fieldImportResult = Craft::app()->schematic_fields->import($fields, $force); $assetSources = $model->getAttribute('assetSources'); $assetSourcesImportResult = Craft::app()->schematic_assetSources->import($assetSources, $force); $globalSets = $model->getAttribute('globalSets'); $globalSetsImportResult = Craft::app()->schematic_globalSets->import($globalSets, $force); $sections = $model->getAttribute('sections'); $sectionImportResult = Craft::app()->schematic_sections->import($sections, $force); $categoryGroups = $model->getAttribute('categoryGroups'); $categoryGroupImportResult = Craft::app()->schematic_categoryGroups->import($categoryGroups, $force); $tagGroups = $model->getAttribute('tagGroups'); $tagGroupImportResult = Craft::app()->schematic_tagGroups->import($tagGroups, $force); $userGroups = $model->getAttribute('userGroups'); $userGroupImportResult = Craft::app()->schematic_userGroups->import($userGroups, $force); $users = $model->getAttribute('users'); $userImportResult = Craft::app()->schematic_users->import($users, true); $fields = $model->getAttribute('fields'); $fieldImportResultFinal = Craft::app()->schematic_fields->import($fields, $force); // Element index settings are supported from Craft 2.5 if (version_compare(CRAFT_VERSION, '2.5', '>=')) { $elementIndexSettingsImportResult = Craft::app()->schematic_elementIndexSettings->import($model->getAttribute('elementIndexSettings'), $force); } // Verify results $result = new Result(); $result->consume($localesImportResult); $result->consume($pluginImportResult); $result->consume($fieldImportResult); $result->consume($assetSourcesImportResult); $result->consume($globalSetsImportResult); $result->consume($sectionImportResult); $result->consume($categoryGroupImportResult); $result->consume($tagGroupImportResult); $result->consume($userGroupImportResult); $result->consume($userImportResult); $result->consume($fieldImportResultFinal); // Element index settings are supported from Craft 2.5 if (version_compare(CRAFT_VERSION, '2.5', '>=')) { $result->consume($elementIndexSettingsImportResult); } $services = Craft::app()->plugins->call('registerMigrationService'); $this->doImport($result, $model->pluginData, $services, $force); return $result; }
/** * Consumes the errors listed in an existing result and appends them to this result. * * @param Result $result The result to consume */ public function consume(Result $result) { if ($result->hasErrors('errors')) { $this->addErrors(['errors' => $result->getErrors('errors')]); } }