You are here

function mb_extra_menu_local_tasks_alter in More Buttons 7

Alter the local tasks to use an destination parameter.

File

mb_extra/mb_extra.module, line 42
Provides various functions for the expansion of core modules.

Code

function mb_extra_menu_local_tasks_alter(&$data, $router_item, $root_path) {
  if (module_exists('overlay')) {
    return;
  }
  global $base_url;
  $module = 'mb_extra';
  if ($router_item['tab_root'] == 'node/%') {
    if (variable_get($module . '_destination_tabs', 0) == TRUE && count($data['tabs']) > 0) {
      $destination = drupal_get_destination();
      foreach (element_children($data['tabs'][0]['output']) as $key) {
        if ($data['tabs'][0]['output'][$key]['#link']['tab_root_href'] != $destination['destination'] && !stristr($destination['destination'], $data['tabs'][0]['output'][$key]['#link']['tab_root_href'])) {
          $params = $data['tabs'][0]['output'][$key]['#link'];
          $data['tabs'][0]['output'][$key]['#link']['href'] = $base_url . '/' . $params['href'] . '?destination=' . $destination['destination'];

          //$data['tabs'][0]['output'][$key]['#link']['tab_root_href'] = $base_url . '/' . $params['tab_root_href'] . '?destination=' . $destination['destination'];

          //$data['tabs'][0]['output'][$key]['#link']['tab_parent_href'] = $base_url . '/' . $params['tab_parent_href'] . '?destination=' . $destination['destination'];
        }
      }

      // Children tabs level 1.
      if (isset($data['tabs'][1])) {
        foreach (element_children($data['tabs'][1]['output']) as $key) {
          if ($data['tabs'][1]['output'][$key]['#link']['tab_root_href'] != $destination['destination']) {
            $params = $data['tabs'][1]['output'][$key]['#link'];
            $data['tabs'][1]['output'][$key]['#link']['href'] = $base_url . '/' . $params['href'] . '?destination=' . $destination['destination'];

            //$data['tabs'][0]['output'][$key]['#link']['tab_root_href'] = $base_url . '/' . $params['tab_root_href'] . '?destination=' . $destination['destination'];

            //$data['tabs'][0]['output'][$key]['#link']['tab_parent_href'] = $base_url . '/' . $params['tab_parent_href'] . '?destination=' . $destination['destination'];
            if (isset($data['tabs'][1]['output'][$key]['#active'])) {
              $data['tabs'][1]['output'][$key]['#link']['localized_options'] = array(
                'attributes' => array(
                  'class' => 'active',
                ),
              );
            }
          }
        }
      }
    }
  }
}