Пример #1
0
 /**
  *
  * @return XenForo_ControllerResponse_Abstract
  */
 public function actionImport()
 {
     $fieldModel = $this->_getFieldModel();
     if ($this->isConfirmedPost()) {
         $input = $this->_input->filter(array('target' => XenForo_Input::STRING, 'display_group' => XenForo_Input::STRING, 'overwrite_field_id' => XenForo_Input::STRING));
         $upload = XenForo_Upload::getUploadedFile('upload');
         if (!$upload) {
             return $this->responseError(new XenForo_Phrase('please_upload_valid_field_xml_file'));
         }
         if ($input['target'] == 'overwrite') {
             $field = $this->_getFieldOrError($input['overwrite_field_id']);
             $input['display_group'] = $field['display_group'];
         }
         $document = $this->getHelper('Xml')->getXmlFromFile($upload);
         $caches = $fieldModel->importFieldXml($document, $input['display_group'], $input['overwrite_field_id']);
         if (XenForo_Application::$versionId < 1020000) {
             return XenForo_CacheRebuilder_Abstract::getRebuilderResponse($this, $caches, XenForo_Link::buildAdminLink('user-fields'));
         } else {
             return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildAdminLink('user-fields'));
         }
     } else {
         $fieldModel = $this->_getFieldModel();
         $viewParams = array('displayGroups' => $fieldModel->getUserFieldGroups(), 'fields' => $fieldModel->prepareUserFields($fieldModel->getUserFields()));
         return $this->responseView('Waindigo_CustomFields_ViewAdmin_UserField_Import', 'user_field_import', $viewParams);
     }
 }
Пример #2
0
 public function actionImport()
 {
     $userGroupModel = $this->_getUserGroupModel();
     if ($this->isConfirmedPost()) {
         $input = $this->_input->filter(array('target' => XenForo_Input::STRING, 'overwrite_user_group_id' => XenForo_Input::UINT));
         $upload = XenForo_Upload::getUploadedFile('upload');
         if (!$upload) {
             return $this->responseError(new XenForo_Phrase('th_please_upload_valid_user_group_xml_file_usergroups'));
         }
         if ($input['target'] == 'overwrite') {
             $this->_getUserGroupOrError($input['overwrite_user_group_id']);
         } else {
             $input['overwrite_user_group_id'] = 0;
         }
         $document = $this->getHelper('Xml')->getXmlFromFile($upload);
         $caches = $userGroupModel->importUserGroupXml($document, $input['overwrite_user_group_id']);
         return XenForo_CacheRebuilder_Abstract::getRebuilderResponse($this, $caches, XenForo_Link::buildAdminLink('user-groups'));
     } else {
         $viewParams = array('userGroups' => $userGroupModel->getAllUserGroups());
         return $this->responseView('ThemeHouse_UserGroups_ViewAdmin_UserGroup_Import', 'th_user_group_import_usergroups', $viewParams);
     }
 }
Пример #3
0
 public function rebuildCache(array $input, $redirect, $submitUrl, $doRebuild = false)
 {
     $caches = $input['caches'];
     $position = $input['position'];
     $viewParams = array('detailedMessage' => '');
     if ($doRebuild && $caches) {
         $cache = array_shift($caches);
         if (!is_array($cache)) {
             $options = array();
         } else {
             list($cache, $options) = $cache;
         }
         $rebuilt = XenForo_CacheRebuilder_Abstract::getCacheRebuilder($cache)->rebuild($position, $options, $detailedMessage);
         if (is_int($rebuilt)) {
             // still doing this one
             array_unshift($caches, array($cache, $options));
             $position = $rebuilt;
             $viewParams['detailedMessage'] = $detailedMessage;
         } else {
             $position = 0;
         }
     }
     if (!$caches) {
         return $this->_controller->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, $redirect);
     }
     $nextCache = reset($caches);
     if (is_array($nextCache)) {
         list($nextCache) = $nextCache;
     }
     $nextBuilder = XenForo_CacheRebuilder_Abstract::getCacheRebuilder($nextCache);
     $viewParams['rebuildMessage'] = $nextBuilder->getRebuildMessage();
     $viewParams['showExitLink'] = $nextBuilder->showExitLink();
     $viewParams['submitUrl'] = $submitUrl;
     $viewParams['elements'] = array('caches' => json_encode($caches), 'position' => $position, 'redirect' => $redirect);
     return $viewParams;
 }
Пример #4
0
 /**
  *
  * @param array $cacheRebuilders
  */
 public function addCacheRebuilders(array $cacheRebuilders)
 {
     if (self::$_dependencies instanceof XenForo_Dependencies_Admin) {
         XenForo_CacheRebuilder_Abstract::$builders = array_merge(XenForo_CacheRebuilder_Abstract::$builders, $cacheRebuilders);
     }
 }
Пример #5
0
 public function actionImport()
 {
     $fieldModel = $this->_getFieldModel();
     if ($this->isConfirmedPost()) {
         $input = $this->_input->filter(array('target' => XenForo_Input::STRING, 'field_group_id' => XenForo_Input::UINT, 'overwrite_field_id' => XenForo_Input::STRING));
         $upload = XenForo_Upload::getUploadedFile('upload');
         if (!$upload) {
             return $this->responseError(new XenForo_Phrase('please_upload_valid_field_xml_file'));
         }
         if ($input['target'] == 'overwrite') {
             $field = $this->_getFieldOrError($input['overwrite_field_id']);
             $input['field_group_id'] = $field['field_group_id'];
         }
         $document = $this->getHelper('Xml')->getXmlFromFile($upload);
         $caches = $fieldModel->importFieldXml($document, $input['field_group_id'], $input['overwrite_field_id']);
         return XenForo_CacheRebuilder_Abstract::getRebuilderResponse($this, $caches, XenForo_Link::buildAdminLink('thread-fields'));
     } else {
         $fieldModel = $this->_getFieldModel();
         $viewParams = array('fieldGroupOptions' => $fieldModel->getThreadFieldGroupOptions(), 'fields' => $fieldModel->prepareThreadFields($fieldModel->getThreadFields()));
         return $this->responseView('Waindigo_CustomFields_ViewAdmin_ThreadField_Import', 'thread_field_import', $viewParams);
     }
 }
Пример #6
0
 public function actionImport()
 {
     $styleModel = $this->_getStyleModel();
     if ($this->isConfirmedPost()) {
         $input = $this->_input->filter(array('target' => XenForo_Input::STRING, 'parent_style_id' => XenForo_Input::UINT, 'overwrite_style_id' => XenForo_Input::UINT));
         $upload = XenForo_Upload::getUploadedFile('upload');
         if (!$upload) {
             return $this->responseError(new XenForo_Phrase('please_upload_valid_style_xml_file'));
         }
         if ($input['target'] == 'overwrite') {
             $this->_getStyleOrError($input['overwrite_style_id']);
             $input['parent_style_id'] = 0;
         } else {
             $input['overwrite_style_id'] = 0;
         }
         $document = $this->getHelper('Xml')->getXmlFromFile($upload);
         $caches = $styleModel->importStyleXml($document, $input['parent_style_id'], $input['overwrite_style_id']);
         return XenForo_CacheRebuilder_Abstract::getRebuilderResponse($this, $caches, XenForo_Link::buildAdminLink('styles'));
     } else {
         $viewParams = array('styles' => $styleModel->getAllStylesAsFlattenedTree());
         return $this->responseView('XenForo_ViewAdmin_Style_Import', 'style_import', $viewParams);
     }
 }
Пример #7
0
 /**
  * Upgrades the specified add-on. The given file must match the specified
  * add-on, or an error will occur.
  *
  * @return XenForo_ControllerResponse_Abstract
  */
 public function actionUpgrade()
 {
     $this->_assertPostOnly();
     $addOnId = $this->_input->filterSingle('addon_id', XenForo_Input::STRING);
     $addOn = $this->_getAddOnOrError($addOnId);
     $fileTransfer = new Zend_File_Transfer_Adapter_Http();
     if ($fileTransfer->isUploaded('upload_file')) {
         $fileInfo = $fileTransfer->getFileInfo('upload_file');
         $fileName = $fileInfo['upload_file']['tmp_name'];
     } else {
         $fileName = $this->_input->filterSingle('server_file', XenForo_Input::STRING);
     }
     $caches = $this->_getAddOnModel()->installAddOnXmlFromFile($fileName, $addOn['addon_id']);
     return XenForo_CacheRebuilder_Abstract::getRebuilderResponse($this, $caches, XenForo_Link::buildAdminLink('add-ons') . $this->getLastHash($addOnId));
 }
Пример #8
0
 public function actionComplete()
 {
     if ($this->_request->isPost()) {
         $input = $this->_input->filter(array('archive' => XenForo_Input::UINT, 'table' => XenForo_Input::STRING));
         if ($input['archive'] && $input['table']) {
             if (!$this->_getImportModel()->archiveImportLog($input['table'], $error)) {
                 return $this->responseError($error);
             }
         }
         $session = new XenForo_ImportSession();
         $importerKey = $session->getImporterKey();
         $session->delete();
         $caches = array('User', 'Thread', 'Poll', 'Forum');
         return XenForo_CacheRebuilder_Abstract::getRebuilderResponse($this, $caches, XenForo_Link::buildAdminLink('import/complete', false, array('confirm' => $importerKey)));
     } else {
         if ($importerKey = $this->_input->filterSingle('confirm', XenForo_Input::STRING)) {
             $messages = $this->_getImportModel()->getImporter($importerKey)->getImportCompleteMessages();
             return $this->responseView('XenForo_ViewAdmin_Import_Complete', 'import_complete', array('messages' => $messages));
         } else {
             $session = new XenForo_ImportSession();
             $config = $session->getConfig();
             $importer = $this->_getImportModel()->getImporter($session->getImporterKey());
             $viewParams = array('importerName' => $importer->getName(), 'logSuffix' => $config['db']['dbname']);
             return $this->responseView('XenForo_ViewAdmin_Import_CompleteConfirm', 'import_complete_confirm', $viewParams);
         }
     }
 }
 public function actionImport()
 {
     $socialPermissionSetModel = $this->_getSocialPermissionSetModel();
     if ($this->isConfirmedPost()) {
         $upload = XenForo_Upload::getUploadedFile('upload');
         if (!$upload) {
             return $this->responseError(new XenForo_Phrase('th_please_upload_valid_social_permission_set_xml_file_socialperms'));
         }
         $document = $this->getHelper('Xml')->getXmlFromFile($upload);
         $caches = $socialPermissionSetModel->importSocialPermissionSetXml($document);
         return XenForo_CacheRebuilder_Abstract::getRebuilderResponse($this, $caches, XenForo_Link::buildAdminLink('social-permission-sets'));
     } else {
         return $this->responseView('ThemeHouse_SocialPerms_ViewAdmin_SocialPermissionSet_Import', 'th_social_permission_set_import_socialperms');
     }
 }