Skip to content
config.module 2.86 KiB
Newer Older
<?php

/**
 * @file
 * Allows site administrators to modify configuration.
 */

/**
 * Implements hook_help().
 */
function config_help($path, $arg) {
  switch ($path) {
    case 'admin/help#config':
      $output = '';
      $output .= '<h3>' . t('About') . '</h3>';
      $output .= '<p>' . t('The Configuration manager module provides a user interface for importing and exporting configuration changes; i.e., for staging configuration data between multiple instances of this web site. For more information, see the online handbook entry for <a href="!url">Configuration manager module</a>', array(
        '!url' => 'http://drupal.org/documentation/administer/config',
      )) . '</p>';
      return $output;

    case 'admin/config/development/sync':
      $output = '';
      $output .= '<p>' . t('Import configuration that is placed in your staging directory. All changes, deletions, renames, and additions are listed below.') . '</p>';
      return $output;
  }
}

/**
 * Implements hook_permission().
 */
function config_permission() {
  $permissions['synchronize configuration'] = array(
    'title' => t('Synchronize configuration'),
    'restrict access' => TRUE,
  );
  $permissions['export configuration'] = array(
    'title' => t('Export configuration'),
    'restrict access' => TRUE,
  );
  $permissions['import configuration'] = array(
    'title' => t('Import configuration'),
    'restrict access' => TRUE,
  );
/**
 * Implements hook_file_download().
 */
function config_file_download($uri) {
  $scheme = file_uri_scheme($uri);
  $target = file_uri_target($uri);
  if ($scheme == 'temporary' && $target == 'config.tar.gz') {
    return array(
      'Content-disposition' => 'attachment; filename="config.tar.gz"',
    );
  }
}

/**
 * Implements hook_menu().
 */
function config_menu() {
  $items['admin/config/development/sync'] = array(
    'title' => 'Synchronize configuration',
    'description' => 'Synchronize configuration changes.',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('config_admin_import_form'),
    'access arguments' => array('synchronize configuration'),
    'file' => 'config.admin.inc',
  );
  $items['admin/config/development/export'] = array(
    'title' => 'Configuration export',
    'description' => 'Export your site configuration',
    'route_name' => 'config_export',
  );
  $items['admin/config/development/import'] = array(
    'title' => 'Configuration import',
    'description' => 'Import configuration for your site',
    'route_name' => 'config_import',
  );
  $items['admin/config/development/sync/diff/%'] = array(
    'title' => 'Configuration file diff',
    'description' => 'Diff between active and staged configuraiton.',
  $items['admin/config/development/sync/import'] = array(
    'title' => 'Import',
    'type' => MENU_DEFAULT_LOCAL_TASK,
  );
  return $items;
}