Ejemplo n.º 1
0
 public function doUpload($formField, $hash, $contentType, array $contentData = array())
 {
     if (isset($contentData['forum_id']) and !isset($contentData['node_id'])) {
         $contentData['node_id'] = $contentData['forum_id'];
     }
     $this->_assertCanUploadAndManageAttachments($hash, $contentType, $contentData);
     $attachmentModel = $this->_getAttachmentModel();
     $attachmentHandler = $attachmentModel->getAttachmentHandler($contentType);
     // known to be valid
     $contentId = $attachmentHandler->getContentIdFromContentData($contentData);
     $existingAttachments = $contentId ? $attachmentModel->getAttachmentsByContentId($contentType, $contentId) : array();
     $newAttachments = $attachmentModel->getAttachmentsByTempHash($hash);
     $attachmentConstraints = $attachmentHandler->getAttachmentConstraints();
     if ($attachmentConstraints['count'] > 0) {
         $remainingUploads = $attachmentConstraints['count'] - (count($existingAttachments) + count($newAttachments));
         if ($remainingUploads <= 0) {
             return $this->_controller->responseError(new XenForo_Phrase('you_may_not_upload_more_files_with_message_allowed_x', array('total' => $attachmentConstraints['count'])), 403);
         }
     }
     $file = XenForo_Upload::getUploadedFile($formField);
     if (!$file) {
         return $this->_controller->responseError(new XenForo_Phrase('bdapi_requires_upload_x', array('field' => $formField)), 400);
     }
     $file->setConstraints($attachmentConstraints);
     if (!$file->isValid()) {
         return $this->_controller->responseError($file->getErrors(), 403);
     }
     $dataId = $attachmentModel->insertUploadedAttachmentData($file, XenForo_Visitor::getUserId());
     $attachmentId = $attachmentModel->insertTemporaryAttachment($dataId, $hash);
     return $attachmentModel->getAttachmentById($attachmentId);
 }
Ejemplo n.º 2
0
 public function actionSigPicUpload()
 {
     $this->_assertPostOnly();
     if (!XenForo_Visitor::getInstance()->hasPermission('signature', 'sigpic')) {
         return $this->responseNoPermission();
     }
     $sigpic = XenForo_Upload::getUploadedFile('sigpic');
     $sigpicModel = $this->getModelFromCache('TPUSigPic_Model_SigPic');
     $visitor = XenForo_Visitor::getInstance();
     $inputData = $this->_input->filter(array('delete' => XenForo_Input::UINT));
     if ($sigpic) {
         $sigpicData = $sigpicModel->uploadSigPic($sigpic, $visitor['user_id'], $visitor->getPermissions());
     } else {
         if ($inputData['delete']) {
             $sigpicData = $sigpicModel->deleteSigPic(XenForo_Visitor::getUserId());
         }
     }
     if (isset($sigpicData) && is_array($sigpicData)) {
         foreach ($sigpicData as $key => $val) {
             $visitor[$key] = $val;
         }
     }
     $message = new XenForo_Phrase('upload_completed_successfully');
     if ($this->_noRedirect()) {
         // TODO
     } else {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('account/signature'), $message);
     }
 }
Ejemplo n.º 3
0
 public function actionUploadAvatar()
 {
     $this->_assertPostOnly();
     if (!XenForo_Visitor::getInstance()->canUploadAvatar()) {
         return $this->responseNoPermission();
     }
     $avatar = XenForo_Upload::getUploadedFile('upload');
     $avatarModel = $this->getModelFromCache('XenForo_Model_Avatar');
     $visitor = XenForo_Visitor::getInstance();
     // upload new avatar
     if ($avatar) {
         try {
             $avatarData = $avatarModel->uploadAvatar($avatar, $visitor['user_id'], $visitor->getPermissions());
         } catch (Exception $e) {
             json_error($e->getMessages());
         }
     }
     // merge new data into $visitor, if there is any
     if (isset($avatarData) && is_array($avatarData)) {
         foreach ($avatarData as $key => $val) {
             $visitor[$key] = $val;
         }
     }
     return array('success' => true);
 }
Ejemplo n.º 4
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);
     }
 }
Ejemplo n.º 5
0
 public function actionImport()
 {
     $moderatorModel = $this->_getModeratorModel();
     if ($this->isConfirmedPost()) {
         $input = $this->_input->filter(array('overwrite' => XenForo_Input::UINT));
         $upload = XenForo_Upload::getUploadedFile('upload');
         if (!$upload) {
             return $this->responseError(new XenForo_Phrase('th_please_upload_valid_moderator_xml_file_moderators'));
         }
         $document = $this->getHelper('Xml')->getXmlFromFile($upload);
         $caches = $moderatorModel->importModeratorsXml($document, $input['overwrite']);
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildAdminLink('moderators'));
     } else {
         return $this->responseView('ThemeHouse_Moderators_ViewAdmin_Moderator_Import', 'th_moderator_import_moderators');
     }
 }
Ejemplo n.º 6
0
 public function actionImportXml()
 {
     if ($this->isConfirmedPost()) {
         /* @var $smilieModel XenForo_Model_Smilie */
         $smilieModel = $this->_getSmilieModel();
         $input = $this->_input->filter(array('overwrite' => XenForo_Input::UINT));
         $upload = XenForo_Upload::getUploadedFile('upload');
         if (!$upload) {
             return $this->responseError(new XenForo_Phrase('waindigo_please_upload_valid_smilies_xml_file_smilieimporter'));
         }
         $document = $this->getHelper('Xml')->getXmlFromFile($upload);
         $caches = $smilieModel->importSmiliesXml($document, $input['overwrite']);
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildAdminLink('smilies'));
     } else {
         return $this->responseView('Waindigo_SmilieImporter_ViewAdmin_Smilie_Import', 'waindigo_smilie_import_smilieimporter');
     }
 }
Ejemplo n.º 7
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);
     }
 }
Ejemplo n.º 8
0
 public function actionUploadAttachment()
 {
     $vals = $this->_input->filter(array('poststarttime' => XenForo_Input::STRING, 'forumid' => XenForo_Input::UINT));
     try {
         $this->_assertCanUploadAndManageAttachments($vals['poststarttime'], 'post', array('node_id' => $vals['forumid']));
     } catch (Exception $e) {
         json_error($e->getControllerResponse()->errorText->render(), RV_UPLOAD_ERROR);
     }
     $contentid = 0;
     $attachment_model = $this->_getAttachmentModel();
     $attachment_handler = $attachment_model->getAttachmentHandler('post');
     $existing = array();
     $new_attachments = $attachment_model->getAttachmentsByTempHash($vals['poststarttime']);
     $max = $attachment_handler->getAttachmentCountLimit();
     if ($max !== true) {
         $remaining = $max - (count($existing) + count($new));
         if ($remaining <= 0) {
             $error = new XenForo_Phrase('you_may_not_upload_more_files_with_message');
             json_error($error->render(), RV_UPLOAD_ERROR);
         }
     }
     $cons = $attachment_model->getAttachmentConstraints();
     $file = XenForo_Upload::getUploadedFile('attachment');
     if (!$file) {
         $error = new XenForo_Phrase('do_not_have_permission');
         json_error($error->render(), RV_UPLOAD_ERROR);
     }
     $file->setConstraints($cons);
     if (!$file->isValid()) {
         $error_text = '';
         foreach ($file->getErrors() as $error) {
             $error_text .= $error->render() . "\n";
         }
         json_error($error_text, RV_UPLOAD_ERROR);
     }
     $dataid = $attachment_model->insertUploadedAttachmentData($file, XenForo_Visitor::getUserId());
     $attachmentid = $attachment_model->insertTemporaryAttachment($dataid, $vals['poststarttime']);
     return array('attachmentid' => $attachmentid);
 }
Ejemplo n.º 9
0
 public function actionIcon()
 {
     list($resource, $category) = $this->_getResourceHelper()->assertResourceValidAndViewable();
     $resourceModel = $this->_getResourceModel();
     if (!$resourceModel->canEditResourceIcon($resource, $category, $errorPhraseKey)) {
         throw $this->getErrorOrNoPermissionResponseException($errorPhraseKey);
     }
     if ($this->isConfirmedPost()) {
         $icon = XenForo_Upload::getUploadedFile('icon');
         $delete = $this->_input->filterSingle('delete', XenForo_Input::BOOLEAN);
         if ($icon) {
             $resourceModel->uploadResourceIcon($icon, $resource['resource_id']);
         } else {
             if ($delete) {
                 $resourceModel->deleteResourceIcon($resource['resource_id']);
             }
         }
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('resources', $resource));
     } else {
         $viewParams = array('resource' => $resource, 'category' => $category, 'iconSize' => XenResource_Model_Resource::$iconSize);
         return $this->responseView('XenResource_ViewPublic_Resource_Icon', 'resource_icon', $viewParams);
     }
 }
Ejemplo n.º 10
0
 public function actionThumbnailChange()
 {
     $mediaId = $this->_input->filterSingle('media_id', XenForo_Input::UINT);
     if (!$mediaId) {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::RESOURCE_CANONICAL_PERMANENT, XenForo_Link::buildPublicLink('xengallery'));
     }
     $mediaHelper = $this->_getMediaHelper();
     $mediaModel = $this->_getMediaModel();
     $media = $mediaHelper->assertMediaValidAndViewable($mediaId);
     $media = $mediaModel->prepareMedia($media);
     $mediaHelper->assertCanChangeMediaThumbnail($media);
     if ($this->isConfirmedPost()) {
         $thumbnail = XenForo_Upload::getUploadedFile('thumbnail');
         $delete = $this->_input->filterSingle('delete', XenForo_Input::BOOLEAN);
         if ($thumbnail) {
             $mediaModel->uploadMediaThumbnail($thumbnail, $media);
             if (XenForo_Visitor::getUserId() != $media['user_id']) {
                 XenForo_Model_Log::logModeratorAction('xengallery_media', $media, 'thumbnail_add');
             }
         } else {
             if ($delete) {
                 $mediaModel->deleteMediaThumbnail($media);
                 if (XenForo_Visitor::getUserId() != $media['user_id']) {
                     XenForo_Model_Log::logModeratorAction('xengallery_media', $media, 'thumbnail_remove');
                 }
             }
         }
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('xengallery', $media));
     } else {
         $viewParams = array('media' => $media, 'categoryBreadcrumbs' => $this->_getCategoryModel()->getCategoryBreadcrumb($media));
         return $this->responseView('XenGallery_ViewPublic_Media_ThumbnailUpload', 'xengallery_media_thumbnail_upload', $viewParams);
     }
 }
Ejemplo n.º 11
0
 public function actionImportForm()
 {
     $this->_assertPostOnly();
     $hookModel = $this->_getAdvHookModel();
     $upload = XenForo_Upload::getUploadedFile('upload');
     if (!$upload) {
         return $this->responseError(new XenForo_Phrase('please_upload_valid_hooks_xml_file'));
     }
     $document = $this->getHelper('Xml')->getXmlFromFile($upload);
     $hookData = $hookModel->getHookDataFromXml($document);
     $viewParams = array('hooks' => $hookData['hooks']);
     return $this->responseView('Turki_Adv_ViewAdmin_Hook_ImportForm', 'adv_hook_xenforo_import_form', $viewParams);
 }
Ejemplo n.º 12
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);
         $styleModel->importStyleXml($document, $input['parent_style_id'], $input['overwrite_style_id']);
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildAdminLink('styles'));
     } else {
         $viewParams = array('styles' => $styleModel->getAllStylesAsFlattenedTree());
         return $this->responseView('XenForo_ViewAdmin_Style_Import', 'style_import', $viewParams);
     }
 }
Ejemplo n.º 13
0
 public function actionImportForm()
 {
     $this->_checkCsrfFromToken($this->_request->getParam('_xfToken'));
     $input = $this->_input->filter(array('options' => XenForo_Input::ARRAY_SIMPLE, 'mode' => XenForo_Input::STRING));
     $xenOptions = XenForo_Application::get('options');
     $input['options'] = array_merge(array('start_row' => 0, 'row_count' => $xenOptions->th_userImpEx_batchImportUsers, 'filename' => ''), $input['options']);
     $userModel = $this->_getUserModel();
     if ($input['mode'] == 'upload') {
         $upload = XenForo_Upload::getUploadedFile('upload');
         if (!$upload) {
             return $this->responseError(new XenForo_Phrase('th_please_upload_valid_users_xml_file_userimpex'));
         }
         $document = $this->getHelper('Xml')->getXmlFromFile($upload);
         $users = $userModel->getUsersFromXml($document);
     } elseif ($input['mode'] == 'uploadcsv') {
         if (!$input['options']['filename']) {
             $upload = XenForo_Upload::getUploadedFile('uploadcsv');
             if (!$upload) {
                 return $this->responseError(new XenForo_Phrase('th_please_upload_valid_users_csv_file_userimpex'));
             }
             $tempFile = $upload->getTempFile();
             if ($input['options']['row_count']) {
                 $internalDataPath = XenForo_Helper_File::getInternalDataPath();
                 XenForo_Helper_File::createDirectory($internalDataPath . '/userimpex/');
                 $filename = $internalDataPath . '/userimpex/' . XenForo_Application::$time . '.csv';
                 copy($tempFile, $filename);
             } else {
                 $filename = $tempFile;
             }
         } else {
             $filename = $input['options']['filename'];
         }
         $users = $this->getHelper('ThemeHouse_UserImpEx_ControllerHelper_Csv')->getCsvFromFile($filename, $input['options']['start_row'], $input['options']['row_count']);
         if (count($users) == $input['options']['row_count']) {
             $input['options']['start_row'] = $input['options']['start_row'] + $input['options']['row_count'];
             $input['options']['filename'] = $filename;
         } else {
             unset($input['options']['start_row'], $input['options']['row_count']);
         }
     } else {
         $users = $this->_input->filterSingle('users', XenForo_Input::ARRAY_SIMPLE);
     }
     $userCount = count($users);
     $users = $userModel->massImportUsers($users);
     $usersImported = $userCount - count($users);
     /* @var $userChangeLogModel XenForo_Model_UserChangeLog */
     $userChangeLogModel = $this->getModelFromCache('XenForo_Model_UserChangeLog');
     $fields = array();
     foreach ($users as $user) {
         foreach ($user as $fieldName => $fieldValue) {
             if (!isset($fields[$fieldName])) {
                 $field = array('field' => $fieldName, 'old_value' => '', 'new_value' => '');
                 $field = $userChangeLogModel->prepareField($field);
                 $fields[$fieldName] = $field['name'];
             }
         }
     }
     $viewParams = array('options' => $input['options'], 'mode' => $input['mode'], 'users' => $users, 'usersImported' => $usersImported, 'fields' => $fields);
     if (!$users && empty($input['options']['filename'])) {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildAdminLink('users/list'));
     }
     return $this->responseView('ThemeHouse_UserImpEx_ViewAdmin_User_ImportForm', 'th_user_import_form_userimpex', $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');
     }
 }
Ejemplo n.º 15
0
 /**
  * Handles uploading new attachments (and redirecting delete requests).
  *
  * @return XenForo_ControllerResponse_Abstract
  */
 public function actionDoUpload()
 {
     $this->_assertPostOnly();
     $deleteArray = array_keys($this->_input->filterSingle('delete', XenForo_Input::ARRAY_SIMPLE));
     $delete = reset($deleteArray);
     if ($delete) {
         $this->_request->setParam('attachment_id', $delete);
         return $this->responseReroute(__CLASS__, 'delete');
     }
     $input = $this->_input->filter(array('hash' => XenForo_Input::STRING, 'content_type' => XenForo_Input::STRING, 'content_data' => array(XenForo_Input::UINT, 'array' => true), 'key' => XenForo_Input::STRING));
     if (!$input['hash']) {
         $input['hash'] = $this->_input->filterSingle('temp_hash', XenForo_Input::STRING);
     }
     $this->_assertCanUploadAndManageAttachments($input['hash'], $input['content_type'], $input['content_data']);
     $attachmentModel = $this->_getAttachmentModel();
     $attachmentHandler = $attachmentModel->getAttachmentHandler($input['content_type']);
     // known to be valid
     $contentId = $attachmentHandler->getContentIdFromContentData($input['content_data']);
     $existingAttachments = $contentId ? $attachmentModel->getAttachmentsByContentId($input['content_type'], $contentId) : array();
     $newAttachments = $attachmentModel->getAttachmentsByTempHash($input['hash']);
     $attachmentConstraints = $attachmentHandler->getAttachmentConstraints();
     if ($attachmentConstraints['count'] > 0) {
         $remainingUploads = $attachmentConstraints['count'] - (count($existingAttachments) + count($newAttachments));
         if ($remainingUploads <= 0) {
             return $this->responseError(new XenForo_Phrase('you_may_not_upload_more_files_with_message_allowed_x', array('total' => $attachmentConstraints['count'])));
         }
     }
     $file = XenForo_Upload::getUploadedFile('upload');
     if (!$file) {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('attachments/upload', false, array('hash' => $input['hash'], 'content_type' => $input['content_type'], 'content_data' => $input['content_data'], 'key' => $input['key'])));
     }
     $filename = $this->_input->filterSingle('filename', XenForo_Input::STRING);
     if ($filename) {
         $file->setFileName($filename);
     }
     $file->setConstraints($attachmentConstraints);
     if (!$file->isValid()) {
         return $this->responseError($file->getErrors());
     }
     $dataId = $attachmentModel->insertUploadedAttachmentData($file, XenForo_Visitor::getUserId());
     $attachmentId = $attachmentModel->insertTemporaryAttachment($dataId, $input['hash']);
     $message = new XenForo_Phrase('upload_completed_successfully');
     // return a view if noredirect has been requested and we are not deleting
     if ($this->_noRedirect()) {
         $contentId = $attachmentHandler->getContentIdFromContentData($input['content_data']);
         //$newAttachments = $attachmentModel->getAttachmentsByTempHash($input['hash']);
         $attachment = $attachmentModel->getAttachmentById($attachmentId);
         $viewParams = array('attachment' => $attachmentModel->prepareAttachment($attachment), 'message' => $message, 'hash' => $input['hash'], 'content_type' => $input['content_type'], 'content_data' => $input['content_data'], 'key' => $input['key']);
         return $this->responseView('XenForo_ViewPublic_Attachment_DoUpload', '', $viewParams);
     } else {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('attachments/upload', false, array('hash' => $input['hash'], 'content_type' => $input['content_type'], 'content_data' => $input['content_data'], 'key' => $input['key'])), $message);
     }
 }
Ejemplo n.º 16
0
 public function imageUpload($threadId)
 {
     $image = XenForo_Upload::getUploadedFile('brtc_image');
     $imageModel = $this->getModelFromCache('Brivium_ThreadClassified_Model_Image');
     $imageData = array();
     if ($image) {
         $imageData = $imageModel->uploadImage($image, $threadId, array());
     }
     $message = new XenForo_Phrase('upload_completed_successfully');
     return $imageData;
 }
Ejemplo n.º 17
0
 public function actionImport()
 {
     if ($this->isConfirmedPost()) {
         $upload = XenForo_Upload::getUploadedFile('upload');
         if (!$upload) {
             return $this->responseError(new XenForo_Phrase('please_provide_valid_bb_code_xml_file'));
         }
         $document = $this->getHelper('Xml')->getXmlFromFile($upload);
         $this->_getBbCodeModel()->importCustomBbCodeXml($document);
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildAdminLink('bb-codes'));
     } else {
         return $this->responseView('XenForo_ViewAdmin_BbCode_Import', 'bb_code_import');
     }
 }
Ejemplo n.º 18
0
 public function actionImport()
 {
     $languageModel = $this->_getLanguageModel();
     if ($this->isConfirmedPost()) {
         $input = $this->_input->filter(array('target' => XenForo_Input::STRING, 'parent_language_id' => XenForo_Input::UINT, 'overwrite_language_id' => XenForo_Input::UINT));
         $upload = XenForo_Upload::getUploadedFile('upload');
         if (!$upload) {
             return $this->responseError(new XenForo_Phrase('please_upload_valid_language_xml_file'));
         }
         if ($input['target'] == 'overwrite') {
             $this->_getLanguageOrError($input['overwrite_language_id']);
             $input['parent_language_id'] = 0;
         } else {
             $input['overwrite_language_id'] = 0;
         }
         $document = $this->getHelper('Xml')->getXmlFromFile($upload);
         $caches = $languageModel->importLanguageXml($document, $input['parent_language_id'], $input['overwrite_language_id']);
         return XenForo_CacheRebuilder_Abstract::getRebuilderResponse($this, $caches, XenForo_Link::buildAdminLink('languages'));
     } else {
         $viewParams = array('languages' => $languageModel->getAllLanguagesAsFlattenedTree());
         return $this->responseView('XenForo_ViewAdmin_Language_Import', 'language_import', $viewParams);
     }
 }
Ejemplo n.º 19
0
 public function actionImport()
 {
     $bibleModel = $this->_getBibleModel();
     if ($this->isConfirmedPost()) {
         $upload = XenForo_Upload::getUploadedFile('upload');
         if (!$upload) {
             return $this->responseError(new XenForo_Phrase('th_please_upload_valid_bible_zip_file_bible'));
         }
         $bibleModel->importBibleZip($upload);
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildAdminLink('bibles'));
     } else {
         return $this->responseView('ThemeHouse_Bible_ViewAdmin_Bible_Import', 'th_bible_import_bible');
     }
 }
Ejemplo n.º 20
0
 public function actionAvatarUpload()
 {
     $this->_assertPostOnly();
     $socialForum = ThemeHouse_SocialGroups_SocialForum::getInstance()->toArray();
     $forumId = $this->_input->filterSingle('node_id', XenForo_Input::UINT);
     $ftpHelper = $this->getHelper('ForumThreadPost');
     $forum = $this->getHelper('ForumThreadPost')->assertForumValidAndViewable($forumId, $this->_getForumFetchOptions());
     $this->_assertCanEditSocialForum($socialForum);
     $avatar = XenForo_Upload::getUploadedFile('avatar');
     /* @var $avatarModel ThemeHouse_SocialGroups_Model_SocialForumAvatar */
     $avatarModel = $this->getModelFromCache('ThemeHouse_SocialGroups_Model_SocialForumAvatar');
     $inputData = $this->_input->filter(array('delete' => XenForo_Input::UINT));
     $inputData['logo_crop_x'] = $this->_input->filterSingle('avatar_crop_x', XenForo_Input::UINT);
     $inputData['logo_crop_y'] = $this->_input->filterSingle('avatar_crop_y', XenForo_Input::UINT);
     // upload new avatar
     if ($avatar) {
         $avatarData = $avatarModel->uploadAvatar($avatar, $socialForum['social_forum_id'], XenForo_Visitor::getInstance()->getNodePermissions($socialForum['node_id']));
     } elseif ($inputData['delete']) {
         $avatarData = $avatarModel->deleteAvatar($socialForum['social_forum_id']);
     } elseif ($inputData['logo_crop_x'] != $socialForum['logo_crop_x'] || $inputData['logo_crop_y'] != $socialForum['logo_crop_y']) {
         $avatarData = $avatarModel->recropAvatar($socialForum['social_forum_id'], $inputData['logo_crop_x'], $inputData['logo_crop_y']);
     }
     // merge new data into $socialForum, if there is any
     if (isset($avatarData) && is_array($avatarData)) {
         foreach ($avatarData as $key => $val) {
             $socialForum[$key] = $val;
         }
     }
     $message = new XenForo_Phrase('upload_completed_successfully');
     // return a view if noredirect has been requested and we are not
     // deleting
     if ($this->_noRedirect()) {
         return $this->responseView('ThemeHouse_SocialGroups_ViewPublic_SocialForum_AvatarUpload', '', array('socialForum' => $socialForum, 'sizeCode' => 'm', 'maxWidth' => ThemeHouse_SocialGroups_Model_SocialForumAvatar::getSizeFromCode('m'), 'maxDimension' => $socialForum['logo_width'] > $socialForum['logo_height'] ? 'height' : 'width', 'width' => $socialForum['logo_width'], 'height' => $socialForum['logo_height'], 'cropX' => $socialForum['logo_crop_x'], 'cropY' => $socialForum['logo_crop_y'], 'social_forum_id' => $socialForum['social_forum_id'], 'logo_date' => $socialForum['logo_date'], 'message' => $message));
     } else {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('account/personal-details'), $message);
     }
 }
Ejemplo n.º 21
0
 public function actionAvatarUpload()
 {
     $this->_assertPostOnly();
     if (!XenForo_Visitor::getInstance()->canUploadAvatar()) {
         return $this->responseNoPermission();
     }
     $avatar = XenForo_Upload::getUploadedFile('avatar');
     /* @var $avatarModel XenForo_Model_Avatar */
     $avatarModel = $this->getModelFromCache('XenForo_Model_Avatar');
     /* @var $visitor XenForo_Visitor */
     $visitor = XenForo_Visitor::getInstance();
     $inputData = $this->_input->filter(array('delete' => XenForo_Input::UINT, 'avatar_crop_x' => XenForo_Input::UINT, 'avatar_crop_y' => XenForo_Input::UINT, 'gravatar' => XenForo_Input::STRING, 'use_gravatar' => XenForo_Input::UINT));
     // upload new avatar
     if ($avatar) {
         $avatarData = $avatarModel->uploadAvatar($avatar, $visitor['user_id'], $visitor->getPermissions());
     } else {
         if ($inputData['delete']) {
             $avatarData = $avatarModel->deleteAvatar(XenForo_Visitor::getUserId());
         } else {
             if (XenForo_Application::get('options')->gravatarEnable && $inputData['use_gravatar']) {
                 if (!$inputData['gravatar']) {
                     $inputData['gravatar'] = $visitor['email'];
                 }
                 if (!XenForo_Model_Avatar::gravatarExists($inputData['gravatar'], $errorText)) {
                     return $this->responseError($errorText);
                 } else {
                     $avatarData = array('gravatar' => $inputData['gravatar']);
                     $this->_saveVisitorSettings($avatarData, $errors);
                 }
             } else {
                 if ($inputData['avatar_crop_x'] != $visitor['avatar_crop_x'] || $inputData['avatar_crop_y'] != $visitor['avatar_crop_y']) {
                     $avatarData = $avatarModel->recropAvatar(XenForo_Visitor::getUserId(), $inputData['avatar_crop_x'], $inputData['avatar_crop_y']);
                 } else {
                     if ($visitor['gravatar'] && !$inputData['use_gravatar']) {
                         $avatarData = array('gravatar' => '');
                         $this->_saveVisitorSettings($avatarData, $errors);
                     }
                 }
             }
         }
     }
     // merge new data into $visitor, if there is any
     if (isset($avatarData) && is_array($avatarData)) {
         foreach ($avatarData as $key => $val) {
             $visitor[$key] = $val;
         }
     }
     $message = new XenForo_Phrase('upload_completed_successfully');
     // return a view if noredirect has been requested and we are not deleting
     if ($this->_noRedirect()) {
         return $this->responseView('XenForo_ViewPublic_Account_AvatarUpload', 'account_avatar_upload', array('user' => $visitor->toArray(), 'sizeCode' => 'm', 'maxWidth' => XenForo_Model_Avatar::getSizeFromCode('m'), 'maxDimension' => $visitor['avatar_width'] > $visitor['avatar_height'] ? 'height' : 'width', 'width' => $visitor['avatar_width'], 'height' => $visitor['avatar_height'], 'cropX' => $visitor['avatar_crop_x'], 'cropY' => $visitor['avatar_crop_y'], 'user_id' => $visitor['user_id'], 'avatar_date' => $visitor['avatar_date'], 'gravatar' => $visitor['gravatar'], 'message' => $message));
     } else {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('account/personal-details'), $message);
     }
 }
Ejemplo n.º 22
0
Archivo: User.php Proyecto: sushj/bdApi
 public function actionPostAvatar()
 {
     $user = $this->_getUserOrError();
     $visitor = XenForo_Visitor::getInstance();
     if ($user['user_id'] != $visitor->get('user_id')) {
         return $this->responseNoPermission();
     }
     if (!$visitor->canUploadAvatar()) {
         return $this->responseNoPermission();
     }
     $avatar = XenForo_Upload::getUploadedFile('avatar');
     if (empty($avatar)) {
         return $this->responseError(new XenForo_Phrase('bdapi_requires_upload_x', array('field' => 'avatar')), 400);
     }
     /* @var $avatarModel XenForo_Model_Avatar */
     $avatarModel = $this->getModelFromCache('XenForo_Model_Avatar');
     $avatarModel->uploadAvatar($avatar, $visitor->get('user_id'), $visitor->getPermissions());
     return $this->responseMessage(new XenForo_Phrase('upload_completed_successfully'));
 }
Ejemplo n.º 23
0
 public function actionThumbnailUpload()
 {
     $mediaHelper = $this->_getMediaHelper();
     $albumModel = $this->_getAlbumModel();
     $albumId = $this->_input->filterSingle('album_id', XenForo_Input::UINT);
     $album = $mediaHelper->assertAlbumValidAndViewable($albumId);
     $mediaHelper->assertCanChangeAlbumThumbnail($album);
     if ($this->isConfirmedPost()) {
         $thumbnail = XenForo_Upload::getUploadedFile('thumbnail');
         $delete = $this->_input->filterSingle('delete', XenForo_Input::BOOLEAN);
         if ($thumbnail) {
             $albumModel->uploadAlbumThumbnail($thumbnail, $album['album_id']);
             if (XenForo_Visitor::getUserId() != $album['album_user_id']) {
                 XenForo_Model_Log::logModeratorAction('xengallery_album', $album, 'thumbnail_add');
             }
         } else {
             if ($delete) {
                 $albumModel->deleteAlbumThumbnail($album['album_id']);
                 if (XenForo_Visitor::getUserId() != $album['album_user_id']) {
                     XenForo_Model_Log::logModeratorAction('xengallery_album', $album, 'thumbnail_remove');
                 }
             }
         }
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('xengallery/albums', $album));
     } else {
         $viewParams = array('album' => $albumModel->prepareAlbum($album), 'categoryBreadcrumbs' => $this->_getCategoryModel()->getCategoryBreadcrumb($album));
         return $this->responseView('XenGallery_ViewPublic_Album_ThumbnailUpload', 'xengallery_album_thumbnail_upload', $viewParams);
     }
 }
Ejemplo n.º 24
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);
     }
 }
Ejemplo n.º 25
0
 public function actionDoUpload()
 {
     $this->_assertPostOnly();
     $deleteArray = array_keys($this->_input->filterSingle('delete', XenForo_Input::ARRAY_SIMPLE));
     $delete = reset($deleteArray);
     if ($delete) {
         $this->_request->setParam('attachment_id', $delete);
         return $this->responseReroute(__CLASS__, 'delete');
     }
     $input = $this->_input->filter(array('hash' => XenForo_Input::STRING, 'content_type' => XenForo_Input::STRING, 'upload_type' => XenForo_Input::STRING, 'content_data' => array(XenForo_Input::UINT, 'array' => true), 'key' => XenForo_Input::STRING));
     if (!$input['hash']) {
         $input['hash'] = $this->_input->filterSingle('image_upload_hash', XenForo_Input::STRING);
     }
     $this->_assertCanUploadAndManageAttachments($input['hash'], $input['content_type'], $input['content_data']);
     $attachmentModel = $this->_getAttachmentModel();
     $attachmentHandler = $attachmentModel->getAttachmentHandler($input['content_type']);
     $newAttachments = $attachmentModel->getAttachmentsByTempHash($input['hash']);
     //$attachmentConstraints = $attachmentHandler->getUploadConstraints($input['upload_type']);
     $attachmentConstraints = $attachmentHandler->getAttachmentConstraints();
     if ($attachmentConstraints['count'] > 0) {
         $remainingUploads = $attachmentConstraints['count'] - count($newAttachments);
         if ($remainingUploads <= 0) {
             return $this->responseError(new XenForo_Phrase('xengallery_you_can_upload_a_maximum_of_x_items_at_a_time', array('total' => $attachmentConstraints['count'])));
         }
     }
     $file = XenForo_Upload::getUploadedFile('upload');
     if (!$file) {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('xengallery/files/upload', false, array('hash' => $input['hash'], 'content_type' => $input['content_type'], 'upload_type' => $input['upload_type'], 'content_data' => $input['content_data'], 'key' => $input['key'])));
     }
     $exif = array();
     if (function_exists('exif_read_data')) {
         $filePath = $file->getTempFile();
         $fileType = @getimagesize($filePath);
         if (isset($fileType[2]) && $fileType[2] == IMAGETYPE_JPEG) {
             @ini_set('exif.encode_unicode', 'UTF-8');
             $exif = @exif_read_data($filePath, null, true);
             if (isset($exif['FILE'])) {
                 $exif['FILE']['FileName'] = $file->getFileName();
             }
         }
     }
     $file->setConstraints($attachmentConstraints);
     if (!$file->isValid()) {
         return $this->responseError($file->getErrors());
     }
     if (isset($attachmentConstraints['storage']) && $attachmentConstraints['storage'] > 0) {
         $visitor = XenForo_Visitor::getInstance();
         $existingFileSize = 0;
         foreach ($newAttachments as $newAttachment) {
             $existingFileSize += $newAttachment['file_size'];
         }
         $newFileSize = filesize($file->getTempFile());
         if ($visitor['xengallery_media_quota'] + $newFileSize + $existingFileSize > $attachmentConstraints['storage']) {
             return $this->responseError(new XenForo_Phrase('xengallery_you_have_exceeded_your_allowed_storage_quota', array('quota' => XenForo_Locale::numberFormat($attachmentConstraints['storage'], 'size'), 'filesize' => XenForo_Locale::numberFormat($newFileSize, 'size'), 'storage' => XenForo_Locale::numberFormat($visitor['xengallery_media_quota'], 'size'))));
         }
     }
     //$fileModel = $this->_getFileModel();
     $fileModel = $this->getModelFromCache('XenGallery_Model_File');
     $dataId = $fileModel->insertUploadedAttachmentData($file, XenForo_Visitor::getUserId(), $exif);
     $attachmentId = $attachmentModel->insertTemporaryAttachment($dataId, $input['hash']);
     $message = new XenForo_Phrase('upload_completed_successfully');
     // return a view if noredirect has been requested and we are not deleting
     if ($this->_noRedirect()) {
         $attachment = $attachmentModel->getAttachmentById($attachmentId);
         if (XenForo_Application::getOptions()->xengalleryAutoGenerateImageTitles) {
             $attachment['media_title'] = ucwords(pathinfo($attachment['filename'], PATHINFO_FILENAME));
         }
         $viewParams = array('attachment' => $attachment ? $attachmentModel->prepareAttachment($attachment) : array(), 'message' => $message, 'hash' => $input['hash'], 'content_type' => $input['content_type'], 'upload_type' => $input['upload_type'], 'content_data' => $input['content_data'], 'key' => $input['key']);
         return $this->responseView('XenGallery_ViewPublic_Media_DoUpload', '', $viewParams);
     } else {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('xengallery/files/upload', false, array('hash' => $input['hash'], 'content_type' => $input['content_type'], 'content_data' => $input['content_data'], 'uploadType' => $input['upload_type'], 'key' => $input['key'])), $message);
     }
 }
Ejemplo n.º 26
0
 public function actionImportForm()
 {
     $this->_assertPostOnly();
     $input = $this->_input->filter(array('mode' => XenForo_Input::STRING, 'directory' => XenForo_Input::STRING));
     $smilieModel = $this->_getSmilieModel();
     $smilieCategoryOptions = $smilieModel->getSmilieCategoryOptions();
     if ($input['mode'] == 'upload') {
         $upload = XenForo_Upload::getUploadedFile('upload');
         if (!$upload) {
             return $this->responseError(new XenForo_Phrase('please_upload_valid_smilies_xml_file'));
         }
         $document = $this->getHelper('Xml')->getXmlFromFile($upload);
         $smilieData = $smilieModel->getSmilieDataFromXml($document, $smilieCategoryOptions);
     } else {
         $smilieData = $smilieModel->getSmilieDataFromDirectory($input['directory']);
     }
     $viewParams = array('uploadMode' => $input['mode'] == 'upload', 'smilies' => $smilieData['smilies'], 'newSmilieCategories' => $smilieData['newSmilieCategories'], 'newSmilieCategoryOptions' => $smilieData['newSmilieCategoryOptions'], 'smilieCategoryOptions' => $smilieCategoryOptions);
     return $this->responseView('XenForo_ViewAdmin_Smilie_ImportForm', 'smilie_import_form', $viewParams);
 }
Ejemplo n.º 27
0
 public function actionCoverUpload()
 {
     $this->_assertPostOnly();
     $cover = XenForo_Upload::getUploadedFile('cover');
     $user = $this->_getAuthorOrError();
     if (!$this->_getGalleryModel()->canManageCover($user)) {
         throw $this->_throwFriendlyNoPermission();
     }
     $input = $this->_input->filter(array('crop_x' => XenForo_Input::UINT, 'crop_y' => XenForo_Input::UINT, 'width' => XenForo_Input::UINT, 'height' => XenForo_Input::UINT, 'delete' => XenForo_Input::UINT));
     if ($cover) {
         $oldCover = $this->_getGalleryModel()->getAuthorCoverFile($user);
         $return = $this->_getGalleryModel()->uploadAuthorCover($cover, $user['user_id']);
         if ($return) {
             if (isset($user['sonnb_xengallery_cover']['bdattachmentstore_engine'])) {
                 $engine = $user['sonnb_xengallery_cover']['bdattachmentstore_engine'];
                 $options = $user['sonnb_xengallery_cover']['bdattachmentstore_options'];
                 $keepLocalCopy = !empty($options['keepLocalCopy']);
                 if (empty($engine) || !empty($engine) && $keepLocalCopy) {
                     $oldLocalCover = $this->_getGalleryModel()->getAuthorCoverFile($user, true);
                     @unlink($oldLocalCover);
                 }
                 if (!empty($engine)) {
                     $this->_bdAttachmentStore_getFileModel()->deleteFile($engine, $options, $oldCover);
                 }
             } else {
                 $oldLocalCover = $this->_getGalleryModel()->getAuthorCoverFile($user, true);
                 @unlink($oldLocalCover);
             }
         }
     } elseif ($input['delete']) {
         $return = $this->_getGalleryModel()->deleteAuthorCover($user);
     } elseif ($input['crop_x'] || $input['crop_y'] || $input['height']) {
         $return = $this->_getGalleryModel()->cropAuthorCover($user, $input['crop_x'], $input['crop_y'], $input['width'], $input['height']);
     } else {
         return $this->responseView('sonnb_XenGallery_ViewPublic_Author_CoverUpload', 'sonnb_xengallery_cover_upload', array('cover' => "", 'url' => "", 'message' => ""));
     }
     if ($return === false) {
         throw $this->_throwFriendlyNoPermission('unexpected_error_occurred');
     } else {
         $user['sonnb_xengallery_cover'] = $return;
     }
     $message = new XenForo_Phrase('sonnb_xengallery_your_cover_has_been_saved');
     if ($this->_noRedirect()) {
         return $this->responseView('sonnb_XenGallery_ViewPublic_Author_CoverUpload', 'sonnb_xengallery_cover_upload', array('cover' => $user['sonnb_xengallery_cover'], 'url' => $this->_getGalleryModel()->getAuthorCoverUrl($user), 'message' => $message));
     } else {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('gallery/authors'), $message);
     }
 }
Ejemplo n.º 28
0
 public function actionDoDownload()
 {
     $mediaHelper = $this->_getMediaHelper();
     $mediaHelper->assertCanAddMedia();
     $this->_assertPostOnly();
     $input = $this->_input->filter(array('hash' => XenForo_Input::STRING, 'content_type' => XenForo_Input::STRING, 'upload_type' => XenForo_Input::STRING, 'content_data' => array(XenForo_Input::UINT, 'array' => true), 'key' => XenForo_Input::STRING, 'image_url' => XenForo_Input::STRING, 'unique_key' => XenForo_Input::STRING));
     if (!$input['hash']) {
         $input['hash'] = $this->_input->filterSingle('temp_hash', XenForo_Input::STRING);
     }
     $this->_assertCanUploadAndManageAttachments($input['hash'], $input['content_type'], $input['content_data']);
     $attachmentModel = $this->_getAttachmentModel();
     $attachmentHandler = $attachmentModel->getAttachmentHandler($input['content_type']);
     // known to be valid
     $contentId = $attachmentHandler->getContentIdFromContentData($input['content_data']);
     $existingAttachments = $contentId ? $attachmentModel->getAttachmentsByContentId($input['content_type'], $contentId) : array();
     $newAttachments = $attachmentModel->getAttachmentsByTempHash($input['hash']);
     $attachmentConstraints = $attachmentHandler->getUploadConstraints($input['upload_type']);
     if ($attachmentConstraints['count'] > 0) {
         $remainingUploads = $attachmentConstraints['count'] - (count($existingAttachments) + count($newAttachments));
         if ($remainingUploads <= 0) {
             return $this->responseError(new XenForo_Phrase('you_may_not_upload_more_files_with_message_allowed_x', array('total' => $attachmentConstraints['count'])));
         }
     }
     $fileModel = $this->_getFileModel();
     $url = $input['image_url'];
     if (!($tempName = $fileModel->addToFilesFromUrl($input['unique_key'], $url, $error))) {
         return $this->responseError($error);
     }
     $file = XenForo_Upload::getUploadedFile($input['unique_key']);
     if (!$file) {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('xengallery/files/upload', false, array('hash' => $input['hash'], 'content_type' => $input['content_type'], 'content_data' => $input['content_data'], 'key' => $input['key'])));
     }
     $file->setConstraints($attachmentConstraints);
     if (!$file->isValid()) {
         return $this->responseError($file->getErrors());
     }
     if (!$file->isImage()) {
         return $this->responseError(new XenForo_Phrase('xengallery_files_added_by_url_must_be_images'));
     }
     $dataId = $fileModel->insertUploadedAttachmentData($file, XenForo_Visitor::getUserId());
     $attachmentId = $attachmentModel->insertTemporaryAttachment($dataId, $input['hash']);
     $message = new XenForo_Phrase('upload_completed_successfully');
     @unlink($tempName);
     // return a view if noredirect has been requested and we are not deleting
     if ($this->_noRedirect()) {
         return $this->_getUploadResponse($attachmentId, $input, $message);
     } else {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('xengallery/files/upload', false, array('hash' => $input['hash'], 'content_type' => $input['content_type'], 'content_data' => $input['content_data'], 'key' => $input['key'])), $message);
     }
 }
Ejemplo n.º 29
0
 public function actionLogoUpload()
 {
     $this->_assertPostOnly();
     list($team, $category) = $this->_getTeamHelper()->assertTeamValidAndViewable(null, array());
     if (!$this->_getTeamModel()->canUploadAvatar($team, $category, $error)) {
         throw $this->getErrorOrNoPermissionResponseException($error);
     }
     $avatar = XenForo_Upload::getUploadedFile('logo');
     /* @var Nobita_Teams_Model_Avatar */
     $avatarModel = $this->getModelFromCache('Nobita_Teams_Model_Avatar');
     $inputData = $this->_input->filter(array('delete' => XenForo_Input::BOOLEAN, 'x' => XenForo_Input::UINT, 'y' => XenForo_Input::UINT, 'h' => XenForo_Input::UINT, 'w' => XenForo_Input::UINT, 'team_avatar_date' => XenForo_Input::UINT));
     if ($avatar) {
         $success = $avatarModel->uploadAvatar($avatar, $team['team_id']);
         if ($success) {
             $team['team_avatar_date'] = $success;
         }
     } elseif ($inputData['delete']) {
         $success = $avatarModel->deleteAvatar($team['team_id']);
         if ($success) {
             $team['team_avatar_date'] = 0;
         }
     }
     if (empty($team['team_avatar_date'])) {
         // just delete avatar
         $message = new XenForo_Phrase('Teams_deleted_successfully');
         $redirect = '';
     } else {
         $message = new XenForo_Phrase('upload_completed_successfully');
         $redirect = XenForo_Link::buildPublicLink(TEAM_ROUTE_PREFIX, $team);
     }
     if ($this->_noRedirect()) {
         return $this->responseView('Nobita_Teams_ViewPublic_Team_AvatarUpload', 'Team_avatar_upload', array('team' => $team, 'category' => $category, 'team_avatar_date' => $team['team_avatar_date'], 'message' => $message, 'redirectUri' => $redirect));
     } else {
         return $this->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink(TEAM_ROUTE_PREFIX, $team), $message);
     }
 }