Source for file install.php
Documentation is available at install.php
// hide errors when trying to connect to the database. very unsettling when you
// have pages of errors to scroll through
if( !empty( $_REQUEST['submit_db_info'] ) && !empty( $_REQUEST['step'] ) && $_REQUEST['step'] == 3 ) {
// here we force the use of adodb during installation
// If we are jumping to start over reset the session
if( !empty( $_REQUEST['step'] ) && $_REQUEST['step'] == 0 ) {
unset ( $_REQUEST['BWSESSION'] );
// Early check of memory limit just to be sure we can run.
// Set the number '15' to a lower value if you know that the install process can handle it.
$dir = dirname( $_SERVER['SCRIPT_NAME'] );
// We don't use smarty to avoid using any memory since we already know there is a problem.
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Install Bitweaver - Not enough memory!</title>
<!-- @import url( '. $dir. '/style/install.css ); -->
<div class="bittop"><h1>Bitweaver Installer</h1></div>
<h1>Not enough memory!</h1>
<form action="'. $dir. '/install.php">
<legend>Unable to run installer</legend>
<p class="alert alert-danger">The memory limit of <strong>"'. get_cfg_var( 'memory_limit' ). '"</strong> is not high enough to run the bitweaver installer. Please up the memory limit in you php.ini to at least 16M to install and run bitweaver.</p>
<input type="submit" value="Reload" size="20"/>
require_once( 'install_inc.php' );
// this variable will be appended to the template file called - useful for displaying messages after data input
// work out where in the installation process we are
if( !isset ( $_REQUEST['step'] )) {
$step = $_REQUEST['step'];
if( !empty( $_REQUEST['reload'] )) {
header( "Location: ". $_SERVER['HTTP_REFERER'] );
// for pages that should only be shown during a first install
if( ( empty( $gBitDbType ) || !$gBitUser->isAdmin() ) || ( $_SESSION['first_install'] ) ) {
$onlyDuringFirstInstall = TRUE;
$onlyDuringFirstInstall = FALSE;
// For MySql only, and if server supports InnoDB Engine
// we catch here if it was selected as storage type and
// set a session var for use in install_packages.php
if( isset ( $_REQUEST['use_innodb'] ) ) {
$_SESSION['use_innodb'] = TRUE;
// updating $install_file name
$install_file[$i]['file'] = 'welcome';
$install_file[$i++ ]['name'] = 'Welcome';
$install_file[$i]['file'] = 'checks';
$install_file[$i++ ]['name'] = 'Server';
// Upgrading of a database can only occur during a first install
if( $onlyDuringFirstInstall ) {
$install_file[$i]['file'] = 'options';
$install_file[$i++ ]['name'] = 'Options';
// make it possible to reset the config/kernel/config_inc.php file if it's already filled with data
if( $onlyDuringFirstInstall ) {
$install_file[$i]['file'] = 'database';
$install_file[$i++ ]['name'] = 'Database';
$install_file[$i]['file'] = 'database_reset';
$install_file[$i++ ]['name'] = 'Database';
// if the admin is already set up and we are not installing for the first time, we skip admin creation page
if( $onlyDuringFirstInstall ) {
$install_file[$i]['file'] = 'admin_inc';
$install_file[$i++ ]['name'] = 'Admin';
$install_file[$i]['file'] = 'packages';
$install_file[$i++ ]['name'] = 'Packages';
if( !$onlyDuringFirstInstall ) {
$install_file[$i]['file'] = 'upgrade';
$install_file[$i++ ]['name'] = 'Upgrade';
$install_file[$i]['file'] = 'cleanup';
$install_file[$i++ ]['name'] = 'Cleanup';
// these settings should only be present when we are installing for the first time
if( $onlyDuringFirstInstall ) {
$install_file[$i]['file'] = 'bit_settings';
$install_file[$i++ ]['name'] = 'Settings';
// only show db population page when we haven't just done an upgrade
if( !isset ( $_SESSION['upgrade'] ) ) {
$install_file[$i]['file'] = 'datapump';
$install_file[$i++ ]['name'] = 'Content';
$install_file[$i]['file'] = 'version';
$install_file[$i++ ]['name'] = 'Update';
$install_file[$i]['file'] = 'final';
$install_file[$i]['name'] = 'Done';
//don't increment last $i since it's used later on
// Needed for version number
$gBitSmarty->assign_by_ref( 'gBitSystem', $gBitSystem );
if( !empty( $_POST['signin'] ) ) {
$gBitUser->login( $_POST['user'], $_POST['pass'] );
if( !$gBitUser->isRegistered() ) {
$gBitSmarty->assign( 'error', current( $gBitUser->mErrors ) );
// if we have to log in, call login template and die
if( !empty( $gBitDbType ) && !empty( $gBitInstaller->mPackages['users']['installed'] ) && !$gBitUser->isAdmin() && !$_SESSION['first_install'] ) {
$gBitSmarty->assign( 'install_file', INSTALL_PKG_PATH. "templates/install_". $install_file. ".tpl" );
$gBitSmarty->assign( 'progress', 0 );
// if the page has been renamed to anything else than 'install.php' we send it to the last installation stage
if( !strpos( $_SERVER['SCRIPT_NAME'],'install/install.php' ) ) {
$gBitSmarty->assign( 'renamed',basename( $_SERVER['SCRIPT_NAME'] ) );
// finally we are ready to include the actual php file
include_once( 'install_'. $install_file[$step]['file']. '.php' );
$install_file = set_menu( $install_file, $step );
$gBitSmarty->assign( 'install_file', INSTALL_PKG_PATH. "templates/install_". $install_file[$step]['file']. $app. ".tpl" );
$gBitInstaller->in_display( $install_file[$step]['name'], INSTALL_PKG_PATH. 'templates/install.tpl' );
|