You are here

function _civicrm_entity_price_set_field_simple_widget_price_field_ajax in CiviCRM Entity 7.2

Ajax callback for Price Field Values table, Simple Widget

_state

Parameters

$form:

Return value

array|null

1 string reference to '_civicrm_entity_price_set_field_simple_widget_price_field_ajax'
civicrm_entity_price_set_field_field_widget_form_alter in modules/civicrm_entity_price_set_field/civicrm_entity_price_set_field.module
Implements hook_field_widget_form_alter().

File

modules/civicrm_entity_price_set_field/civicrm_entity_price_set_field.module, line 935

Code

function _civicrm_entity_price_set_field_simple_widget_price_field_ajax($form, $form_state) {
  $element_id = $form_state['triggering_element']['#element_id'];
  $price_field_id = $form_state['triggering_element']['#price_field_id'];
  $element_parents = $form_state['triggering_element']['#parents'];
  $parents = array();
  $field_name = '';
  foreach ($element_parents as $index => $parent) {
    if (strpos($parent, 'field_') === 0) {
      $field_name = str_replace('_', '-', $parent);
    }
    if (strpos($parent, 'price_field') === 0) {
      $parents[] = 'price_field';
      break;
    }
    else {
      $parents[] = $parent;
    }
  }
  $output = drupal_array_get_nested_value($form, $parents);
  $row_state = drupal_array_get_nested_value($form_state['input'], $parents);
  $selected_id = 0;
  foreach ($row_state as $id => $values) {
    if ($values['is_default'] == 1) {
      $selected_id = $id;
      break;
    }
  }
  $commands = array();
  $commands[] = ajax_command_html('#price-field-' . $price_field_id . '-attributes', render($output));
  $commands[] = array(
    'command' => 'afterPriceFieldAjaxReplaceCallback',
    'selectedValue' => $selected_id,
    'fieldName' => $field_name,
  );
  return array(
    '#type' => 'ajax',
    '#commands' => $commands,
  );
}