' . t('About') . ''; $output .= '
' . t('The Configuration Manager module provides a user interface for importing and exporting configuration changes between installations of your website in different environments. Configuration is stored in YAML format. For more information, see the online documentation for the Configuration Manager module.', [':url' => 'https://www.drupal.org/documentation/administer/config']) . '
'; $output .= '' . t('Compare the configuration uploaded to your sync directory with the active configuration before completing the import.') . '
'; return $output; case 'config.export_full': $output = ''; $output .= '' . t('Export and download the full configuration of this site as a gzipped tar file.') . '
'; return $output; case 'config.import_full': $output = ''; $output .= '' . t('Upload a full site configuration archive to the sync directory. It can then be compared and imported on the Synchronize page.') . '
'; return $output; case 'config.export_single': $output = ''; $output .= '' . t('Choose a configuration item to display its YAML structure.') . '
'; return $output; case 'config.import_single': $output = ''; $output .= '' . t('Import a single configuration item by pasting its YAML structure into the text field.') . '
'; return $output; } } /** * Implements hook_file_download(). */ function config_file_download($uri) { $scheme = StreamWrapperManager::getScheme($uri); $target = StreamWrapperManager::getTarget($uri); if ($scheme == 'temporary' && $target == 'config.tar.gz') { if (\Drupal::currentUser()->hasPermission('export configuration')) { $request = \Drupal::request(); $date = DateTime::createFromFormat('U', $request->server->get('REQUEST_TIME')); $date_string = $date->format('Y-m-d-H-i'); $hostname = str_replace('.', '-', $request->getHttpHost()); $filename = 'config-' . $hostname . '-' . $date_string . '.tar.gz'; $disposition = 'attachment; filename="' . $filename . '"'; return [ 'Content-disposition' => $disposition, ]; } return -1; } }