Form validation handler for install_settings_form().
install_settings_form_submit()
function install_settings_form_validate($form, &$form_state) {
$driver = $form_state['values']['driver'];
$database = $form_state['values'][$driver];
// When testing the interactive installer, copy the database password and
// the test prefix.
if ($test_prefix = drupal_valid_test_ua()) {
$database['prefix'] = $test_prefix;
$database['password'] = $GLOBALS['databases']['default']['default']['password'];
}
$drivers = drupal_get_database_types();
$reflection = new \ReflectionClass($drivers[$driver]);
$install_namespace = $reflection
->getNamespaceName();
// Cut the trailing \Install from namespace.
$database['namespace'] = substr($install_namespace, 0, strrpos($install_namespace, '\\'));
$database['driver'] = $driver;
// @todo PIFR uses 'db_prefix' instead of 'prefix'. Remove this when it gets
// fixed.
if (!$test_prefix) {
$database['prefix'] = $database['db_prefix'];
}
unset($database['db_prefix']);
$form_state['storage']['database'] = $database;
$errors = install_database_errors($database, $form_state['values']['settings_file']);
foreach ($errors as $name => $message) {
form_set_error($name, $message);
}
}