5 * Installation hooks for diff module.
11 * Implements hook_requirements().
13 function diff_requirements($phase) {
16 if ($phase == 'runtime') {
17 $config = \Drupal::config('diff.settings');
18 $setting_enabled = $config->get('general_settings.layout_plugins.visual_inline.enabled');
19 $has_htmlDiffAdvanced = class_exists('\HtmlDiffAdvanced');
21 $requirements['html_diff_advanced'] = [
23 'value' => t('Installed correctly'),
24 'description' => t('Diff module has been installed correctly.'),
26 if (!$has_htmlDiffAdvanced) {
27 if ($setting_enabled) {
28 $requirements['html_diff_advanced']['value'] = t('Dependencies not found');
29 $requirements['html_diff_advanced']['severity'] = REQUIREMENT_ERROR;
30 $requirements['html_diff_advanced']['description'] = t("The HTML Diff layout requires the HtmlDiffAdvanced library. Please consult README.txt for installation instructions.");
33 $requirements['html_diff_advanced']['value'] = t('Visual inline layout');
34 $requirements['html_diff_advanced']['severity'] = REQUIREMENT_INFO;
35 $requirements['html_diff_advanced']['description'] = t('Diff adds a visual rendered display, consult README.txt for installation instructions and enable it in <a href=":settings">settings</a>.', [':settings' => Url::fromRoute('diff.general_settings')->toString()]);
44 * Implements hook_install().
46 function diff_install() {
47 $visual_inline = \Drupal::service('plugin.manager.diff.layout')->hasDefinition('visual_inline');
48 // Enable Visual Inline layout if library found.
50 $config = \Drupal::configFactory()->getEditable('diff.settings');
51 $settings_enabled = $config->get('general_settings.layout_plugins.visual_inline.enabled');
52 if (!$settings_enabled) {
53 $config->set('general_settings.layout_plugins.visual_inline.enabled', TRUE);
60 * Delete stale field diff configuration. Please reconfigure diff plugins.
62 function diff_update_8001() {
63 $config = \Drupal::configFactory()->getEditable('diff.settings');
64 $config->clear('entity');
66 $config = \Drupal::configFactory()->getEditable('diff.plugins');
67 $config->clear('field_types');
72 * Update diff.settings to include general_settings.revision_pager_limit.
74 function diff_update_8002() {
75 $config_factory = \Drupal::configFactory();
76 $config = $config_factory->getEditable('diff.settings');
77 $config->set('general_settings.revision_pager_limit', 50);
82 * Delete stale theme configuration.
84 function diff_update_8003() {
85 $config = \Drupal::configFactory()->getEditable('diff.settings');
86 $config->clear('general_settings.theme');
91 * Enable all layout plugins to be used.
93 function diff_update_8004() {
94 $config = \Drupal::configFactory()->getEditable('diff.settings');
95 $plugins = \Drupal::service('plugin.manager.diff.layout')->getDefinitions();
96 foreach ($plugins as $key => $value) {
97 $plugin_options[$key] = $value['label'];
98 $config->set('general_settings.layout_plugins.' . $key . '.enabled', TRUE);
106 function diff_update_8005() {
107 // The original update function had a bug, it set the new configuration of
108 // layout plugins using the old keys (which were changed). Update 8006 will
113 * Update settings, set the new keys of layout plugins.
115 function diff_update_8006() {
116 $config = \Drupal::configFactory()->getEditable('diff.settings');
117 $layout_manager = \Drupal::service('plugin.manager.diff.layout');
118 $layout_manager->clearCachedDefinitions();
119 $plugins = $layout_manager->getDefinitions();
120 $config->clear('general_settings.layout_plugins');
121 foreach ($plugins as $key => $value) {
122 $plugin_options[$key] = $value['label'];
123 $config->set('general_settings.layout_plugins.' . $key . '.enabled', TRUE);
129 * Update settings, renamed 'standard' to 'default'.
131 function diff_update_8008() {
132 $config = \Drupal::configFactory()->getEditable('diff.settings');
133 $config->set('general_settings.visual_inline_theme', 'default');
138 * Remove content type settings.
140 function diff_update_8009() {
141 $config = \Drupal::configFactory()->getEditable('diff.settings');
142 $config->clear('content_type_settings');