00001 <?php
00002
00021
00022 define('INSTALLER_DEFAULT_CONTACT', 'common.omp');
00023 define('INSTALLER_DEFAULT_MIN_PASSWORD_LENGTH', 6);
00024
00025 import('lib.pkp.classes.install.PKPInstall');
00026
00027 class Install extends PKPInstall {
00028
00036 function Install($params, $descriptor = 'install.xml', $isPlugin = false) {
00037 parent::PKPInstall($descriptor, $params, $isPlugin);
00038 }
00039
00040
00041
00042
00043
00048 function getCreateDirectories() {
00049 $directories = parent::getCreateDirectories();
00050 $directories[] = 'presses';
00051 return $directories;
00052 }
00053
00058 function createData() {
00059
00060 $locale = $this->getParam('locale');
00061 $siteDao =& DAORegistry::getDAO('SiteDAO', $this->dbconn);
00062 $site = $siteDao->newDataObject();
00063 $site->setRedirect(0);
00064 $site->setMinPasswordLength(INSTALLER_DEFAULT_MIN_PASSWORD_LENGTH);
00065 $site->setPrimaryLocale($locale);
00066 $site->setInstalledLocales($this->installedLocales);
00067 $site->setSupportedLocales($this->installedLocales);
00068 if (!$siteDao->insertSite($site)) {
00069 $this->setError(INSTALLER_ERROR_DB, $this->dbconn->errorMsg());
00070 return false;
00071 }
00072
00073
00074 $emailTemplateDao =& DAORegistry::getDAO('EmailTemplateDAO');
00075 $emailTemplateDao->installEmailTemplates($emailTemplateDao->getMainEmailTemplatesFilename());
00076 foreach ($this->installedLocales as $locale) {
00077 $emailTemplateDao->installEmailTemplateData($emailTemplateDao->getMainEmailTemplateDataFilename($locale));
00078 }
00079
00080 $siteSettingsDao =& DAORegistry::getDAO('SiteSettingsDAO');
00081 $siteSettingsDao->installSettings('registry/siteSettings.xml', array(
00082 'contactEmail' => $this->getParam('adminEmail')
00083 ));
00084
00085
00086 $userDao =& DAORegistry::getDAO('UserDAO', $this->dbconn);
00087 $user = new User();
00088 $user->setUsername($this->getParam('adminUsername'));
00089 $user->setPassword(Validation::encryptCredentials($this->getParam('adminUsername'), $this->getParam('adminPassword'), $this->getParam('encryption')));
00090 $user->setFirstName($user->getUsername());
00091 $user->setLastName('');
00092 $user->setEmail($this->getParam('adminEmail'));
00093 $user->setInlineHelp(1);
00094 if (!$userDao->insertUser($user)) {
00095 $this->setError(INSTALLER_ERROR_DB, $this->dbconn->errorMsg());
00096 return false;
00097 }
00098
00099
00100 AppLocale::requireComponents(LOCALE_COMPONENT_OMP_DEFAULT_SETTINGS);
00101 $userGroupDao =& DAORegistry::getDao('UserGroupDAO', $this->dbconn);
00102 $adminUserGroup = new UserGroup();
00103 $adminUserGroup->setRoleId(ROLE_ID_SITE_ADMIN);
00104 $adminUserGroup->setContextId(CONTEXT_ID_NONE);
00105 $adminUserGroup->setPath(ROLE_PATH_SITE_ADMIN);
00106 $adminUserGroup->setDefault(true);
00107 foreach ($this->installedLocales as $locale) {
00108 $name = __('default.groups.name.siteAdmin', array(), $locale);
00109 $namePlural = __('default.groups.plural.siteAdmin', array(), $locale);
00110 $adminUserGroup->setData('name', $name, $locale);
00111 $adminUserGroup->setData('namePlural', $namePlural, $locale);
00112 }
00113 if (!$userGroupDao->insertUserGroup($adminUserGroup)) {
00114 $this->setError(INSTALLER_ERROR_DB, $this->dbconn->errorMsg());
00115 return false;
00116 }
00117
00118
00119 if (!$userGroupDao->assignUserToGroup($user->getId(), $adminUserGroup->getId())) {
00120 $this->setError(INSTALLER_ERROR_DB, $this->dbconn->errorMsg());
00121 return false;
00122 }
00123
00124 return true;
00125 }
00126 }
00127
00128 ?>