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