4 require_once
'Services/UIComponent/Glyph/classes/class.ilGlyphGUI.php';
31 parent::__construct($a_title, $a_postvar);
34 $this->validationRegexp =
"";
44 $this->values =
array();
45 if (is_array($a_value))
47 if (is_array($a_value[
'answer']))
49 foreach ($a_value[
'answer'] as $index =>
$value)
51 include_once
"./Modules/TestQuestionPool/classes/class.assAnswerBinaryStateImage.php";
53 array_push($this->values, $answer);
66 $this->suffixes = $a_suffixes;
76 $this->hideImages = $a_hide;
91 $this->showPoints = $a_value;
106 $this->values = $a_values;
126 $this->singleline = $a_value;
146 $this->qstObject =& $a_value;
166 $this->allowMove = $a_allow_move;
188 include_once
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
192 if (is_array($foundvalues))
195 if (is_array($foundvalues[
'answer']))
197 foreach ($foundvalues[
'answer'] as $aidx => $answervalue)
199 if (((strlen($answervalue)) == 0) && (strlen($foundvalues[
'imagename'][$aidx]) == 0))
201 $this->
setAlert($lng->txt(
"msg_input_is_required"));
208 if (is_array($foundvalues[
'points']))
210 foreach ($foundvalues[
'points'] as $points)
212 if ($points > $max) $max = $points;
213 if (((strlen($points)) == 0) || (!is_numeric($points)))
215 $this->
setAlert($lng->txt(
"form_msg_numeric_value_required"));
222 $this->
setAlert($lng->txt(
"enter_enough_positive_points"));
228 if (is_array($_FILES[$this->
getPostVar()][
'error'][
'image']))
230 foreach ($_FILES[$this->
getPostVar()][
'error'][
'image'] as $index =>
$error)
237 case UPLOAD_ERR_INI_SIZE:
238 $this->
setAlert($lng->txt(
"form_msg_file_size_exceeds"));
242 case UPLOAD_ERR_FORM_SIZE:
243 $this->
setAlert($lng->txt(
"form_msg_file_size_exceeds"));
247 case UPLOAD_ERR_PARTIAL:
248 $this->
setAlert($lng->txt(
"form_msg_file_partially_uploaded"));
252 case UPLOAD_ERR_NO_FILE:
255 if ((!strlen($foundvalues[
'imagename'][$index])) && (!strlen($foundvalues[
'answer'][$index])))
257 $this->
setAlert($lng->txt(
"form_msg_file_no_upload"));
263 case UPLOAD_ERR_NO_TMP_DIR:
264 $this->
setAlert($lng->txt(
"form_msg_file_missing_tmp_dir"));
268 case UPLOAD_ERR_CANT_WRITE:
269 $this->
setAlert($lng->txt(
"form_msg_file_cannot_write_to_disk"));
273 case UPLOAD_ERR_EXTENSION:
274 $this->
setAlert($lng->txt(
"form_msg_file_upload_stopped_ext"));
285 $this->
setAlert($lng->txt(
"form_msg_file_no_upload"));
290 if (is_array($_FILES[$this->
getPostVar()][
'tmp_name'][
'image']))
292 foreach ($_FILES[$this->
getPostVar()][
'tmp_name'][
'image'] as $index => $tmpname)
296 $suffix = $filename_arr[
"extension"];
297 $mimetype = $_FILES[$this->
getPostVar()][
'type'][
'image'][$index];
298 $size_bytes = $_FILES[$this->
getPostVar()][
'size'][
'image'][$index];
300 if (strlen($tmpname) && is_array($this->
getSuffixes()))
304 $this->
setAlert($lng->txt(
"form_msg_file_wrong_file_type"));
311 if (is_array($_FILES[$this->
getPostVar()][
'tmp_name'][
'image']))
313 foreach ($_FILES[$this->
getPostVar()][
'tmp_name'][
'image'] as $index => $tmpname)
317 $suffix = $filename_arr[
"extension"];
318 $mimetype = $_FILES[$this->
getPostVar()][
'type'][
'image'][$index];
319 $size_bytes = $_FILES[$this->
getPostVar()][
'size'][
'image'][$index];
321 if (strlen($tmpname))
324 if ($vir[0] ==
false)
326 $this->
setAlert($lng->txt(
"form_msg_file_virus_found").
"<br />".$vir[1]);
336 $this->
setAlert($lng->txt(
"msg_input_is_required"));
350 $tpl =
new ilTemplate(
"tpl.prop_singlechoicewizardinput.html",
true,
true,
"Modules/TestQuestionPool");
352 foreach ($this->values as
$value)
356 if (!$this->hideImages)
358 if (strlen($value->getImage()))
360 $imagename = $this->qstObject->getImagePathWeb() . $value->getImage();
361 if (($this->
getSingleline()) && ($this->qstObject->getThumbSize()))
363 if (@file_exists($this->qstObject->getImagePath() . $this->qstObject->getThumbPrefix() . $value->getImage()))
365 $imagename = $this->qstObject->getImagePathWeb() . $this->qstObject->getThumbPrefix() . $value->getImage();
368 $tpl->setCurrentBlock(
'image');
369 $tpl->setVariable(
'SRC_IMAGE', $imagename);
370 $tpl->setVariable(
'IMAGE_NAME', $value->getImage());
372 $tpl->setVariable(
"TXT_DELETE_EXISTING", $lng->txt(
"delete_existing_file"));
373 $tpl->setVariable(
"IMAGE_ROW_NUMBER", $i);
375 $tpl->parseCurrentBlock();
377 $tpl->setCurrentBlock(
'addimage');
378 $tpl->setVariable(
"IMAGE_BROWSE", $lng->txt(
'select_file'));
379 $tpl->setVariable(
"IMAGE_ID", $this->
getPostVar() .
"[image][$i]");
380 $tpl->setVariable(
"IMAGE_SUBMIT", $lng->txt(
"upload"));
381 $tpl->setVariable(
"IMAGE_ROW_NUMBER", $i);
383 $tpl->parseCurrentBlock();
386 if (is_object($value))
388 $tpl->setCurrentBlock(
"prop_text_propval");
390 $tpl->parseCurrentBlock();
392 $tpl->setCurrentBlock(
"prop_points_propval");
394 $tpl->parseCurrentBlock();
397 $tpl->setCurrentBlock(
'singleline');
399 $tpl->setVariable(
"SINGLELINE_ID", $this->
getPostVar() .
"[answer][$i]");
400 $tpl->setVariable(
"SINGLELINE_ROW_NUMBER", $i);
405 $tpl->setVariable(
"DISABLED_SINGLELINE",
" disabled=\"disabled\"");
407 $tpl->parseCurrentBlock();
411 if (is_object($value))
415 $tpl->setCurrentBlock(
"prop_points_propval");
417 $tpl->parseCurrentBlock();
420 $tpl->setCurrentBlock(
'multiline');
422 $tpl->setVariable(
"MULTILINE_ID", $this->
getPostVar() .
"[answer][$i]");
423 $tpl->setVariable(
"MULTILINE_ROW_NUMBER", $i);
427 $tpl->setVariable(
"DISABLED_MULTILINE",
" disabled=\"disabled\"");
429 $tpl->parseCurrentBlock();
433 $tpl->setCurrentBlock(
"move");
434 $tpl->setVariable(
"CMD_UP",
"cmd[up" . $this->
getFieldId() .
"][$i]");
435 $tpl->setVariable(
"CMD_DOWN",
"cmd[down" . $this->
getFieldId() .
"][$i]");
439 $tpl->parseCurrentBlock();
443 $tpl->setCurrentBlock(
"points");
444 $tpl->setVariable(
"POINTS_ID", $this->
getPostVar() .
"[points][$i]");
446 $tpl->setVariable(
"POINTS_ROW_NUMBER", $i);
447 $tpl->parseCurrentBlock();
449 $tpl->setCurrentBlock(
"row");
451 $tpl->setVariable(
"ROW_NUMBER", $i);
453 $tpl->setVariable(
"CMD_ADD",
"cmd[add" . $this->
getFieldId() .
"][$i]");
454 $tpl->setVariable(
"CMD_REMOVE",
"cmd[remove" . $this->
getFieldId() .
"][$i]");
457 $tpl->setVariable(
"DISABLED_POINTS",
" disabled=\"disabled\"");
461 $tpl->parseCurrentBlock();
467 if (!$this->hideImages)
471 $suff_str = $delim =
"";
474 $suff_str.= $delim.
".".
$suffix;
477 $tpl->setCurrentBlock(
'allowed_image_suffixes');
478 $tpl->setVariable(
"TXT_ALLOWED_SUFFIXES", $lng->txt(
"file_allowed_suffixes").
" ".$suff_str);
479 $tpl->parseCurrentBlock();
481 $tpl->setCurrentBlock(
"image_heading");
482 $tpl->setVariable(
"ANSWER_IMAGE", $lng->txt(
'answer_image'));
484 $tpl->parseCurrentBlock();
490 $tpl->setCurrentBlock(
"points_heading");
491 $tpl->setVariable(
"POINTS_TEXT", $lng->txt(
'points'));
492 $tpl->parseCurrentBlock();
496 $tpl->setVariable(
"TEXT_YES", $lng->txt(
'yes'));
497 $tpl->setVariable(
"TEXT_NO", $lng->txt(
'no'));
498 $tpl->setVariable(
"DELETE_IMAGE_HEADER", $lng->txt(
'delete_image_header'));
499 $tpl->setVariable(
"DELETE_IMAGE_QUESTION", $lng->txt(
'delete_image_question'));
500 $tpl->setVariable(
"ANSWER_TEXT", $lng->txt(
'answer_text'));
501 $tpl->setVariable(
"COMMANDS_TEXT", $lng->txt(
'actions'));
503 $a_tpl->setCurrentBlock(
"prop_generic");
504 $a_tpl->setVariable(
"PROP_GENERIC",
$tpl->get());
505 $a_tpl->parseCurrentBlock();
508 $tpl->addJavascript(
"./Services/Form/js/ServiceFormWizardInput.js");
509 $tpl->addJavascript(
"./Modules/TestQuestionPool/templates/default/singlechoicewizard.js");
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
getMaxLength()
Get Max Length.
static virusHandling($a_file, $a_orig_name="", $a_clean=true)
scan file for viruses and clean files if possible
static _getUsedHTMLTagsAsString($a_module="")
Returns a string of all allowed HTML tags for text editing.
Class for answers with a binary state indicator.
static get($a_glyph, $a_text="")
Get glyph html.
special template class to simplify handling of ITX/PEAR
setSize($a_size)
Set Size.
static stripSlashesRecursive($a_data, $a_strip_html=true, $a_allow="")
Strip slashes from array and sub-arrays.
This class represents a text property in a property form.
Create styles array
The data for the language used.