/** * Implements hook_form_system_theme_settings_alter() */ function omega_form_system_theme_settings_alter(&$form, &$form_state) { $theme = $form_state['build_info']['args'][0]; $zones = $form_state['alpha_zones']; $regions = $form_state['alpha_regions']; $sections = alpha_sections(); foreach ($regions as $region => $item) { $zone = $item['enabled'] ? 'zone_' . $item['zone'] : 'unassigned'; $section = $item['enabled'] && $zones[$item['zone']]['enabled'] ? 'section_' . $zones[$item['zone']]['section'] : 'unassigned'; $form['alpha_settings']['regions'][$section][$zone]['region_' . $region]['alpha_region_' . $region . '_equal_height'] = array('#type' => 'checkbox', '#title' => t('Force equal height for all child elements'), '#description' => t("Force equal height for all child elements."), '#default_value' => $item['equal_height'], '#weight' => -10, '#states' => array('visible' => array(':input[name="alpha_libraries[omega_equalheights]"]' => array('checked' => TRUE)))); } foreach ($zones as $zone => $item) { $section = $item['enabled'] ? 'section_' . $item['section'] : 'unassigned'; $item['regions'] = !empty($item['regions']) ? $item['regions'] : array(); $form['alpha_settings']['zones'][$section]['zone_' . $zone]['alpha_zone_' . $zone . '_equal_height'] = array('#type' => 'checkbox', '#title' => t('Force equal height for all child elements.'), '#description' => t("Force equal height for all child elements."), '#default_value' => $item['equal_height'], '#weight' => -10, '#states' => array('visible' => array(':input[name="alpha_libraries[omega_equalheights]"]' => array('checked' => TRUE)))); } }
/** * Implements hook_page_alter(). */ function alpha_page_alter(&$vars) { $settings = alpha_settings(); $regions = $columns = array(); $reference =& drupal_static('alpha_regions'); if ($settings['debug']['access']) { if ($settings['debug']['block']) { foreach (alpha_regions() as $region => $item) { if ($item['enabled']) { $block = new stdClass(); $block->delta = 'debug-' . $region; $block->region = $region; $block->module = 'alpha-debug'; $block->subject = $item['name']; $vars[$region]['#sorted'] = FALSE; $vars[$region]['alpha_debug_' . $region] = array('#block' => $block, '#weight' => -999, '#markup' => t('This is a debugging block'), '#theme_wrappers' => array('block')); } } } if ($settings['debug']['grid']) { $class = 'alpha-grid-toggle alpha-grid-toggle-' . ($settings['debug']['active'] ? 'active' : 'inactive'); if (empty($vars['page_bottom'])) { $vars['page_bottom']['#region'] = 'page_bottom'; $vars['page_bottom']['#theme_wrappers'] = array('region'); } if ($settings['responsive']) { $vars['page_bottom']['alpha_resize_indicator'] = array('#type' => 'markup', '#markup' => '<div class="alpha-resize-indicator"></div>'); } $vars['page_bottom']['alpha_grid_toggle'] = array('#type' => 'markup', '#markup' => '<a class="' . $class . '" href="#"></a>'); } } foreach (alpha_regions() as $region => $item) { if ($item['enabled'] && ($item['force'] || !empty($vars[$region]))) { $zone = $item['zone']; $regions[$zone][$region] = isset($vars[$region]) ? $vars[$region] : array(); $regions[$zone][$region]['#region'] = $region; $regions[$zone][$region]['#theme_wrappers'] = array('region'); $regions[$zone][$region]['#data'] = $item; $regions[$zone][$region]['#weight'] = (int) $item['weight']; if ($children = element_children($regions[$zone][$region])) { $last = count($children) - 1; foreach ($children as $element) { $regions[$zone][$region][$element]['#first'] = $element == $children[0]; $regions[$zone][$region][$element]['#last'] = $element == $children[$last]; } } } unset($vars[$region]); } foreach (alpha_zones() as $zone => $item) { if ($item['enabled'] && ($item['force'] || !empty($regions[$zone]))) { $section = $item['section']; $columns[$item['columns']] = $item['columns']; if (!empty($item['primary']) && !empty($regions[$zone][$item['primary']])) { $children = element_children($regions[$zone]); $theme = $GLOBALS['theme_key']; $primary =& $regions[$zone][$item['primary']]; $primary['#weight'] = -999; $primary['#data']['columns'] = $item['columns'] - $primary['#data']['prefix'] - $primary['#data']['suffix']; $primary['#data']['width'] = $item['columns']; foreach ($children as $region) { if (!$regions[$zone][$region]['#data']['primary']) { $primary['#data']['columns'] -= $regions[$zone][$region]['#data']['width']; $primary['#data']['width'] -= $regions[$zone][$region]['#data']['width']; if ($primary['#data']['weight'] > $regions[$zone][$region]['#data']['weight']) { $primary['#data']['push'] += $regions[$zone][$region]['#data']['width']; } } } $reference[$theme][$item['primary']]['columns'] = $primary['#data']['columns']; $reference[$theme][$item['primary']]['width'] = $primary['#data']['width']; $reference[$theme][$item['primary']]['push'] = $primary['#data']['push']; foreach ($children as $region) { if (!$regions[$zone][$region]['#data']['primary'] && $primary['#data']['weight'] > $regions[$zone][$region]['#data']['weight']) { $regions[$zone][$region]['#data']['pull'] = $primary['#data']['width']; $reference[$theme][$region]['pull'] = $primary['#data']['width']; } } } $vars[$section][$zone] = !empty($regions[$zone]) ? $regions[$zone] : array(); $vars[$section][$zone]['#theme_wrappers'] = array('zone'); $vars[$section][$zone]['#zone'] = $zone; $vars[$section][$zone]['#weight'] = (int) $item['weight']; $vars[$section][$zone]['#sorted'] = FALSE; $vars[$section][$zone]['#data'] = $item; $vars[$section][$zone]['#data']['type'] = !empty($item['primary']) && !empty($vars[$section][$zone][$item['primary']]) ? 'dynamic' : 'static'; } } foreach (alpha_sections() as $section => $item) { if (isset($vars[$section])) { $vars[$section]['#theme_wrappers'] = array('section'); $vars[$section]['#section'] = $section; } } alpha_include_grid($settings['grid'], $columns); }