1 system.install system_install()

Implements hook_install().

File

core/modules/system/system.install, line 811
Install, update and uninstall functions for the system module.

Code

function system_install() {
  // Create tables.
  backdrop_install_schema('system');
  $versions = backdrop_get_schema_versions('system');
  $version = $versions ? max($versions) : SCHEMA_INSTALLED;
  backdrop_set_installed_schema_version('system', $version);

  // Set the public files path to the directory with the settings.php file.
  config_set('system.core', 'file_public_path', str_replace('./', '', conf_path() . '/files'));

  // Sets the path of system-appropriate temporary directory.
  config_set('system.core', 'file_temporary_path', file_directory_temp());

  // Clear out module list and hook implementation statics before calling
  // system_rebuild_theme_data().
  module_list(TRUE);
  module_implements_reset();

  // Ensure the schema versions are not based on a previous module list.
  backdrop_static_reset('drupal_get_schema_versions');

  // Load system theme data appropriately.
  system_rebuild_theme_data();

  // Enable the default theme.
  db_update('system')
    ->fields(array('status' => 1))
    ->condition('type', 'theme')
    ->condition('name', 'stark')
    ->execute();

  // Populate the cron key variable.
  $cron_key = backdrop_random_key();
  state_set('cron_key', $cron_key);

  // Set the site_mail to a sensible default. Note that installs via the
  // command line will not have a SERVER_NAME, and so the site mail must be
  // specified manually via the install.sh script --site-mail option.
  $site_mail = 'noreply@' . backdrop_get_bare_domain($_SERVER['SERVER_NAME']);
  if (valid_email_address($site_mail)) {
    config_set('system.core', 'site_mail', $site_mail);
  }
}