You are here

function ctools_access_ajax_delete in Chaos Tool Suite (ctools) 7

Same name and namespace in other branches
  1. 6 includes/context-access-admin.inc \ctools_access_ajax_delete()

AJAX command to remove an access control item.

1 string reference to 'ctools_access_ajax_delete'
ctools_context_menu in includes/context.menu.inc
@file Contains menu item registration for the context tool.

File

includes/context-access-admin.inc, line 451
Contains administrative screens for the access control plugins.

Code

function ctools_access_ajax_delete($fragment = NULL, $id = NULL) {
  ctools_include('ajax');
  ctools_include('modal');
  ctools_include('context');
  if (empty($fragment) || !isset($id)) {
    ajax_render_error();
  }

  // Separate the fragment into 'module' and 'argument'.
  if (strpos($fragment, '-') === FALSE) {
    $module = $fragment;
    $argument = NULL;
  }
  else {
    list($module, $argument) = explode('-', $fragment, 2);
  }
  $function = $module . '_ctools_access_get';
  if (!function_exists($function)) {
    ajax_render_error(t('Missing callback hooks.'));
  }
  list($access, $contexts) = $function($argument);
  if (isset($access['plugins'][$id])) {
    unset($access['plugins'][$id]);
  }

  // re-cache.
  $function = $module . '_ctools_access_set';
  if (function_exists($function)) {
    $function($argument, $access);
  }
  $table = ctools_access_admin_render_table($access, $fragment, $contexts);
  $output = array();
  $output[] = ajax_command_replace('table#ctools-access-table', $table);
  print ajax_render($output);
}