Beispiel #1
0
 /**
  * Internal function to return a Conference object from a row.
  * @param $row array
  * @return Conference
  */
 function &_returnConferenceFromRow(&$row)
 {
     $conference = new Conference();
     $conference->setConferenceId($row['conference_id']);
     $conference->setPath($row['path']);
     $conference->setSequence($row['seq']);
     $conference->setEnabled($row['enabled']);
     $conference->setPrimaryLocale($row['primary_locale']);
     HookRegistry::call('ConferenceDAO::_returnConferenceFromRow', array(&$conference, &$row));
     return $conference;
 }
 /**
  * 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));
 }
Beispiel #3
0
 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);
         }
     }
 }