' . t('About') . ''; $output .= '

' . 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 Configuration manager module', array( '!url' => 'http://drupal.org/documentation/administer/config', )) . '

'; return $output; case 'admin/config/development/configuration/sync': $output = ''; $output .= '

' . t('Import configuration that is placed in your staging directory. All changes, deletions, renames, and additions are listed below.') . '

'; 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, ); return $permissions; } /** * 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/configuration'] = array( 'title' => 'Configuration management', 'description' => 'Import, export, or synchronize your site configuration.', 'route_name' => 'config.sync', ); return $items; } /** * Implements hook_menu_link_defaults(). */ function config_menu_link_defaults() { $links['config.admin.management'] = array( 'link_title' => 'Configuration management', 'description' => 'Import, export, or synchronize your site configuration.', 'route_name' => 'config.sync', 'parent' => 'system.admin.config.development', ); return $links; }