You are here

function ds_contextual_links_view_alter in Display Suite 7.2

Same name and namespace in other branches
  1. 8.4 ds.module \ds_contextual_links_view_alter()
  2. 8.2 ds.module \ds_contextual_links_view_alter()
  3. 8.3 ds.module \ds_contextual_links_view_alter()

Implements hook_contextual_links_view_alter().

File

./ds.module, line 1297
Display Suite core functions.

Code

function ds_contextual_links_view_alter(&$element, $items) {
  if (!empty($element['#element']['#entity_type']) && !empty($element['#element']['#bundle']) && module_exists('field_ui') && user_access('administer content types')) {
    $entity_type = $element['#element']['#entity_type'];
    $bundle = $element['#element']['#bundle'];
    $view_mode = isset($element['#element']['#view_mode']) ? $element['#element']['#view_mode'] : 'default';

    // Get the manage display URI.
    $admin_path = _field_ui_bundle_admin_path($entity_type, $bundle);

    // Check view mode settings.
    $view_mode_settings = field_view_mode_settings($entity_type, $bundle);
    $overridden = !empty($view_mode_settings[$view_mode]['custom_settings']) ? TRUE : FALSE;
    if (!$overridden) {
      $admin_path .= '/display';
    }
    else {
      $admin_path .= '/display/' . $view_mode;
    }
    $element['#links']['manage-display'] = array(
      'title' => t('Manage display'),
      'href' => $admin_path,
      'query' => drupal_get_destination(),
    );
  }
}