You are here

function skinr_context_ui_menu_local_tasks_alter in Skinr 8.2

Same name and namespace in other branches
  1. 7.2 skinr_context/skinr_context_ui.module \skinr_context_ui_menu_local_tasks_alter()

Implements hook_menu_local_tasks_alter().

File

skinr_context/skinr_context_ui.module, line 110
Administrative interface for Skinr Context. Without this module, you cannot edit your skins with context.

Code

function skinr_context_ui_menu_local_tasks_alter(&$data, $router_item, $root_path) {
  $destination = array();
  if (isset($_GET['destination'])) {
    $path = $_GET['q'];
    $query = drupal_http_build_query(drupal_get_query_parameters());
    if ($query != '') {
      $path .= '?' . $query;
    }
    $destination = array(
      'destination' => $path,
    );
  }
  if ($destination && $root_path == 'admin/structure/skinr/edit/%/%') {
    foreach ($data['actions']['output'] as $key => $item) {
      if ($item['#link']['path'] == 'admin/structure/skinr/edit/%/%/add') {

        // Add destination query string to link to preserve it.
        if (empty($data['actions']['output'][$key]['#link']['localized_options']['query'])) {
          $data['actions']['output'][$key]['#link']['localized_options']['query'] = array();
        }
        $data['actions']['output'][$key]['#link']['localized_options']['query'] += $destination;
      }
    }
  }
}