diff --git a/modules/enterprise_content/enterprise_content.module b/modules/enterprise_content/enterprise_content.module index 52b44a0..7926cc7 100755 --- a/modules/enterprise_content/enterprise_content.module +++ b/modules/enterprise_content/enterprise_content.module @@ -13,7 +13,7 @@ include_once('enterprise_content.features.inc'); * hook after a feature is installed. Ideally this can be fixed at some point. */ function enterprise_content_init() { - if (!variable_get('enterprise_content_installed', FALSE) && defaultcontent_get_default('home')) { + if (!variable_get('enterprise_content_installed', FALSE) && defaultcontent_get_default('home')) { // Set the site home page. $nid = defaultcontent_get_default('home'); if ($nid) { @@ -39,8 +39,12 @@ function enterprise_content_init() { // Enable some default blocks. $default_theme = variable_get('theme_default', 'navin'); + $primary_keys = array(); + $primary_keys[] = 'bid'; + $values = array( - array( + array( + 'bid' => enterprise_content_get_bid('menu-legal-notices',$default_theme), 'module' => 'menu', 'delta' => 'menu-legal-notices', 'theme' => $default_theme, @@ -52,6 +56,7 @@ function enterprise_content_init() { 'cache' => -1, ), array( + 'bid' => enterprise_content_get_bid('menu-social',$default_theme), 'module' => 'menu', 'delta' => 'menu-social', 'theme' => $default_theme, @@ -62,7 +67,8 @@ function enterprise_content_init() { 'pages' => '', 'cache' => -1, ), - array( + array( + 'bid' => enterprise_content_get_bid('oe1',$default_theme), 'module' => 'boxes', 'delta' => 'oe1', 'theme' => $default_theme, @@ -74,6 +80,7 @@ function enterprise_content_init() { 'cache' => -2, ), array( + 'bid' => enterprise_content_get_bid('oe2',$default_theme), 'module' => 'boxes', 'delta' => 'oe2', 'theme' => $default_theme, @@ -85,6 +92,7 @@ function enterprise_content_init() { 'cache' => -2, ), array( + 'bid' => enterprise_content_get_bid('oe3',$default_theme), 'module' => 'boxes', 'delta' => 'oe3', 'theme' => $default_theme, @@ -96,6 +104,7 @@ function enterprise_content_init() { 'cache' => -2, ), array( + 'bid' => enterprise_content_get_bid('oe_rotating_banner-block3',$default_theme), 'module' => 'views', 'delta' => 'oe_rotating_banner-block', 'theme' => $default_theme, @@ -108,9 +117,30 @@ function enterprise_content_init() { ), ); foreach ($values as $record) { - drupal_write_record('block', $record); + if ($record['bid'] === null) { + drupal_write_record('block', $record ); + } else + { + drupal_write_record('block', $record, $primary_keys ); + } } - variable_set('enterprise_content_installed', TRUE); } +} + +/** + * + * Get key for block records which have already been created. + */ +function enterprise_content_get_bid($delta, $theme) { + $value = null; + $result = db_query("SELECT bid FROM block + WHERE delta = :delta + AND theme = :theme", + array(':delta'=>$delta,':theme'=>$theme,)) + ->fetch(); + if ($result) { + $value = $result->bid; + } + return $value; } \ No newline at end of file