/** * 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; }
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); } } }