You are here

public function CvFAPIValidator::getRule in Clientside Validation 7.2

23 calls to CvFAPIValidator::getRule()
CvFAPIAlphaDashValidator::getMessage in clientside_validation_fapi/plugins/validator/fapialpha_dash.inc
CvFAPIAlphaNumericValidator::getMessage in clientside_validation_fapi/plugins/validator/fapialpha_numeric.inc
CvFAPIAlphaValidator::getMessage in clientside_validation_fapi/plugins/validator/fapialpha.inc
CvFAPICharsValidator::getJsArg in clientside_validation_fapi/plugins/validator/fapichars.inc
CvFAPICharsValidator::getMessage in clientside_validation_fapi/plugins/validator/fapichars.inc

... See full list

File

clientside_validation_fapi/includes/CvFAPIValidator.inc, line 47

Class

CvFAPIValidator

Code

public function getRule($element) {
  $data = _fapi_validation_data('rules');
  foreach ($element['#rules'] as $rule) {
    $params = array(
      $element['#value'],
    );
    $error_message = NULL;

    // If $rule is an array, use error message if is set.
    if (is_array($rule)) {
      if (isset($rule['error'])) {
        $error_message = $rule['error'];
      }
      if (!isset($rule['rule'])) {
        drupal_set_message(t('Rule array with wrong structure on %field.', array(
          '%field' => $element['#name'],
        )), 'error');
        continue;
      }
      $rule = $rule['rule'];
    }
    preg_match('/^(.*?)(\\[(.*)\\])?$/', $rule, $rs);
    $rule = $rs[1];

    // Parsing parameters.
    if (isset($rs[3]) && $rs[1] != 'regexp') {
      $params[] = preg_split('/ *, */', $rs[3]);
    }
    elseif (isset($rs[3])) {
      $params[] = $rs[3];
    }
    if (count($params) > 1) {
      $params = $params[1];
    }
    if (isset($data[$rule]) && $data[$rule]['callback'] == $this->fapi_rule_callback) {
      return array(
        'rule' => $data[$rule],
        'params' => $params,
        'error' => $error = is_null($error_message) ? $data[$rule]['error_msg'] : $error_message,
      );
    }
  }
  return FALSE;
}