You are here

class property_validation_pattern_validator in Field Validation 7.2

Hierarchy

Expanded class hierarchy of property_validation_pattern_validator

1 string reference to 'property_validation_pattern_validator'
property_validation_pattern_validator.inc in property_validation/plugins/validator/property_validation_pattern_validator.inc

File

property_validation/plugins/validator/property_validation_pattern_validator.inc, line 15

View source
class property_validation_pattern_validator extends property_validation_validator {

  /**
   * Validate property.
   */
  public function validate() {

    // Following code was copied from http://drupal.org/node/1082134, thanks to DrewMathers
    if ($this->value != '') {
      $pattern = $this->rule->settings['pattern'];
      $pattern = preg_quote($pattern, "/");

      // Escape regex control characters
      if (PHP_VERSION < 5.3) {
        $pattern = preg_replace('/-/', '\\-', $pattern);

        // PHP bug #47229
      }
      $pattern = preg_replace('/a/', '[a-zA-Z]', $pattern);
      $pattern = preg_replace('/9/', '[0-9]', $pattern);
      $pattern = preg_replace('/#/', '[a-zA-Z0-9]', $pattern);
      if (!preg_match('/^(' . $pattern . ')$/', $this->value)) {
        $this
          ->set_error();
      }
    }
  }

  /**
   * Provide settings option
   */
  function settings_form(&$form, &$form_state) {
    $default_settings = $this
      ->get_default_settings($form, $form_state);

    //print debug($default_settings);
    $form['settings']['pattern'] = array(
      '#title' => t('Pattern'),
      '#description' => t("Specify a pattern where:") . theme('item_list', array(
        'items' => array(
          t('a - Represents an alpha character [a-zA-Z]'),
          t('9 - Represents a numeric character [0-9]'),
          t('# - Represents an alphanumeric character [a-zA-Z0-9]'),
        ),
      )) . t('Example, North American phone number: (999) 999-999'),
      '#type' => 'textfield',
      '#default_value' => isset($default_settings['pattern']) ? $default_settings['pattern'] : '',
    );
    parent::settings_form($form, $form_state);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
property_validation_pattern_validator::settings_form function Provide settings option Overrides property_validation_validator::settings_form
property_validation_pattern_validator::validate public function Validate property. Overrides property_validation_validator::validate
property_validation_validator::$entity protected property
property_validation_validator::$entity_type protected property
property_validation_validator::$errors protected property
property_validation_validator::$field protected property
property_validation_validator::$rule protected property
property_validation_validator::$value protected property
property_validation_validator::get_default_settings public function Return default settingsfor the validator.
property_validation_validator::get_error_element public function Return error element for the validation rule.
property_validation_validator::get_error_message public function Return error message string for the validation rule.
property_validation_validator::set_error public function Set error message.
property_validation_validator::token_help public function Provide token help info for error message. 4
property_validation_validator::__construct function Save arguments locally.