diff --git a/alpha/preprocess/preprocess-page.inc b/alpha/preprocess/preprocess-page.inc index 0c2046ddc80ce41b92e0635f563f1a9d24b26258..22465d2ce048938405bf223f336327bf998e04b1 100644 --- a/alpha/preprocess/preprocess-page.inc +++ b/alpha/preprocess/preprocess-page.inc @@ -28,6 +28,14 @@ function alpha_alpha_preprocess_page(&$vars) { $zone_regions[$item['zone']][$region]['#sorted'] = FALSE; $zone_regions[$item['zone']][$region]['#weight'] = (int) $item['weight']; + if (!isset($zones[$item['zone']]['width'])) { + $zones[$item['zone']]['width'] = 0; + } + + if (!$item['primary']) { + $zones[$item['zone']]['width'] += $item['width']; + } + if (!isset($zone_regions[$item['zone']][$region]['#theme_wrappers']) || !in_array('region', $zone_regions[$item['zone']][$region]['#theme_wrappers'])) { $zone_regions[$item['zone']][$region]['#theme_wrappers'][] = 'region'; } @@ -44,32 +52,34 @@ function alpha_alpha_preprocess_page(&$vars) { foreach ($zones as $zone => $item) { if ($item['enabled'] && ($item['force'] || isset($zone_regions[$zone]))) { if (!empty($item['primary']) && isset($zone_regions[$zone][$item['primary']])) { - $primary = &$zone_regions[$zone][$item['primary']]; - - $primary['#weight'] = -100; - $primary['#data']['columns'] = $item['columns'] - $primary['#region']['prefix'] - $primary['#data']['suffix']; - $primary['#data']['width'] = $item['columns']; - - $pull = array(); + if ($item['width'] < $item['columns']) { + $primary = &$zone_regions[$zone][$item['primary']]; + + $primary['#weight'] = -100; + $primary['#data']['columns'] = $item['columns'] - $primary['#region']['prefix'] - $primary['#data']['suffix']; + $primary['#data']['width'] = $item['columns']; - foreach ($zone_regions[$zone] as $region => $info) { - if ($region != $item['primary']) { - $primary['#data']['columns'] -= $info['#data']['width']; - $primary['#data']['width'] -= $info['#data']['width']; - - if ($primary['#data']['weight'] > $info['#data']['weight']) { - $primary['#data']['push'] += $info['#data']['width']; - $pull[$region] = &$primary['#data']['width']; - } - } - } - - foreach ($pull as $region => $value) { - $zone_regions[$zone][$region]['#data']['pull'] = $value; + $pull = array(); + + foreach ($zone_regions[$zone] as $region => $info) { + if ($region != $item['primary']) { + $primary['#data']['columns'] -= $info['#data']['width']; + $primary['#data']['width'] -= $info['#data']['width']; + + if ($primary['#data']['weight'] > $info['#data']['weight']) { + $primary['#data']['push'] += $info['#data']['width']; + $pull[$region] = &$primary['#data']['width']; + } + } + } + + foreach ($pull as $region => $value) { + $zone_regions[$zone][$region]['#data']['pull'] = $value; + } } } - $item['type'] = $item['primary'] && isset($zone_regions[$zone][$item['primary']]) ? 'dynamic' : 'static'; + $item['type'] = $item['primary'] && $item['width'] <= $item['columns'] && isset($zone_regions[$zone][$item['primary']]) ? 'dynamic' : 'static'; if (isset($zone_regions[$zone])) { $vars['page'][$item['section'] . '_section'][$zone] = $zone_regions[$zone]; diff --git a/omega/omega.info b/omega/omega.info index b1bb5e3545e503c9c4dd5f1c361ebd6f3c063eba..467494f0d9992cfc1c4a8df8bcea10b5e36328b6 100644 --- a/omega/omega.info +++ b/omega/omega.info @@ -155,7 +155,7 @@ settings[alpha_hidden_site_name] = '' settings[alpha_hidden_site_slogan] = '' settings[alpha_zone_user_wrapper] = '1' settings[alpha_zone_user_force] = '' -settings[alpha_zone_user_section] = '' +settings[alpha_zone_user_section] = 'header' settings[alpha_zone_user_weight] = '-10' settings[alpha_zone_user_columns] = '12' settings[alpha_zone_user_primary] = ''