You are here

function panels_tabs_panels_pre_render in Panels Tabs 6

Implements hook_panels_pre_render().

File

./panels_tabs.module, line 34
Definition of the 'tabs' panel style.

Code

function panels_tabs_panels_pre_render($display, $renderer = NULL) {

  // Don't run if we are using an old version of panels or legacy mode
  if (empty($renderer)) {
    return;
  }
  elseif (panels_tabs_style_version() == 2) {
    $tabs_regions = array();

    // Check if the tabs style has been applied to entire panel
    $global_style = !empty($renderer->display->panel_settings['style']) ? $renderer->display->panel_settings['style'] : '';

    // Get the list of regions for the panel
    $regions = panels_get_regions($renderer->plugins['layout'], $renderer->display);

    // Find out which regions are using the tabs style and add to an array
    foreach ($regions as $region_id => $title) {
      $settings = !empty($renderer->display->panel_settings[$region_id]) ? $renderer->display->panel_settings[$region_id] : array();
      if ($global_style == 'tabs' && (empty($settings['style']) || $settings['style'] == -1)) {
        $tabs_regions[] = $region_id;
      }
      elseif (!empty($settings['style']) && $settings['style'] == 'tabs') {
        $tabs_regions[] = $region_id;
      }
    }

    // Go through all the panes and mark those that are in a tab region.
    foreach ($renderer->display->content as $pane_id => $pane) {
      if (in_array($pane->panel, $tabs_regions)) {
        $renderer->display->content[$pane_id]->region_style = 'tabs';
      }
    }
  }
}