From b03a3fb9169c936d766b3f664b3afaa9fe9f1571 Mon Sep 17 00:00:00 2001
From: thewilkybarkid <chriswilkinson84@gmail.com>
Date: Tue, 23 Dec 2014 13:37:28 +0000
Subject: [PATCH] Fix menu block configuration

---
 src/cambridge/cambridge.install           |  9 +++++
 src/cambridge_base.inc                    | 47 ++++++++++++++++++++---
 src/cambridge_lite/cambridge_lite.install |  9 +++++
 3 files changed, 59 insertions(+), 6 deletions(-)

diff --git a/src/cambridge/cambridge.install b/src/cambridge/cambridge.install
index 80b4572..553923a 100644
--- a/src/cambridge/cambridge.install
+++ b/src/cambridge/cambridge.install
@@ -481,3 +481,12 @@ function cambridge_update_7107() {
 
   cambridge_base_set_up_date_formats();
 }
+
+/**
+ * Fix menu block configuration.
+ */
+function cambridge_update_7108() {
+  require_once 'cambridge_base.inc';
+
+  cambridge_base_fix_menu_blocks();
+}
diff --git a/src/cambridge_base.inc b/src/cambridge_base.inc
index caeb223..7ecf6eb 100644
--- a/src/cambridge_base.inc
+++ b/src/cambridge_base.inc
@@ -358,9 +358,9 @@ function cambridge_base_install() {
   variable_set("menu_block_1_title_link", 0);
   variable_set("menu_block_1_admin_title", 'Horizontal menu');
   variable_set("menu_block_1_parent", 'main-menu:0');
-  variable_set("menu_block_1_level", '1');
+  variable_set("menu_block_1_level", 1);
   variable_set("menu_block_1_follow", 0);
-  variable_set("menu_block_1_depth", '0');
+  variable_set("menu_block_1_depth", 0);
   variable_set("menu_block_1_expanded", 1);
   variable_set("menu_block_1_sort", 0);
 
@@ -368,10 +368,10 @@ function cambridge_base_install() {
   variable_set("menu_block_2_title_link", 0);
   variable_set("menu_block_2_admin_title", 'Vertical menu');
   variable_set("menu_block_2_parent", 'main-menu:0');
-  variable_set("menu_block_2_level", '1');
-  variable_set("menu_block_2_follow", 'active');
-  variable_set("menu_block_2_depth", '0');
-  variable_set("menu_block_2_expanded", 0);
+  variable_set("menu_block_2_level", 1);
+  variable_set("menu_block_2_follow", 0);
+  variable_set("menu_block_2_depth", 0);
+  variable_set("menu_block_2_expanded", 1);
   variable_set("menu_block_2_sort", 1);
 
   variable_set('menu_block_ids', array(1, 2));
@@ -678,3 +678,38 @@ function cambridge_base_set_up_date_formats() {
   variable_set('date_format_medium', 'D, d/m/Y - H:i');
   variable_set('date_format_short', 'd/m/Y - H:i');
 }
+
+/**
+ * Fix menu block configuration.
+ */
+function cambridge_base_fix_menu_blocks() {
+  if (FALSE === module_exists('menu_block')) {
+    return;
+  }
+
+  $blocks = db_query(
+    'SELECT delta FROM {block} WHERE module = :module AND theme = :theme AND region = :region',
+    array(':module' => 'menu_block', ':theme' => 'cambridge_theme', 'region' => 'horizontal_navigation')
+  );
+
+  foreach ($blocks as $block) {
+    variable_set('menu_block_' . $block->delta . '_level', 1);
+    variable_set('menu_block_' . $block->delta . '_follow', 0);
+    variable_set('menu_block_' . $block->delta . '_depth', 0);
+    variable_set('menu_block_' . $block->delta . '_expanded', 1);
+    variable_set('menu_block_' . $block->delta . '_sort', 0);
+  }
+
+  $blocks = db_query(
+    'SELECT delta FROM {block} WHERE module = :module AND theme = :theme AND region = :region',
+    array(':module' => 'menu_block', ':theme' => 'cambridge_theme', 'region' => 'left_navigation')
+  );
+
+  foreach ($blocks as $block) {
+    variable_set('menu_block_' . $block->delta . '_level', 1);
+    variable_set('menu_block_' . $block->delta . '_follow', 0);
+    variable_set('menu_block_' . $block->delta . '_depth', 0);
+    variable_set('menu_block_' . $block->delta . '_expanded', 1);
+    variable_set('menu_block_' . $block->delta . '_sort', 1);
+  }
+}
diff --git a/src/cambridge_lite/cambridge_lite.install b/src/cambridge_lite/cambridge_lite.install
index 133a86a..60687bf 100644
--- a/src/cambridge_lite/cambridge_lite.install
+++ b/src/cambridge_lite/cambridge_lite.install
@@ -35,3 +35,12 @@ function cambridge_lite_update_7101() {
 
   cambridge_base_set_up_date_formats();
 }
+
+/**
+ * Fix menu block configuration.
+ */
+function cambridge_lite_update_7102() {
+  require_once 'cambridge_base.inc';
+
+  cambridge_base_fix_menu_blocks();
+}
-- 
GitLab