/** * @param ArtVandelay_ExportedDataModel $model * @param bool $force if set to true items not in the import will be deleted * @return ArtVandelay_ResultModel */ private function importFromExportedDataModel(ArtVandelay_ExportedDataModel $model, $force) { $result = new ArtVandelay_ResultModel(); if ($model !== null) { $pluginImportResult = craft()->artVandelay_plugins->import($model->plugins); $assetImportResult = craft()->artVandelay_assets->import($model->assets); $categoryImportResult = craft()->artVandelay_categories->import($model->categories); $fieldImportResult = craft()->artVandelay_fields->import($model->fields, $force); $globalImportResult = craft()->artVandelay_globals->import($model->globals, $force); $sectionImportResult = craft()->artVandelay_sections->import($model->sections, $force); $tagImportResult = craft()->artVandelay_tags->import($model->tags); $userGroupImportResult = craft()->artVandelay_userGroups->import($model->userGroups, $force); $result->consume($pluginImportResult); $result->consume($assetImportResult); $result->consume($categoryImportResult); $result->consume($fieldImportResult); $result->consume($globalImportResult); $result->consume($sectionImportResult); $result->consume($tagImportResult); $result->consume($userGroupImportResult); // run plugin imports through hook $services = craft()->plugins->callFirst('registerMigrationService'); if (is_array($services)) { foreach ($services as $handle => $service) { $service->import($model->pluginData[$handle], $force); } } } return $result; }
public function actionImport() { $this->requirePostRequest(); $json = craft()->request->getParam('data', '{}'); $data = ArtVandelay_ExportedDataModel::fromJson($json); $result = new ArtVandelay_ResultModel(); if ($data !== null) { $assetImportResult = craft()->artVandelay_assets->import($data->assets); $categoryImportResult = craft()->artVandelay_categories->import($data->categories); $fieldImportResult = craft()->artVandelay_fields->import($data->fields); $globalImportResult = craft()->artVandelay_globals->import($data->globals); $sectionImportResult = craft()->artVandelay_sections->import($data->sections); $tagImportResult = craft()->artVandelay_tags->import($data->tags); $result->consume($assetImportResult); $result->consume($categoryImportResult); $result->consume($fieldImportResult); $result->consume($globalImportResult); $result->consume($sectionImportResult); $result->consume($tagImportResult); if ($result->ok) { craft()->userSession->setNotice('All done.'); $this->redirectToPostedUrl(); return; } } else { $errors[] = 'Invalid JSON.'; } craft()->userSession->setError('Get *out*! ' . implode(', ', $result->errors)); craft()->urlManager->setRouteVariables(array('groupOptions' => $this->_getGroupOptions(), 'entryTypeOptions' => $this->_getEntryTypeOptions())); }
private function importFromExportedDataModel($model) { $result = new ArtVandelay_ResultModel(); if ($model !== null) { $assetImportResult = craft()->artVandelay_assets->import($model->assets); $categoryImportResult = craft()->artVandelay_categories->import($model->categories); $fieldImportResult = craft()->artVandelay_fields->import($model->fields); $globalImportResult = craft()->artVandelay_globals->import($model->globals); $sectionImportResult = craft()->artVandelay_sections->import($model->sections); $tagImportResult = craft()->artVandelay_tags->import($model->tags); $result->consume($assetImportResult); $result->consume($categoryImportResult); $result->consume($fieldImportResult); $result->consume($globalImportResult); $result->consume($sectionImportResult); $result->consume($tagImportResult); } return $result; }