You are here

function context_admin_menu_context_admin_summary in Contextual Administration 7

Same name and namespace in other branches
  1. 6 plugins/task_handlers/menu_context.inc \context_admin_menu_context_admin_summary()
1 string reference to 'context_admin_menu_context_admin_summary'
menu_context.inc in plugins/task_handlers/menu_context.inc

File

plugins/task_handlers/menu_context.inc, line 157

Code

function context_admin_menu_context_admin_summary($handler, $task, $subtask, $page, $show_title = TRUE) {
  $task_name = page_manager_make_task_name($task['name'], $subtask['name']);
  $output = '';
  ctools_include('context');
  ctools_include('context-task-handler');
  $plugin = page_manager_get_task_handler($handler->handler);

  // Get the operations
  $operations = page_manager_get_operations($page);

  // Get operations for just this handler.
  $operations = $operations['handlers']['children'][$handler->name]['children']['actions']['children'];
  $args = array(
    'handlers',
    $handler->name,
    'actions',
  );
  $rendered_operations = page_manager_render_operations($page, $operations, array(), array(
    'class' => array(
      'actions',
    ),
  ), 'actions', $args);
  $object = ctools_context_handler_get_task_object($task, $subtask, $handler);
  $context = ctools_context_load_contexts($object, TRUE);
  $access = ctools_access_group_summary(!empty($handler->conf['access']) ? $handler->conf['access'] : array(), $context);
  if ($access) {
    $access = t('This contextual administration menu will be visible if @conditions.', array(
      '@conditions' => $access,
    ));
  }
  else {
    $access = t('This contextual administration menu will always be visible.');
  }
  $rows = array();
  $type = $handler->type == t('Default') ? t('In code') : $handler->type;
  $rows[] = array(
    array(
      'class' => t('page-summary-label'),
      'data' => t('Storage'),
    ),
    array(
      'class' => t('page-summary-data'),
      'data' => $type,
    ),
    array(
      'class' => t('page-summary-operation'),
      'data' => '',
    ),
  );
  if (!empty($handler->disabled)) {
    $link = l(t('Enable'), page_manager_edit_url($task_name, array(
      'handlers',
      $handler->name,
      'actions',
      'enable',
    )));
    $text = t('Disabled');
  }
  else {
    $link = l(t('Disable'), page_manager_edit_url($task_name, array(
      'handlers',
      $handler->name,
      'actions',
      'disable',
    )));
    $text = t('Enabled');
  }
  $rows[] = array(
    array(
      'class' => t('page-summary-label'),
      'data' => t('Status'),
    ),
    array(
      'class' => t('page-summary-data'),
      'data' => $text,
    ),
    array(
      'class' => t('page-summary-operation'),
      'data' => $link,
    ),
  );
  $link = l(t('Edit'), page_manager_edit_url($task_name, array(
    'handlers',
    $handler->name,
    'criteria',
  )));
  $rows[] = array(
    array(
      'class' => t('page-summary-label'),
      'data' => t('Selection rule'),
    ),
    array(
      'class' => t('page-summary-data'),
      'data' => $access,
    ),
    array(
      'class' => t('page-summary-operation'),
      'data' => $link,
    ),
  );
  $content_link = ' [' . l(t('Edit'), page_manager_edit_url($task_name, array(
    'handlers',
    $handler->name,
    'content',
  ))) . ']';
  $info = theme('table', array(
    'header' => array(),
    'rows' => $rows,
    'attributes' => array(
      'class' => 'page-manager-handler-summary',
    ),
  ));
  $contexts = theme('ctools_context_list_no_table', array(
    'object' => $object,
  ));
  if (empty($contexts)) {
    $contexts = t('This contextual administration menu has no contexts.');
  }
  $title = $handler->conf['title'];
  if ($title != t('Context Admin')) {
    $title = t('Contex Admin: @title', array(
      '@title' => $title,
    ));
  }
  $output .= '<div class="clear-block">';
  if ($show_title) {
    $output .= '<div class="handler-title clear-block">';
    $output .= '<div class="actions handler-actions">' . $rendered_operations['actions'] . '</div>';
    $output .= '<span class="title-label">' . $title . '</span>';
  }
  $output .= '</div>';
  $output .= $info;
  $output .= '</div>';
  return $output;
}