install.php3
上传用户:xiao730204
上传日期:2007-01-04
资源大小:141k
文件大小:5k
源码类别:

WEB邮件程序

开发平台:

PHP

  1. <?php
  2. /* Override the default setting of ./prometheus-library */
  3. // $PROMETHEUS_LIBRARY_BASE = './';
  4. /* Include all of the prometheus library bits */
  5. include( './prometheus-library/all.lib' );
  6. /* Autoload these classes */
  7. AutoLoad( 'PhpCapabilities' );
  8. AutoLoad( 'TemplateObject' );
  9. AutoLoad( 'Install_Mysql_Db' );
  10. /* Detect the capabilities of the php that is installed */
  11. $php_capabilities = new PhpCapabilities();
  12. $php_capabilities->Detect();
  13. $php_up_to_snuff = 0;
  14. if ( $php_capabilities->mysql != 1 ) {
  15.    echo( 'NO SUPPORTED DATABASES - <BR>' );
  16.    echo( 'Please install one of the following databases :<br>' );
  17.    echo( '<ul>' );
  18.    echo( '<li>Mysql --with-mysql' );
  19.    echo( '</ul>' );
  20.    $php_up_to_snuff = 0;
  21. } else {
  22.    $php_up_to_snuff = 1;
  23. }
  24. if ( $php_capabilities->imap != 1 ) {
  25.    echo( 'NO IMAP SUPPORT - <BR>' );
  26.    echo( 'Please configure php with imap and try again.' );
  27.    echo( '--with-imap MISSING' );
  28.    $php_up_to_snuff = 0;
  29. } else {
  30.    $php_up_to_snuff = 1;
  31. }
  32. if ( $php_up_to_snuff == 0 ) {
  33.    // Their php does not meet our requirements
  34.    exit();
  35. }
  36. /* Create the template obj */
  37. $template_obj     = new TemplateObject();
  38. //echo 'Mysql available : ' . $php_capabilities->mysql . '<br>';
  39. //echo 'IMAP available  : ' . $php_capabilities->imap  . '<br>';
  40. //phpinfo();
  41. $template_dir = './templates/install';
  42. // Load the theme for the installer
  43. include( $template_dir . '/theme.inc' );
  44. $title = 'Prometheus installer';
  45. switch( $action ) {
  46.    case MYSQL_DATABASE_CREATE:
  47.       $status = '<ul>';
  48.       $database_creation = new Install_Mysql_Db(
  49.          $temp = new DbDefaults(
  50.             $db_username,
  51.             $db_password,
  52.             $db_hostname,
  53.             '',
  54.             'mysql',
  55.             true,
  56.             ''
  57.          )
  58.       );
  59.       $database_creation->sql_base = './prometheus-library/sql/table/mysql';
  60.       if ( $admin_privileges_db == 'on' ) {
  61.          $database_creation->Create_AdminPrivileges_Db();
  62.          $status .= '<li>Created the user admin privileges database';
  63.       }
  64.       if ( $customer_db == 'on' ) {
  65.          $database_creation->Create_CustomerInformation_Db();
  66.          $status .= '<li>Created the customer information database';
  67.       }
  68.       if ( $domain_db == 'on' ) {
  69.          $database_creation->Create_Domains_Db();
  70.          $status .= '<li>Created the user domains database';
  71.       }
  72.       if ( $mail_settings_db == 'on' ) {
  73.          $database_creation->Create_MailServerSettings_Db();
  74.          $status .= '<li>Created the mail server settings database';
  75.       }
  76.       if ( $user_settings_db == 'on' ) {
  77.          $database_creation->Create_Settings_Db();
  78.          $status .= '<li>Created the user settings database';
  79.       }
  80.       if ( $session_db == 'on' ) {
  81.          $database_creation->Create_Sessions_Db();
  82.          $status .= '<li>Created the sessions database';
  83.       }
  84.       if ( $user_db == 'on' ) {
  85.          $database_creation->Create_User_Db();
  86.          $status .= '<li>Created the user database';
  87.       }
  88.       if ( $prouser_create == 'on' ) {
  89.          $database_creation->Create_ProUser();
  90.          $status .= '<li>Created the prouser - prometheus mysql user';
  91.       }
  92.       $status .= '</ul>';
  93.       $title      = 'Database create';
  94.       $form       = 'create_results.inc';
  95.       $action     = 'CREATE_DB';
  96.       $template_obj->Register( 'status', $status );
  97.       break;
  98.    case CHOOSE_DATABASE:
  99.       if ( $db_type == 'mysql' ) {
  100.          $title   = 'Database creation';
  101.          $form    = 'mysql/create_dbs.inc';
  102.          $action  = 'MYSQL_AUTH_PARAMS';
  103.       }
  104.       break;
  105.    case MYSQL_AUTH_PARAMS:
  106.       $title      = 'Mysql database creation account';
  107.       $form       = 'mysql/auth_params.inc';
  108.       $action     = 'MYSQL_DATABASE_CREATE';
  109.       break;
  110.    default:
  111.       $action     = 'CHOOSE_DATABASE';
  112.       $title      = 'Choose database';
  113.       $form       = 'choose_database.inc';
  114.       break;
  115. }
  116. $template_obj->Register(      'title', $title );
  117. $template_obj->ParseTemplate( $template_dir . '/header.inc' );
  118. if ( $action != 'CHOOSE_DATABASE' ) {
  119.    $hidden_vars = Array(
  120.       'action',
  121.       'db_type',
  122.       'session_db',
  123.       'user_db',
  124.       'domain_db',
  125.       'admin_privileges_db',
  126.       'customer_db',
  127.       'mail_settings_db',
  128.       'user_settings_db',
  129.       'prouser_create'
  130.    );
  131.    for( $i = 0; $i < count( $hidden_vars ); $i++ ) {
  132.       $var = $hidden_vars[ $i ];
  133.       $template_obj->Register( $var, $$var );
  134.    }
  135.    $template_obj->ParseTemplate( $template_dir . '/hidden.inc' );
  136. }
  137. $template_obj->ParseTemplate( $template_dir . '/' . $form );
  138. $template_obj->ParseTemplate( $template_dir . '/footer.inc' );
  139. ?>