From 4e2230cb74c0a83b723e46adf3833308f5a090c8 Mon Sep 17 00:00:00 2001 From: thewilkybarkid <chriswilkinson84@gmail.com> Date: Wed, 3 Sep 2014 13:23:35 +0100 Subject: [PATCH] Add and enable the CKEditor Link module --- src/cambridge/cambridge.info | 1 + src/cambridge/cambridge.install | 71 +++++++++++++++++++++++++++++++++ src/cambridge/cambridge.make | 1 + 3 files changed, 73 insertions(+) diff --git a/src/cambridge/cambridge.info b/src/cambridge/cambridge.info index 353c49e..0c60c79 100644 --- a/src/cambridge/cambridge.info +++ b/src/cambridge/cambridge.info @@ -27,6 +27,7 @@ dependencies[] = taxonomy dependencies[] = admin_menu dependencies[] = admin_menu_toolbar dependencies[] = ckeditor +dependencies[] = ckeditor_link dependencies[] = date dependencies[] = email dependencies[] = features diff --git a/src/cambridge/cambridge.install b/src/cambridge/cambridge.install index ad25897..5ccb848 100644 --- a/src/cambridge/cambridge.install +++ b/src/cambridge/cambridge.install @@ -244,12 +244,29 @@ function cambridge_install() { // Turn off Advanced Content Filter. $settings['js_conf'] = 'config.allowedContent = true;'; + $plugins = ckeditor_load_plugins(); + + // Enable CKEditor Link plugin. + $settings['loadPlugins']['ckeditor_link'] = $plugins['ckeditor_link']; + db_update('ckeditor_settings') ->fields(array('settings' => serialize($settings))) ->condition('name', $name) ->execute(); } + // Add the CKEditor Link filter. + foreach (array('filtered_html', 'full_html') as $format_name) { + $format = filter_format_load($format_name); + $format->filters = filter_list_format($format_name); + foreach ($format->filters as $key => $filter) { + $format->filters[$key] = (array) $filter; + } + $format->filters['ckeditor_link_filter']['status'] = 1; + filter_format_save($format); + } + filter_formats_reset(); + // Fix usernames in emails cambridge_update_7101(); } @@ -401,3 +418,57 @@ function cambridge_update_7105() { throw new DrupalUpdateException('Failed to install Pathauto Persistent State module'); } } + +/** + * Enable the CKEditor Link module + */ +function cambridge_update_7106() { + if (module_exists('ckeditor_link') || FALSE === module_exists('ckeditor')) { + return; + } + + if (FALSE === module_enable(array('ckeditor_link'))) { + throw new DrupalUpdateException('Failed to install CKEditor link module'); + } + + $profiles = db_select('ckeditor_settings', 's') + ->fields('s') + ->condition('name', array('Advanced', 'Full'), 'IN') + ->execute() + ->fetchAllAssoc('name'); + + if (0 === count($profiles)) { + // Profiles have changed. + return; + } + + foreach ($profiles as $name => $profile) { + $settings = unserialize($profile->settings); + + $plugins = ckeditor_load_plugins(); + + // Enable CKEditor Link plugin. + $settings['loadPlugins']['ckeditor_link'] = $plugins['ckeditor_link']; + + db_update('ckeditor_settings') + ->fields(array('settings' => serialize($settings))) + ->condition('name', $name) + ->execute(); + } + + // Add the CKEditor Link filter. + foreach (array('filtered_html', 'full_html') as $format_name) { + $format = filter_format_load($format_name); + if (FALSE === $format) { + // Text format no longer exists. + continue; + } + $format->filters = filter_list_format($format_name); + foreach ($format->filters as $key => $filter) { + $format->filters[$key] = (array) $filter; + } + $format->filters['ckeditor_link_filter']['status'] = 1; + filter_format_save($format); + } + filter_formats_reset(); +} diff --git a/src/cambridge/cambridge.make b/src/cambridge/cambridge.make index 60fed64..1808c10 100644 --- a/src/cambridge/cambridge.make +++ b/src/cambridge/cambridge.make @@ -10,6 +10,7 @@ projects[advanced_help] = "1.1" projects[ckeditor] = "1.15" libraries[ckeditor][download][type] = "file" libraries[ckeditor][download][url] = "http://download.cksource.com/CKEditor/CKEditor/CKEditor%204.4.4/ckeditor_4.4.4_full.tar.gz" +projects[ckeditor_link] = "2.3" projects[context] = "3.2" projects[date] = "2.8" projects[delta] = "3.0-beta11" -- GitLab