public function uploadTmpAvatar($file) { if (isset($file)) { $lang = OW::getLanguage(); if (!UTIL_File::validateImage($file['name'])) { return array('result' => false, 'error' => $lang->text('base', 'not_valid_image')); } if (!empty($file['error'])) { $message = BOL_FileService::getInstance()->getUploadErrorMessage($file['error']); } if (!empty($message)) { return array('result' => false, 'error' => $message); } $filesize = OW::getConfig()->getValue('base', 'avatar_max_upload_size'); if (empty($file['size']) || $filesize * 1024 * 1024 < $file['size']) { $message = OW::getLanguage()->text('base', 'upload_file_max_upload_filesize_error'); return array('result' => false, 'error' => $message); } $avatarService = BOL_AvatarService::getInstance(); $key = $avatarService->getAvatarChangeSessionKey(); $uploaded = $avatarService->uploadUserTempAvatar($key, $file['tmp_name']); if (!$uploaded) { return array('result' => false, 'error' => $lang->text('base', 'upload_avatar_faild')); } $url = $avatarService->getTempAvatarUrl($key, 3); return array('result' => true, 'url' => $url); } return array('result' => false); }
/** * Returns an instance of class (singleton pattern implementation). * * @return BOL_FileService */ public static function getInstance() { if (self::$classInstance === null) { self::$classInstance = new self(); } return self::$classInstance; }
/** * @param mixed $value * @return bool */ public function isValid($value) { if (!$this->required) { return true; } $language = OW::getLanguage(); $avatarService = BOL_AvatarService::getInstance(); if (!is_writable(BOL_AvatarService::getInstance()->getAvatarsDir())) { $this->setErrorMessage($language->text('base', 'not_writable_avatar_dir')); return false; } if (empty($_FILES['userPhoto']['name'])) { return false; } if (!empty($_FILES['userPhoto']['error'])) { $this->setErrorMessage(BOL_FileService::getInstance()->getUploadErrorMessage($_FILES['userPhoto']['error'])); return false; } return true; }
public function __construct($url = null) { $userId = OW::getUser()->getId(); $document = OW::getDocument(); $plugin = OW::getPluginManager()->getPlugin('base'); $document->addScript($plugin->getStaticJsUrl() . 'jQueryRotate.min.js'); $document->addScript($plugin->getStaticJsUrl() . 'codemirror.min.js'); $document->addScript($plugin->getStaticJsUrl() . 'upload.js'); $document->addScriptDeclarationBeforeIncludes(UTIL_JsGenerator::composeJsString(';window.ajaxFileUploadParams = {}; Object.defineProperties(ajaxFileUploadParams, { actionUrl: { value: {$url}, writable: false, enumerable: true }, maxFileSize: { value: {$size}, writable: false, enumerable: true }, deleteAction: { value: {$deleteAction}, writable: false, enumerable: true } });', array('url' => OW::getRouter()->urlForRoute('admin.ajax_upload'), 'size' => BOL_FileService::getInstance()->getUploadMaxFilesizeBytes(), 'deleteAction' => OW::getRouter()->urlForRoute('admin.ajax_upload_delete')))); $document->addOnloadScript(';window.ajaxFileUploader.init();'); BOL_FileTemporaryService::getInstance()->deleteUserTemporaryFiles($userId); $form = new BASE_CLASS_AjaxUploadForm('user', $userId, $url); $this->addForm($form); $language = OW::getLanguage(); $language->addKeyForJs('admin', 'not_all_photos_uploaded'); $language->addKeyForJs('admin', 'size_limit'); $language->addKeyForJs('admin', 'type_error'); $language->addKeyForJs('admin', 'dnd_support'); $language->addKeyForJs('admin', 'dnd_not_support'); $language->addKeyForJs('admin', 'drop_here'); $language->addKeyForJs('admin', 'please_wait'); $language->addKeyForJs('admin', 'describe_photo'); $language->addKeyForJs('admin', 'photo_upload_error'); }
public function __construct() { parent::__construct(); $this->fileService = BOL_FileService::getInstance(); }
public function user() { if (!OW::getRequest()->isAjax()) { OW::getNavigation()->activateMenuItem(OW_Navigation::ADMIN_SETTINGS, 'admin', 'sidebar_menu_item_user_settings'); } $language = OW::getLanguage(); $menu = $this->getUsersMenu(); $menu->getElement('general')->setActive(true); $this->addComponent('menu', $menu); $avatarService = BOL_AvatarService::getInstance(); if (isset($_GET['del-avatar']) && in_array($_GET['del-avatar'], array(1, 2))) { $del = $avatarService->deleteCustomDefaultAvatar((int) $_GET['del-avatar']); if ($del) { OW::getFeedback()->info($language->text('admin', 'default_avatar_deleted')); } $this->redirect(OW::getRouter()->urlForRoute('admin_settings_user')); } $uploadMaxFilesize = (double) ini_get("upload_max_filesize"); $postMaxSize = (double) ini_get("post_max_size"); $maxUploadMaxFilesize = BOL_FileService::getInstance()->getUploadMaxFilesize(); $this->assign('maxUploadMaxFilesize', $maxUploadMaxFilesize); $userSettingsForm = new UserSettingsForm($maxUploadMaxFilesize); $this->addForm($userSettingsForm); $conf = OW::getConfig(); $avatarSize = $conf->getValue('base', 'avatar_size'); $bigAvatarSize = $conf->getValue('base', 'avatar_big_size'); $avatarUploadSize = $conf->getValue('base', 'avatar_max_upload_size'); $userSettingsForm->getElement('avatar_max_upload_size')->setValue((double) $avatarUploadSize); $userSettingsForm->getElement('avatarSize')->setValue($avatarSize); $userSettingsForm->getElement('bigAvatarSize')->setValue($bigAvatarSize); $userSettingsForm->getElement('displayName')->setValue($conf->getValue('base', 'display_name_question')); $this->assign('displayConfirmEmail', !defined('OW_PLUGIN_XP')); if (OW::getRequest()->isPost() && $userSettingsForm->isValid($_POST)) { if (!empty($_FILES['avatar']['tmp_name']) && !UTIL_File::validateImage($_FILES['avatar']['name']) || !empty($_FILES['bigAvatar']['tmp_name']) && !UTIL_File::validateImage($_FILES['bigAvatar']['name'])) { OW::getFeedback()->error($language->text('base', 'not_valid_image')); $this->redirect(); } $res = $userSettingsForm->process(); OW::getFeedback()->info($language->text('admin', 'user_settings_updated')); $this->redirect(); } $avatar = $avatarService->getDefaultAvatarUrl(1); $avatarBig = $avatarService->getDefaultAvatarUrl(2); $this->assign('avatar', $avatar); $this->assign('avatarBig', $avatarBig); $custom = json_decode($conf->getValue('base', 'default_avatar'), true); $this->assign('customAvatar', $custom); $language->addKeyForJs('admin', 'confirm_avatar_delete'); if (!OW::getRequest()->isAjax()) { OW::getDocument()->setHeading(OW::getLanguage()->text('admin', 'heading_user_settings')); OW::getDocument()->setHeadingIconClass('ow_ic_gear_wheel'); } OW::getNavigation()->deactivateMenuItems(OW_Navigation::ADMIN_SETTINGS); }
public function user() { if (!OW::getRequest()->isAjax()) { OW::getNavigation()->activateMenuItem(OW_Navigation::ADMIN_SETTINGS, 'admin', 'sidebar_menu_item_user_settings'); } $language = OW::getLanguage(); $avatarService = BOL_AvatarService::getInstance(); if (isset($_GET['del-avatar']) && in_array($_GET['del-avatar'], array(1, 2))) { $del = $avatarService->deleteCustomDefaultAvatar((int) $_GET['del-avatar']); if ($del) { OW::getFeedback()->info($language->text('admin', 'default_avatar_deleted')); } $this->redirect(OW::getRouter()->urlForRoute('admin_settings_user')); } $uploadMaxFilesize = (double) ini_get("upload_max_filesize"); $postMaxSize = (double) ini_get("post_max_size"); $maxUploadMaxFilesize = BOL_FileService::getInstance()->getUploadMaxFilesize(); $this->assign('maxUploadMaxFilesize', $maxUploadMaxFilesize); $userSettingsForm = new UserSettingsForm($maxUploadMaxFilesize); $this->addForm($userSettingsForm); $conf = OW::getConfig(); $avatarSize = $conf->getValue('base', 'avatar_size'); $bigAvatarSize = $conf->getValue('base', 'avatar_big_size'); $avatarUploadSize = $conf->getValue('base', 'avatar_max_upload_size'); $userSettingsForm->getElement('avatar_max_upload_size')->setValue((double) $avatarUploadSize); $userSettingsForm->getElement('avatarSize')->setValue($avatarSize); $userSettingsForm->getElement('bigAvatarSize')->setValue($bigAvatarSize); $userSettingsForm->getElement('displayName')->setValue($conf->getValue('base', 'display_name_question')); // privacy $userSettingsForm->getElement('who_can_join')->setValue($conf->getValue('base', 'who_can_join')); $userSettingsForm->getElement('who_can_invite')->setValue($conf->getValue('base', 'who_can_invite')); $userSettingsForm->getElement('guests_can_view')->setValue($conf->getValue('base', 'guests_can_view')); $userSettingsForm->getElement('user_approve')->setValue($conf->getValue('base', 'mandatory_user_approve')); // profile questions $userSettingsForm->getElement('user_view_presentation')->setValue(OW::getConfig()->getValue('base', 'user_view_presentation') == 'tabs'); $this->assign('displayConfirmEmail', !defined('OW_PLUGIN_XP')); if (OW::getRequest()->isPost() && $userSettingsForm->isValid($_POST)) { if (!empty($_FILES['avatar']['tmp_name']) && !UTIL_File::validateImage($_FILES['avatar']['name']) || !empty($_FILES['bigAvatar']['tmp_name']) && !UTIL_File::validateImage($_FILES['bigAvatar']['name'])) { OW::getFeedback()->error($language->text('base', 'not_valid_image')); $this->redirect(); } $values = $userSettingsForm->getValues(); $guestPassword = OW_Config::getInstance()->getValue('base', 'guests_can_view_password'); if ((int) $values['guests_can_view'] === 3 && empty($values['password']) && is_null($guestPassword)) { OW::getFeedback()->error($language->text('admin', 'permission_global_privacy_empty_pass_error_message')); $this->redirect(); } else { if ((int) $values['guests_can_view'] === 3 && strlen(trim($values['password'])) < 4 && strlen(trim($values['password'])) > 0) { OW::getFeedback()->error($language->text('admin', 'permission_global_privacy_pass_length_error_message')); $this->redirect(); } } $res = $userSettingsForm->process(); OW::getFeedback()->info($language->text('admin', 'user_settings_updated')); $this->redirect(); } $avatar = $avatarService->getDefaultAvatarUrl(1); $avatarBig = $avatarService->getDefaultAvatarUrl(2); $this->assign('avatar', $avatar); $this->assign('avatarBig', $avatarBig); $custom = json_decode($conf->getValue('base', 'default_avatar'), true); $this->assign('customAvatar', $custom); $language->addKeyForJs('admin', 'confirm_avatar_delete'); if (!OW::getRequest()->isAjax()) { OW::getDocument()->setHeading(OW::getLanguage()->text('admin', 'heading_user_settings')); OW::getDocument()->setHeadingIconClass('ow_ic_gear_wheel'); } OW::getNavigation()->deactivateMenuItems(OW_Navigation::ADMIN_SETTINGS); }
public function moveTemporaryFile($tmpId, $desc) { $tmp = $this->fileTemporaryDao->findById($tmpId); if (!$tmp) { return false; } $tmpFilePath = $this->getTemporaryFilePath($tmp->id); $fileService = BOL_FileService::getInstance(); $file = new BOL_File(); $file->description = htmlspecialchars(trim($desc)); $file->addDatetime = time(); $file->filename = $tmp->filename; $file->userId = $tmp->userId; BOL_FileDao::getInstance()->save($file); try { copy($tmpFilePath, $fileService->getFilePath($file->id)); } catch (Exception $e) { $photo = null; } return $file; }