install =& $install;
}
function run()
{
/* Check input? */
if ( $this->install->ipsclass->input['sub'] == 'check' )
{
/* Make sure the fields were filled out */
if ( ! $this->install->ipsclass->input['db_host'] || ! $this->install->ipsclass->input['db_name'] || ! $this->install->ipsclass->input['db_user'] )
{
$errors[] = 'Форма должна быть полностью заполнена';
}
//-----------------------------------------
// Error check
//-----------------------------------------
if ( is_array( $errors ) )
{
$this->install->template->warning( $errors );
return;
}
//-----------------------------------------
// Load DB driver..
//-----------------------------------------
require_once( INS_KERNEL_PATH . 'class_db_' . $this->install->saved_data['sql_driver'] . '.php' );
$classname = "db_driver_".$this->install->saved_data['sql_driver'];
$DB = new $classname;
$DB->obj['sql_database'] = $this->install->ipsclass->input['db_name'];
$DB->obj['sql_user'] = $this->install->ipsclass->input['db_user'];
$DB->obj['sql_pass'] = $_REQUEST['db_pass'];
$DB->obj['sql_host'] = $this->install->ipsclass->input['db_host'];
$DB->obj['sql_tbl_prefix'] = $this->install->ipsclass->input['db_pre'];
//--------------------------------------------------
// Any "extra" configs required for this driver?
//--------------------------------------------------
if ( file_exists( INS_ROOT_PATH.'sql/'.$this->install->saved_data['sql_driver'].'_install.php' ) )
{
require_once( INS_ROOT_PATH.'sql/'.$this->install->saved_data['sql_driver'].'_install.php' );
$extra_install = new install_extra();
$extra_install->ipsclass =& $this->install->ipsclass;
$extra_install->install_form_process();
if ( count( $extra_install->errors ) )
{
$this->install->template->warning( implode( "
", $extra_install->errors ) );
}
if ( is_array( $extra_install->info_extra ) and count( $extra_install->info_extra ) )
{
foreach( $extra_install->info_extra as $k => $v )
{
$this->install->saved_data[ '__sql__' . $k ] = $v;
}
}
if ( is_array( $DB->connect_vars ) and count( $DB->connect_vars ) )
{
foreach( $DB->connect_vars as $k => $v )
{
$DB->connect_vars[ $k ] = $extra_install->info_extra[ $k ];
}
}
}
//-----------------------------------------
// Error check
//-----------------------------------------
if ( is_array( $errors ) )
{
$this->install->template->warning( $errors );
return;
}
//--------------------------------
// Make CONSTANT
//--------------------------------
define( 'SQL_DRIVER' , $this->install->saved_data['sql_driver'] );
define( 'IPS_MAIN_DB_CLASS_LOADED', TRUE );
//--------------------------------
// Try a DB connection
//--------------------------------
$DB->return_die = 1;
if ( ! $DB->connect() )
{
$errors[] = $DB->error;
if( !count($errors) )
{
$errors[] = "Не получилось соединиться с сервером Базы Данных. Пожалуйста перепроверьте всю информацию и попробуйте снова.";
}
}
//-----------------------------------------
// Error check
//-----------------------------------------
if ( is_array( $errors ) )
{
$this->install->template->warning( $errors );
return;
}
/* Save Form Data */
$this->install->saved_data['db_host'] = $this->install->ipsclass->input['db_host'];
$this->install->saved_data['db_name'] = $this->install->ipsclass->input['db_name'];
$this->install->saved_data['db_user'] = $this->install->ipsclass->input['db_user'];
$this->install->saved_data['db_pass'] = $_REQUEST['db_pass'];
$this->install->saved_data['db_pre'] = $this->install->ipsclass->input['db_pre'];
$this->install->saved_data['_drop_tables'] = $this->install->ipsclass->input['_drop_tables'];
//-----------------------------------------
// Tables exist?
//-----------------------------------------
if ( ! $this->install->saved_data['_drop_tables'] AND $DB->field_exists( 'id', 'members' ) )
{
/* Output */
$this->install->saved_data['_show_overwrite'] = 1;
$this->install->template->append( $this->install->template->db_page( $drivers ) );
$this->install->template->next_action = '?p=db&sub=check';
//-----------------------------------------
// Show overwrite?
//-----------------------------------------
$html = "
Вы пытаетесь установить приложение в базу где уже есть таблицы от предыдущей установки.
Если вы хотите продолжить установку, то помните что все существующие таблицы с данными будут удалены.
Если вы хотите установить приложение с использованием этой базы и не потерять существующие таблицы, используйте другой перфикс таблиц.