/** * 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(); } }
/** * Deletes a program file. * @param $settingName string setting key associated with the file * @param $locale string */ function deleteProgram($settingName, $locale = null) { $schedConf =& Request::getSchedConf(); $settingsDao =& DAORegistry::getDAO('SchedConfSettingsDAO'); $setting = $schedConf->getSetting($settingName); import('file.PublicFileManager'); $fileManager = new PublicFileManager(); if ($fileManager->removeSchedConfFile($schedConf->getId(), $locale !== null ? $setting[$locale]['uploadName'] : $setting['uploadName'])) { return $settingsDao->deleteSetting($schedConf->getId(), $settingName, $locale); } else { return false; } }