// Get operating system if (!isset($_POST['operating_system']) || $_POST['operating_system'] != 'linux' && $_POST['operating_system'] != 'windows') { set_error('Please select a valid operating system'); } else { $operating_system = $_POST['operating_system']; } // Work-out file permissions if ($operating_system == 'windows') { $file_mode = '0777'; $dir_mode = '0777'; } elseif (isset($_POST['world_writeable']) && $_POST['world_writeable'] == 'true') { $file_mode = '0777'; $dir_mode = '0777'; } else { $file_mode = default_file_mode('../includes'); $dir_mode = default_dir_mode('../includes'); } // End operating system specific code // Begin database details code // Check if user has entered a database host if (!isset($_POST['database_host']) || $_POST['database_host'] == '') { set_error('Please enter a database host name'); } // Check if user has entered a database username if (!isset($_POST['database_username']) || $_POST['database_username'] == '') { set_error('Please enter a database username'); } // Check if user has entered a database password if (!isset($_POST['database_password'])) { set_error('Please enter a database password'); }
// Get operating system if (!isset($_POST['operating_system']) or $_POST['operating_system'] != 'linux' and $_POST['operating_system'] != 'windows') { set_error('Please select a valid operating system'); } else { $operating_system = $_POST['operating_system']; } // Work-out file permissions if ($operating_system == 'windows') { $file_mode = '0666'; $dir_mode = '0777'; } elseif (isset($_POST['world_writeable']) and $_POST['world_writeable'] == 'true') { $file_mode = '0666'; $dir_mode = '0777'; } else { $file_mode = default_file_mode('../temp'); $dir_mode = default_dir_mode('../temp'); } // End operating system specific code // Begin database details code // Check if user has entered a database host if (!isset($_POST['database_host']) or $_POST['database_host'] == '') { set_error('Please enter a database host name', 'database_host'); } else { $database_host = trim($_POST['database_host']); } // extract port if available if (isset($database_port)) { unset($database_port); } $aMatches = preg_split('/:/s', $database_host, -1, PREG_SPLIT_NO_EMPTY); if (isset($aMatches[1])) {
/** * fills the tables created by install_tables() **/ function fill_tables($database) { global $config, $admin; write2log('> [fill_tables()]'); $errors = array(); // create a random session name list($usec, $sec) = explode(' ', microtime()); srand((double) $sec + (double) $usec * 100000); $session_rand = rand(1000, 9999); // Work-out file permissions if ($config['operating_system'] == 'windows') { $file_mode = '0644'; $dir_mode = '0755'; } elseif (isset($config['world_writeable']) && $config['world_writeable'] == 'true') { $file_mode = '0666'; $dir_mode = '0777'; } else { $file_mode = default_file_mode(); $dir_mode = default_dir_mode('../temp'); } // fill 'hardcoded' settings and class.secure config __cat_installer_import_sql(dirname(__FILE__) . '/db/data.sql', $database); $current_version = $config['installed_version']; // for optional wysiwyg editors; requires name to be something like // <editorname>_xxx.zip, which will be prefixed with 'opt_' by the wizard, // so second part is the name of the editor if ($config['default_wysiwyg'] !== 'edit_area') { list($ignore, $config['default_wysiwyg'], $ignore) = explode('_', $config['default_wysiwyg'], 3); } // fill settings configured by installer $settings_rows = "INSERT INTO `" . CAT_TABLE_PREFIX . "settings` " . " (name, value) VALUES " . " ('guid', '" . (isset($config['create_guid']) && $config['create_guid'] == 'true' ? $admin->createGUID($config['guid_prefix']) : '') . "')," . " ('app_name', 'cat{$session_rand}')," . " ('cat_build', '{$current_build}')," . " ('cat_version', '{$current_version}')," . " ('default_language', '" . $config['default_language'] . "')," . " ('default_timezone_string', '" . $config['default_timezone_string'] . "')," . " ('installation_time', '" . time() . "')," . " ('operating_system', '" . $config['operating_system'] . "')," . " ('string_dir_mode', '{$dir_mode}')," . " ('string_file_mode', '{$file_mode}')," . " ('website_title', '" . $config['website_title'] . "')," . " ('wysiwyg_editor', '" . $config['default_wysiwyg'] . "')"; $database->query($settings_rows); if ($database->is_error()) { trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR); $errors['settings'] = $database->get_error(); } else { write2log('filled table [settings]'); } // Admin group $full_system_permissions = 'pages,pages_view,pages_add,pages_add_l0,pages_settings,pages_modify,pages_intro,pages_delete,media,media_view,media_upload,media_rename,media_delete,media_create,addons,modules,modules_view,modules_install,modules_uninstall,templates,templates_view,templates_install,templates_uninstall,languages,languages_view,languages_install,languages_uninstall,settings,settings_basic,settings_advanced,access,users,users_view,users_add,users_modify,users_delete,groups,groups_view,groups_add,groups_modify,groups_delete,admintools,service'; $insert_admin_group = "INSERT INTO `" . CAT_TABLE_PREFIX . "groups` VALUES ('1', 'Administrators', '{$full_system_permissions}', '', '')"; $database->query($insert_admin_group); if ($database->is_error()) { trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR); $errors['groups'] = $database->get_error(); } else { write2log('filled table [group]'); } // Admin user $insert_admin_user = "******" . CAT_TABLE_PREFIX . "users` (user_id,group_id,groups_id,active,username,password,email,display_name) VALUES ('1','1','1','1','" . $config['admin_username'] . "','" . md5($config['admin_password']) . "','" . $config['admin_email'] . "','Administrator')"; $database->query($insert_admin_user); if ($database->is_error()) { trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR); $errors['users'] = $database->get_error(); } else { write2log('filled table [users]'); } write2log('< [fill_tables()]'); return array(count($errors) ? false : true, $errors); }