You are here

function wf_crm_money_validate in Webform CiviCRM Integration 7.4

Same name and namespace in other branches
  1. 7.5 includes/wf_crm_admin_component.inc \wf_crm_money_validate()

Drupal FAPI validate callback Validate money options & default value

1 string reference to 'wf_crm_money_validate'
wf_crm_admin_component::moneyOptions in includes/wf_crm_admin_component.inc
options_element alterations for when a currency field (e.g. contribution amount, event fee) is rendered as a select

File

includes/wf_crm_admin_component.inc, line 698

Code

function wf_crm_money_validate($form, &$form_state) {
  $vals = $form_state['values'];
  if (!empty($vals['value']) && !is_numeric($vals['value']) && $vals['type'] != 'formula') {

    //Check if default value is a token string.
    $isTokenString = token_replace($vals['value'], array(), array(
      'clear' => true,
    ));
    if (!empty($isTokenString)) {
      form_error($form['value'], t('This is a CiviCRM currency field. @field must be a number.', array(
        '@field' => $form['value']['#title'],
      )));
    }
  }
  foreach (array(
    'items',
    'options',
  ) as $field) {
    if (!empty($vals['extra'][$field])) {
      foreach (wf_crm_str2array($vals['extra'][$field]) as $key => $val) {
        if (!is_numeric($key)) {
          form_error($form, t('This is a CiviCRM currency field. @field keys must be numeric.', array(
            '@field' => $form[$field]['#title'],
          )));
          break;
        }
      }
    }
  }
}