diff options
Diffstat (limited to 'includes/database/sqlite/install.inc')
-rw-r--r-- | includes/database/sqlite/install.inc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/includes/database/sqlite/install.inc b/includes/database/sqlite/install.inc index 82ed0a48d..a8a12410d 100644 --- a/includes/database/sqlite/install.inc +++ b/includes/database/sqlite/install.inc @@ -21,5 +21,32 @@ class DatabaseTasks_sqlite extends DatabaseTasks { public function minimumVersion() { return '3.3.7'; } + + public function getFormOptions($database) { + $form = parent::getFormOptions($database); + + // Remove the options that only apply to client/server style databases. + unset($form['username'], $form['password'], $form['advanced_options']['host'], $form['advanced_options']['port']); + + // Make the text more accurate for SQLite. + $form['database']['#title'] = st('Database file'); + $form['database']['#description'] = st('The absolute path to the file where @drupal data will be stored. This must be writable by the web server and should exist outside of the web root.', array('@drupal' => drupal_install_profile_distribution_name())); + $default_database = conf_path(FALSE, TRUE) . '/files/.ht.sqlite'; + $form['database']['#default_value'] = empty($database['database']) ? $default_database : $database['database']; + return $form; + } + + public function validateDatabaseSettings($database) { + // Perform standard validation. + $errors = parent::validateDatabaseSettings($database); + + // Verify the database is writable. + $db_directory = new SplFileInfo(dirname($database['database'])); + if (!$db_directory->isWritable()) { + $errors[$database['driver'] . '][database'] = st('The directory you specified is not writable by the web server.'); + } + + return $errors; + } } |