You are here

function itoggle_ajax_callback in iToggle 7.2

Same name and namespace in other branches
  1. 7 itoggle.module \itoggle_ajax_callback()

Page callback. iToggle widget AJAX callback.

See also

itoggle_menu()

1 string reference to 'itoggle_ajax_callback'
itoggle_menu in ./itoggle.module
Implements hook_menu().

File

./itoggle.pages.inc, line 13
iToggle ajax functions.

Code

function itoggle_ajax_callback() {

  // Extract values from POST.
  $token = filter_input(INPUT_POST, 'token');
  $type = filter_input(INPUT_POST, 'type');
  $bundle = filter_input(INPUT_POST, 'bundle');
  $property = filter_input(INPUT_POST, 'property');
  $id = filter_input(INPUT_POST, 'id');
  $value = filter_input(INPUT_POST, 'value');
  $scope = filter_input(INPUT_POST, 'scope');

  // Generate token key.
  $token_key = "itoggle_{$type}_{$property}_{$id}";

  // Route request.
  if (!empty($token) && drupal_valid_token($token, $token_key)) {
    switch ($scope) {
      case 'entity':
        $ok = _itoggle_ajax_toggle_entity($type, $property, $id, $value);
        break;
      case 'field':
        $ok = _itoggle_ajax_toggle_field($type, $bundle, $property, $id, $value);
        break;

      // Should never really get here.
      case 'field-edit':
        $ok = TRUE;
        break;
    }
  }
  else {

    // Let $ok be NULL so we know the difference between FALSE (error) and
    // undefined (invalid token).
    $ok = NULL;
  }
  drupal_json_output(array(
    'ok' => $ok,
  ));
  exit;
}