function restoreVersions($args, &$request) { $this->validate(); $conference =& $request->getConference(); $rtAdmin = new ConferenceRTAdmin($conference->getId()); $rtAdmin->restoreVersions(); // If the conference RT was configured, change its state to // "disabled" because the RT version it was configured for // has now been deleted. $rtDao = DAORegistry::getDAO('RTDAO'); $conferenceRt = $rtDao->getConferenceRTByConference($conference); if ($conferenceRt) { $conferenceRt->setVersion(null); $rtDao->updateConferenceRT($conferenceRt); } $request->redirect(null, null, null, 'versions'); }
/** * Save conference settings. */ function execute() { $conferenceDao =& DAORegistry::getDAO('ConferenceDAO'); if (isset($this->conferenceId)) { $conference =& $conferenceDao->getConference($this->conferenceId); } if (!isset($conference)) { $conference = new Conference(); } $conference->setPath($this->getData('conferencePath')); $conference->setEnabled($this->getData('enabled')); if ($conference->getId() != null) { $conferenceDao->updateConference($conference); } else { $site =& Request::getSite(); // Give it a default primary locale. $conference->setPrimaryLocale($site->getPrimaryLocale()); $conferenceId = $conferenceDao->insertConference($conference); $conferenceDao->resequenceConferences(); // Make the site administrator the conference manager $sessionManager =& SessionManager::getManager(); $userSession =& $sessionManager->getUserSession(); if ($userSession->getUserId() != null && $userSession->getUserId() != 0 && !empty($conferenceId)) { $roleDao =& DAORegistry::getDAO('RoleDAO'); $role = new Role(); $role->setConferenceId($conferenceId); $role->setSchedConfId(0); $role->setUserId($userSession->getUserId()); $role->setRoleId(ROLE_ID_CONFERENCE_MANAGER); $roleDao->insertRole($role); } // Make the file directories for the conference import('file.FileManager'); FileManager::mkdir(Config::getVar('files', 'files_dir') . '/conferences/' . $conferenceId); FileManager::mkdir(Config::getVar('files', 'files_dir') . '/conferences/' . $conferenceId . '/schedConfs'); FileManager::mkdir(Config::getVar('files', 'public_files_dir') . '/conferences/' . $conferenceId); FileManager::mkdir(Config::getVar('files', 'public_files_dir') . '/conferences/' . $conferenceId . '/schedConfs'); // Install default conference settings $conferenceSettingsDao =& DAORegistry::getDAO('ConferenceSettingsDAO'); $titles = $this->getData('title'); AppLocale::requireComponents(array(LOCALE_COMPONENT_OCS_DEFAULT)); $conferenceSettingsDao->installSettings($conferenceId, Config::getVar('general', 'registry_dir') . '/conferenceSettings.xml', array('privacyStatementUrl' => Request::url($this->getData('conferencePath'), 'index', 'about', 'submissions', null, null, 'privacyStatement'), 'loginUrl' => Request::url('index', 'index', 'login'), 'conferenceUrl' => Request::url($this->getData('conferencePath'), null), 'conferencePath' => $this->getData('conferencePath'), 'primaryLocale' => $site->getPrimaryLocale(), 'aboutUrl' => Request::url($this->getData('conferencePath'), 'index', 'about', null), 'accountUrl' => Request::url($this->getData('conferencePath'), 'index', 'user', 'register'), 'conferenceName' => $titles[$site->getPrimaryLocale()])); // Install the default RT versions. import('rt.ocs.ConferenceRTAdmin'); $conferenceRtAdmin = new ConferenceRTAdmin($conferenceId); $conferenceRtAdmin->restoreVersions(false); } $conference->updateSetting('title', $this->getData('title'), 'string', true); $conference->updateSetting('description', $this->getData('description'), 'string', true); // Make sure all plugins are loaded for settings preload PluginRegistry::loadAllPlugins(); HookRegistry::call('ConferenceSiteSettingsForm::execute', array(&$this, &$conference)); }
function importConference() { // If necessary, create the conference. $conferenceDao =& DAORegistry::getDAO('ConferenceDAO'); if (!($conference =& $conferenceDao->getConferenceByPath($this->conferencePath))) { if ($this->hasOption('verbose')) { printf("Creating conference\n"); } unset($conference); $conference = new Conference(); $conference->setPath($this->conferencePath); $conference->setPrimaryLocale(Locale::getLocale()); $conference->setEnabled(true); $this->conferenceId = $conferenceDao->insertConference($conference); $conferenceDao->resequenceConferences(); $conference->updateSetting('title', array(Locale::getLocale() => $this->globalConfigInfo['name']), null, true); $this->conferenceIsNew = true; } else { if ($this->hasOption('verbose')) { printf("Using existing conference\n"); } $conference->updateSetting('title', array(Locale::getLocale() => $this->globalConfigInfo['name']), null, true); $this->conferenceId = $conference->getId(); $this->conferenceIsNew = false; } $this->conference =& $conference; $roleDao =& DAORegistry::getDAO('RoleDAO'); if ($this->conferenceIsNew) { // All site admins should get a manager role by default $admins = $roleDao->getUsersByRoleId(ROLE_ID_SITE_ADMIN); foreach ($admins->toArray() as $admin) { $role = new Role(); $role->setConferenceId($this->conferenceId); $role->setUserId($admin->getId()); $role->setRoleId(ROLE_ID_CONFERENCE_MANAGER); $roleDao->insertRole($role); } // Install the default RT versions. import('classes.rt.ocs.ConferenceRTAdmin'); $conferenceRtAdmin = new ConferenceRTAdmin($this->conferenceId); $conferenceRtAdmin->restoreVersions(false); $confSettings = array('itemsPerPage' => array('int', 25), 'numPageLinks' => array('int', 10)); foreach ($confSettings as $settingName => $settingInfo) { list($settingType, $settingValue) = $settingInfo; $this->conference->updateSetting($settingName, $settingValue, $settingType); } } }
/** * Save conference settings. * @param $request PKPRequest */ function execute($request) { $conferenceDao = DAORegistry::getDAO('ConferenceDAO'); if (isset($this->contextId)) { $conference =& $conferenceDao->getById($this->contextId); } if (!isset($conference)) { $conference = $conferenceDao->newDataObject(); } $conference->setPath($this->getData('path')); $conference->setEnabled($this->getData('enabled')); if ($conference->getId() != null) { $isNewConference = false; $conferenceDao->updateObject($conference); $section = null; } else { $isNewConference = true; $site = $request->getSite(); // Give it a default primary locale $conference->setPrimaryLocale($site->getPrimaryLocale()); $conferenceId = $conferenceDao->insertObject($conference); $conferenceDao->resequence(); // Make the site administrator the conference manager of newly created conferences $sessionManager =& SessionManager::getManager(); $userSession =& $sessionManager->getUserSession(); if ($userSession->getUserId() != null && $userSession->getUserId() != 0 && !empty($conferenceId)) { $role = new Role(); $role->setConferenceId($conferenceId); $role->setUserId($userSession->getUserId()); $role->setRoleId(ROLE_ID_MANAGER); $roleDao = DAORegistry::getDAO('RoleDAO'); $roleDao->insertRole($role); } // Make the file directories for the conference import('lib.pkp.classes.file.FileManager'); $fileManager = new FileManager(); $fileManager->mkdir(Config::getVar('files', 'files_dir') . '/conferences/' . $conferenceId); $fileManager->mkdir(Config::getVar('files', 'files_dir') . '/conferences/' . $conferenceId . '/schedConfs'); $fileManager->mkdir(Config::getVar('files', 'public_files_dir') . '/conferences/' . $conferenceId); $fileManager->mkdir(Config::getVar('files', 'public_files_dir') . '/conferences/' . $conferenceId . '/schedConfs'); // Install default conference settings $conferenceSettingsDao = DAORegistry::getDAO('ConferenceSettingsDAO'); $names = $this->getData('name'); AppLocale::requireComponents(LOCALE_COMPONENT_APP_DEFAULT, LOCALE_COMPONENT_APP_COMMON); $dispatcher = $request->getDispatcher(); $conferenceSettingsDao->installSettings($conferenceId, 'registry/conferenceSettings.xml', array('privacyStatementUrl' => $dispatcher->url($request, ROUTE_PAGE, array($this->getData('path'), 'index'), 'about', 'submissions', null, null, 'privacyStatement'), 'loginUrl' => $dispatcher->url($request, ROUTE_PAGE, array('index', 'index'), 'login'), 'conferenceUrl' => $dispatcher->url($request, ROUTE_PAGE, array($this->getData('path'), 'index')), 'conferencePath' => $this->getData('path'), 'primaryLocale' => $site->getPrimaryLocale(), 'aboutUrl' => $dispatcher->url($request, ROUTE_PAGE, array($this->getData('path'), 'index'), 'about'), 'accountUrl' => $dispatcher->url($request, ROUTE_PAGE, array($this->getData('path'), 'index'), 'user', 'register'), 'conferenceName' => $names[$site->getPrimaryLocale()])); // Install the default RT versions. import('classes.rt.ocs.ConferenceRTAdmin'); $conferenceRtAdmin = new ConferenceRTAdmin($conferenceId); $conferenceRtAdmin->restoreVersions(false); } $conference->updateSetting('name', $this->getData('name'), 'string', true); $conference->updateSetting('description', $this->getData('description'), 'string', true); // Make sure all plugins are loaded for settings preload PluginRegistry::loadAllPlugins(); HookRegistry::call('ConferenceSiteSettingsForm::execute', array(&$this, &$conference)); }