You are here

function matrix_custom_calculation_callback in Matrix field 8.2

Same name and namespace in other branches
  1. 7.2 matrix.module \matrix_custom_calculation_callback()

Menu callback for matrix custom calculations

Return value

string.

File

./matrix.module, line 917
Contains matrix.module.

Code

function matrix_custom_calculation_callback() {
  $callback = $_POST['callback'];
  $data = explode(",", $_POST['data']);
  $functions = \Drupal::moduleHandler()
    ->invokeAll('matrix_functions');

  //ensure the callback is allowed
  if (!in_array($callback, array_keys($functions['calculation']))) {
    drupal_json_output(array(
      'error' => t('Calcuation callback function not available'),
    ));
    exit;
  }

  //ensure the data is safe
  foreach ($data as $id => $d) {
    $data[$id] = check_plain($d);
  }
  $result = call_user_func($callback, $data);
  drupal_json_output(array(
    'data' => check_plain($result),
  ));
  exit;
}