function uploadProfileImage() { import('file.PublicFileManager'); $fileManager = new PublicFileManager(); $user =& $this->user; $type = $fileManager->getUploadedFileType('profileImage'); $extension = $fileManager->getImageExtension($type); if (!$extension) { return false; } $uploadName = 'profileImage-' . (int) $user->getId() . $extension; if ($fileManager->uploadError('profileImage')) { return false; } if (!$fileManager->uploadSiteFile('profileImage', $uploadName)) { return false; } $filePath = $fileManager->getSiteFilesPath(); list($width, $height) = getimagesize($filePath . '/' . $uploadName); if ($width > 150 || $height > 150 || $width <= 0 || $height <= 0) { $userSetting = null; $user->updateSetting('profileImage', $userSetting); $fileManager->removeSiteFile($filePath); return false; } $userSetting = array('name' => $fileManager->getUploadedFileName('profileImage'), 'uploadName' => $uploadName, 'width' => $width, 'height' => $height, 'dateUploaded' => Core::getCurrentDate()); $user->updateSetting('profileImage', $userSetting); return true; }
/** * Uploads conference custom stylesheet. * @param $settingName string setting key associated with the file */ function uploadStyleSheet($settingName) { $conference =& Request::getConference(); $settingsDao =& DAORegistry::getDAO('ConferenceSettingsDAO'); import('file.PublicFileManager'); $fileManager = new PublicFileManager(); if ($fileManager->uploadError($settingName)) { return false; } if ($fileManager->uploadedFileExists($settingName)) { $type = $fileManager->getUploadedFileType($settingName); if ($type != 'text/plain' && $type != 'text/css') { return false; } $uploadName = $settingName . '.css'; if ($fileManager->uploadConferenceFile($conference->getId(), $settingName, $uploadName)) { $value = array('name' => $fileManager->getUploadedFileName($settingName), 'uploadName' => $uploadName, 'dateUploaded' => date("Y-m-d g:i:s")); $settingsDao->updateSetting($conference->getId(), $settingName, $value, 'object'); return true; } } return false; }
/** * Uploads a conference image. * @param $settingName string setting key associated with the file * @param $locale string */ function uploadImage($settingName, $locale) { $conference =& Request::getConference(); $settingsDao = DAORegistry::getDAO('ConferenceSettingsDAO'); $faviconTypes = array('.ico', '.png', '.gif'); import('classes.file.PublicFileManager'); $fileManager = new PublicFileManager(); if ($fileManager->uploadError($settingName)) { return false; } if ($fileManager->uploadedFileExists($settingName)) { $type = $fileManager->getUploadedFileType($settingName); $extension = $fileManager->getImageExtension($type); if (!$extension) { return false; } if ($settingName == 'conferenceFavicon' && !in_array($extension, $faviconTypes)) { return false; } $uploadName = $settingName . '_' . $locale . $extension; if ($fileManager->uploadConferenceFile($conference->getId(), $settingName, $uploadName)) { // Get image dimensions $filePath = $fileManager->getConferenceFilesPath($conference->getId()); list($width, $height) = getimagesize($filePath . '/' . $uploadName); $value = $conference->getSetting($settingName); $value[$locale] = array('name' => $fileManager->getUploadedFileName($settingName), 'uploadName' => $uploadName, 'width' => $width, 'height' => $height, 'mimeType' => $fileManager->getUploadedFileType($settingName), 'dateUploaded' => Core::getCurrentDate()); $settingsDao->updateSetting($conference->getId(), $settingName, $value, 'object', true); return true; } } return false; }
/** * Save changes to location settings. */ function saveLocationSettings() { $this->validate(); $this->setupTemplate(true); $schedConf =& Request::getSchedConf(); if (!$schedConf) { Request::redirect(null, null, 'index'); } import('manager.form.LocationSettingsForm'); $settingsForm = new LocationSettingsForm(); $settingsForm->readInputData(); $editData = false; $locationFiles =& $schedConf->getSetting('locationFiles'); if (Request::getUserVar('uploadLocationFile')) { // Get a numeric key for this file. $thisFileKey = 0; if (isset($locationFiles[$settingsForm->getFormLocale()])) { foreach ($locationFiles[$settingsForm->getFormLocale()] as $key => $junk) { $thisFileKey = $key + 1; } } import('file.PublicFileManager'); $fileManager = new PublicFileManager(); $success = !$fileManager->uploadError('locationFile'); if ($success && ($success = $fileManager->uploadedFileExists('locationFile'))) { $oldName = $fileManager->getUploadedFileName('locationFile'); $extension = $fileManager->getExtension($oldName); if (!$extension) { break; } $uploadName = 'location-' . $thisFileKey . '.' . $extension; if ($success && ($success = $fileManager->uploadSchedConfFile($schedConf->getId(), 'locationFile', $uploadName))) { $value = array('name' => $oldName, 'uploadName' => $uploadName, 'dateUploaded' => Core::getCurrentDate(), 'title' => Request::getUserVar('locationFileTitle')); $locationFiles[$settingsForm->getFormLocale()][$thisFileKey] =& $value; $settingsForm->setData('locationFiles', $locationFiles); $settingsForm->setData('locationFileTitle', ''); $schedConf->updateSetting('locationFiles', $locationFiles, 'object', true); } } if (!$success) { $settingsForm->addError('locationFiles', __('common.uploadFailed')); } $editData = true; } else { $formLocale = $settingsForm->getFormLocale(); $deleteKey = null; if (isset($locationFiles[$formLocale])) { foreach ($locationFiles[$formLocale] as $key => $junk) { if (Request::getUserVar("deleteLocationFile-{$formLocale}-{$key}")) { $deleteKey = $key; } } } if ($deleteKey !== null) { import('file.PublicFileManager'); $fileManager = new PublicFileManager(); if ($fileManager->removeSchedConfFile($schedConf->getId(), $locationFiles[$formLocale][$deleteKey]['uploadName'])) { unset($locationFiles[$formLocale][$deleteKey]); $schedConf->updateSetting('locationFiles', $locationFiles, 'object', true); } $editData = true; } } if (!$editData && $settingsForm->validate()) { $settingsForm->execute(); $templateMgr =& TemplateManager::getManager(); $templateMgr->assign(array('currentUrl' => Request::url(null, null, null, 'location'), 'pageTitle' => 'schedConf.location', 'message' => 'common.changesSaved', 'backLink' => Request::url(null, null, Request::getRequestedPage()), 'backLinkLabel' => 'manager.conferenceSiteManagement')); $templateMgr->display('common/message.tpl'); } else { $settingsForm->display(); } }
/** * Uploads a program file. * @param $settingName string setting key associated with the file * @param $locale string */ function uploadProgram($settingName, $locale) { $schedConf =& Request::getSchedConf(); import('file.PublicFileManager'); $fileManager = new PublicFileManager(); if ($fileManager->uploadError($settingName)) { return false; } if ($fileManager->uploadedFileExists($settingName)) { $oldName = $fileManager->getUploadedFileName('programFile'); $extension = $fileManager->getExtension($oldName); if (!$extension) { return false; } $uploadName = 'program-' . $locale . '.' . $extension; if ($fileManager->uploadSchedConfFile($schedConf->getId(), $settingName, $uploadName)) { $value = $schedConf->getSetting($settingName); $value[$locale] = array('name' => $oldName, 'uploadName' => $uploadName, 'dateUploaded' => Core::getCurrentDate()); $schedConf->updateSetting($settingName, $value, 'object', true); return true; } } return false; }