• Main Page
  • Modules
  • Classes
  • Files
  • File List

classes/install/Install.inc.php

00001 <?php
00002 
00021 // Default installation data
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    // Installer actions
00042    //
00043 
00048    function getCreateDirectories() {
00049       $directories = parent::getCreateDirectories();
00050       $directories[] = 'presses';
00051       return $directories;
00052    }
00053 
00058    function createData() {
00059       // Add initial site data
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       // Install email template list and data for each locale
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       // Add initial site administrator user
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       // Create an admin user group
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       // Put the installer into this user group
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 ?>

Generated on Mon Sep 17 2012 13:58:55 for Open Monograph Press by  doxygen 1.7.1