Squiz Matrix  4.12.2
 All Data Structures Namespaces Functions Variables Pages
form_question_rule_type_length.inc
1 <?php
18 require_once dirname(__FILE__).'/../../form_question_rule/form_question_rule.inc';
19 
32 {
33 
34 
41  function __construct($assetid=0)
42  {
43  parent::__construct($assetid);
44 
45  }//end constructor
46 
47 
55  public static function getOperators()
56  {
57  $operators = Array(
58  '==' => translate('core_form_rule_length_=='),
59  '!=' => translate('core_form_rule_length_!='),
60  '>' => translate('core_form_rule_length_>'),
61  '<' => translate('core_form_rule_length_<'),
62  '>=' => translate('core_form_rule_length_>='),
63  '<=' => translate('core_form_rule_length_<='),
64  );
65 
66  return $operators;
67 
68  }//end getOperators()
69 
70 
83  function generateJSCode(&$q_asset, $rule_data)
84  {
85  $operator = array_get_index($rule_data, 'operator', 1);
86  $value = array_get_index($rule_data, 'value', '');
87 
88  ob_start(); // buffer this please
89 
90  ?>
91  if (!(form.elements["q<?php echo $q_asset->id; ?>"].value.length <?php echo $operator ?> <?php echo $value ?>)) {
92  submission_errors[submission_errors.length] = "<?php
93  if (empty($rule_data['custom_text'])) {
94  echo addslashes($this->defaultError($q_asset, $rule_data));
95  } else {
96  echo addslashes($rule_data['custom_text']);
97  }
98  ?>";
99  }
100  <?php
101 
102  $contents = ob_get_contents();
103  ob_end_clean();
104 
105  return $contents;
106 
107  }//end generateJSCode()
108 
109 
123  function evaluate($answer, $rule_data)
124  {
125  $operator = array_get_index($rule_data, 'operator', '==');
126  $value = array_get_index($rule_data, 'value', '');
127 
128  $valid = eval('return \''.strlen($answer).'\''.$operator.'\''.$value.'\';');
129  return $valid;
130 
131  }//end evaluate()
132 
133 
143  function ruleDescription(&$q_asset, $rule_data)
144  {
145  $operator = array_get_index($rule_data, 'operator', '==');
146 
147  $value = array_get_index($rule_data, 'value', '');
148  $error_str = translate('core_form_rule_length_desc_'.$operator, $q_asset->attr('name'), $value);
149 
150  return $error_str;
151 
152  }//end ruleDescription()
153 
154 
155 }//end class
156 ?>