18 require_once dirname(__FILE__).
'/../../form_question_rule/form_question_rule.inc';
42 parent::__construct($assetid);
57 1 => translate(
'core_form_rule_file_type_true'),
58 0 => translate(
'core_form_rule_file_type_false'),
83 function valueTest($answer, $operator, &$comparison)
86 if (strrpos($answer,
'.') ===
false) {
89 $extension = substr($answer, strrpos($answer,
'.'));
92 $valid = (strpos(strtolower($comparison), strtolower($answer)) !==
false) ? 1 : 0;
94 return ($valid == $operator);
123 include (SQ_FUDGE_PATH.
'/standards_lists/mime_types.inc');
125 if (!empty($_FILES[
'q'.$q_asset->id][
'tmp_name'])) {
126 $temp_file = $_FILES[
'q'.$q_asset->id][
'tmp_name'];
127 $answer_name = $_FILES[
'q'.$q_asset->id][
'name'];
130 $extra_data = $q_asset->getExtraData();
131 $temp_file = array_get_index($extra_data,
'temp_filesystem_path',
'');
132 $answer_name = basename($temp_file);
135 $operator = array_get_index($rule_data,
'operator', 1);
136 $comparison = array_get_index($rule_data,
'value',
'');
137 $check_mime = array_get_index($rule_data,
'check_mime', FALSE);
139 if (strrpos($answer_name,
'.') ===
false) {
142 $extension = substr($answer_name, strrpos($answer_name,
'.') + 1);
147 if ((empty($answer_name) || $answer_name ==
'No file uploaded') && empty($temp_file))
return TRUE;
153 $MIME_type = file_mime_type($temp_file);
154 $MIME_type_extension = isset($standards_lists_mime_types[strtolower($extension)]) ? $standards_lists_mime_types[strtolower($extension)] :
'';
157 if(!empty($MIME_type) && $MIME_type !=
'text/plain' && $MIME_type !=
'application/x-empty' && $MIME_type !=
'application/octet-stream') {
158 if(empty($MIME_type_extension)|| $MIME_type_extension != $MIME_type)
return FALSE;
165 if (empty($extension) && !empty($comparison)) {
168 $valid = (strpos(strtolower($comparison), strtolower($extension)) !== FALSE) ? 1 : 0;
171 return ($valid == $operator);
208 $operator = array_get_index($rule_data,
'operator', 1);
209 $comparison = array_get_index($rule_data,
'value',
'');
211 $comparison = str_replace(
"\r",
'', $comparison);
212 $comparison = str_replace(
"\n",
', ', $comparison);
214 return translate(
'core_form_rule_file_type_error_'.($operator ?
'true' :
'false'), $q_asset->getValue(), $q_asset->attr(
'name'), $comparison);
232 $operator = array_get_index($rule_data,
'operator', 1);
233 $comparison = array_get_index($rule_data,
'value',
'');
237 return translate(
'core_form_rule_file_type_desc_'.($operator ?
'true' :
'false'), $q_asset->attr(
'name'), $rule_data[
'value']);