18 require_once dirname(__FILE__).
'/../../form_question_rule/form_question_rule.inc';
43 parent::__construct($assetid);
58 1 => translate(
'core_form_rule_contain_true'),
59 0 => translate(
'core_form_rule_contain_false'),
83 static $printed_fn =
false;
85 $operator = array_get_index($rule_data,
'operator', 1);
86 $cq_id = array_get_index($rule_data,
'comparison_question_id', 0);
87 $value = array_get_index($rule_data,
'value',
'');
88 $case_sensitive = array_get_index($rule_data,
'case_sensitive', 1);
96 function sq_form_validate_contain(answer, comparison, case_sensitive)
99 return answer.indexOf(comparison) != -1;
101 return answer.toLowerCase().indexOf(comparison.toLowerCase()) != -1;
109 $comparison =
'form.elements["q'.$cq_id.
'"].value';
111 $comparison =
'"'.addslashes($value).
'"';
115 if (<?php echo ($operator == 1) ?
'!' :
''; ?>sq_form_validate_contain(form.elements[
"q<?php echo $q_asset->id; ?>"].value, <?php echo $comparison ?>, <?php echo (
int)$case_sensitive; ?>)) {
116 submission_errors[submission_errors.length] =
"<?php
117 if (empty($rule_data['custom_text'])) {
118 echo addslashes($this->defaultError($q_asset, $rule_data));
120 echo addslashes($rule_data['custom_text']);
126 $contents = ob_get_contents();
151 $operator = array_get_index($rule_data,
'operator', 1);
152 $cq_id = array_get_index($rule_data,
'comparison_question_id', 0);
153 $value = array_get_index($rule_data,
'value',
'');
154 $case_sensitive = array_get_index($rule_data,
'case_sensitive', 1);
157 $comparison = $GLOBALS[
'SQ_SYSTEM']->am->getAsset($cq_id);
158 if ($case_sensitive) {
159 $valid = (strpos($answer, $comparison->getValue()) !==
false) ? 1 : 0;
161 $valid = (strpos(strtolower($answer), strtolower($comparison->getValue())) !==
false) ? 1 : 0;
164 if ($case_sensitive) {
165 $valid = (strpos($answer, $value) !==
false) ? 1 : 0;
167 $valid = (strpos(strtolower($answer), strtolower($value)) !==
false) ? 1 : 0;
171 return $valid == $operator;
187 $operator = array_get_index($rule_data,
'operator', 1);
188 $cq_id = array_get_index($rule_data,
'comparison_question_id', 0);
189 $value = array_get_index($rule_data,
'value',
'');
190 $case_sensitive = array_get_index($rule_data,
'case_sensitive', 1);
192 $string_code =
'core_form_rule_contain_desc_'.($operator ?
'true' :
'false');
193 $cq_id = array_get_index($rule_data,
'comparison_question_id', 0);
196 $string_code .=
'_q';
197 $comparison = $GLOBALS[
'SQ_SYSTEM']->am->getAsset($cq_id);
198 $value = $comparison->name;
200 $value = array_get_index($rule_data,
'value',
'');
203 $error_str = translate($string_code, $q_asset->name, $value).
' '.translate(
'core_form_'.($case_sensitive ?
'' :
'not_').
'case_sensitive');