4 require_once
'Services/UIComponent/Glyph/classes/class.ilGlyphGUI.php';
31 parent::__construct($a_title, $a_postvar);
32 $this->
setSuffixes(array(
"jpg",
"jpeg",
"png",
"gif"));
34 $this->validationRegexp =
"";
44 $this->values = array();
45 if (is_array($a_value)) {
46 if (is_array($a_value[
'answer'])) {
48 include_once
"./Modules/TestQuestionPool/classes/class.assAnswerBinaryStateImage.php";
50 array_push($this->values, $answer);
63 $this->suffixes = $a_suffixes;
73 $this->hideImages = $a_hide;
88 $this->showPoints = $a_value;
103 $this->values = $a_values;
123 $this->singleline = $a_value;
143 $this->qstObject = &$a_value;
163 $this->allowMove = $a_allow_move;
186 include_once
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
192 if (is_array($foundvalues)) {
194 if (is_array($foundvalues[
'answer'])) {
195 foreach ($foundvalues[
'answer'] as $aidx => $answervalue) {
196 if (((strlen($answervalue)) == 0) && (strlen($foundvalues[
'imagename'][$aidx]) == 0)) {
204 if (is_array($foundvalues[
'points'])) {
205 foreach ($foundvalues[
'points'] as $points) {
206 if ($points > $max) {
209 if (((strlen($points)) == 0) || (!is_numeric($points))) {
210 $this->
setAlert(
$lng->txt(
"form_msg_numeric_value_required"));
216 $this->
setAlert(
$lng->txt(
"enter_enough_positive_points"));
221 if (is_array($_FILES[$this->
getPostVar()][
'error'][
'image'])) {
222 foreach ($_FILES[$this->
getPostVar()][
'error'][
'image'] as
$index => $error) {
226 case UPLOAD_ERR_INI_SIZE:
227 $this->
setAlert(
$lng->txt(
"form_msg_file_size_exceeds"));
231 case UPLOAD_ERR_FORM_SIZE:
232 $this->
setAlert(
$lng->txt(
"form_msg_file_size_exceeds"));
236 case UPLOAD_ERR_PARTIAL:
237 $this->
setAlert(
$lng->txt(
"form_msg_file_partially_uploaded"));
241 case UPLOAD_ERR_NO_FILE:
243 if ((!strlen($foundvalues[
'imagename'][$index])) && (!strlen($foundvalues[
'answer'][$index]))) {
250 case UPLOAD_ERR_NO_TMP_DIR:
251 $this->
setAlert(
$lng->txt(
"form_msg_file_missing_tmp_dir"));
255 case UPLOAD_ERR_CANT_WRITE:
256 $this->
setAlert(
$lng->txt(
"form_msg_file_cannot_write_to_disk"));
260 case UPLOAD_ERR_EXTENSION:
261 $this->
setAlert(
$lng->txt(
"form_msg_file_upload_stopped_ext"));
274 if (is_array($_FILES[$this->
getPostVar()][
'tmp_name'][
'image'])) {
275 foreach ($_FILES[$this->
getPostVar()][
'tmp_name'][
'image'] as
$index => $tmpname) {
278 $suffix = $filename_arr[
"extension"];
282 if (strlen($tmpname) && is_array($this->
getSuffixes())) {
284 $this->
setAlert(
$lng->txt(
"form_msg_file_wrong_file_type"));
291 if (is_array($_FILES[$this->
getPostVar()][
'tmp_name'][
'image'])) {
292 foreach ($_FILES[$this->
getPostVar()][
'tmp_name'][
'image'] as
$index => $tmpname) {
295 $suffix = $filename_arr[
"extension"];
299 if (strlen($tmpname)) {
301 if ($vir[0] ==
false) {
302 $this->
setAlert(
$lng->txt(
"form_msg_file_virus_found") .
"<br />" . $vir[1]);
325 $tpl =
new ilTemplate(
"tpl.prop_singlechoicewizardinput.html",
true,
true,
"Modules/TestQuestionPool");
327 foreach ($this->values as
$value) {
329 if (!$this->hideImages) {
330 if (strlen($value->getImage())) {
331 $imagename = $this->qstObject->getImagePathWeb() . $value->getImage();
332 if (($this->
getSingleline()) && ($this->qstObject->getThumbSize())) {
333 if (@file_exists($this->qstObject->getImagePath() . $this->qstObject->getThumbPrefix() . $value->getImage())) {
334 $imagename = $this->qstObject->getImagePathWeb() . $this->qstObject->getThumbPrefix() . $value->getImage();
337 $tpl->setCurrentBlock(
'image');
338 $tpl->setVariable(
'SRC_IMAGE', $imagename);
339 $tpl->setVariable(
'IMAGE_NAME', $value->getImage());
341 $tpl->setVariable(
"TXT_DELETE_EXISTING",
$lng->txt(
"delete_existing_file"));
342 $tpl->setVariable(
"IMAGE_ROW_NUMBER",
$i);
344 $tpl->parseCurrentBlock();
346 $tpl->setCurrentBlock(
'addimage');
347 $tpl->setVariable(
"IMAGE_BROWSE",
$lng->txt(
'select_file'));
348 $tpl->setVariable(
"IMAGE_ID", $this->
getPostVar() .
"[image][$i]");
349 $tpl->setVariable(
"IMAGE_SUBMIT",
$lng->txt(
"upload"));
350 $tpl->setVariable(
"IMAGE_ROW_NUMBER",
$i);
352 $tpl->parseCurrentBlock();
355 if (is_object($value)) {
356 $tpl->setCurrentBlock(
"prop_text_propval");
358 $tpl->parseCurrentBlock();
360 $tpl->setCurrentBlock(
"prop_points_propval");
362 $tpl->parseCurrentBlock();
365 $tpl->setCurrentBlock(
'singleline');
367 $tpl->setVariable(
"SINGLELINE_ID", $this->
getPostVar() .
"[answer][$i]");
368 $tpl->setVariable(
"SINGLELINE_ROW_NUMBER",
$i);
372 $tpl->setVariable(
"DISABLED_SINGLELINE",
" disabled=\"disabled\"");
374 $tpl->parseCurrentBlock();
376 if (is_object($value)) {
378 $tpl->setCurrentBlock(
"prop_points_propval");
380 $tpl->parseCurrentBlock();
383 $tpl->setCurrentBlock(
'multiline');
385 $tpl->setVariable(
"MULTILINE_ID", $this->
getPostVar() .
"[answer][$i]");
386 $tpl->setVariable(
"MULTILINE_ROW_NUMBER",
$i);
389 $tpl->setVariable(
"DISABLED_MULTILINE",
" disabled=\"disabled\"");
391 $tpl->parseCurrentBlock();
394 $tpl->setCurrentBlock(
"move");
395 $tpl->setVariable(
"CMD_UP",
"cmd[up" . $this->
getFieldId() .
"][$i]");
396 $tpl->setVariable(
"CMD_DOWN",
"cmd[down" . $this->
getFieldId() .
"][$i]");
400 $tpl->parseCurrentBlock();
403 $tpl->setCurrentBlock(
"points");
404 $tpl->setVariable(
"POINTS_ID", $this->
getPostVar() .
"[points][$i]");
406 $tpl->setVariable(
"POINTS_ROW_NUMBER",
$i);
407 $tpl->parseCurrentBlock();
409 $tpl->setCurrentBlock(
"row");
411 $tpl->setVariable(
"ROW_NUMBER",
$i);
413 $tpl->setVariable(
"CMD_ADD",
"cmd[add" . $this->
getFieldId() .
"][$i]");
414 $tpl->setVariable(
"CMD_REMOVE",
"cmd[remove" . $this->
getFieldId() .
"][$i]");
416 $tpl->setVariable(
"DISABLED_POINTS",
" disabled=\"disabled\"");
420 $tpl->parseCurrentBlock();
425 if (!$this->hideImages) {
427 $suff_str = $delim =
"";
429 $suff_str .= $delim .
"." .
$suffix;
432 $tpl->setCurrentBlock(
'allowed_image_suffixes');
433 $tpl->setVariable(
"TXT_ALLOWED_SUFFIXES",
$lng->txt(
"file_allowed_suffixes") .
" " . $suff_str);
434 $tpl->parseCurrentBlock();
436 $tpl->setCurrentBlock(
"image_heading");
437 $tpl->setVariable(
"ANSWER_IMAGE",
$lng->txt(
'answer_image'));
439 $tpl->parseCurrentBlock();
444 $tpl->setCurrentBlock(
"points_heading");
445 $tpl->setVariable(
"POINTS_TEXT",
$lng->txt(
'points'));
446 $tpl->parseCurrentBlock();
450 $tpl->setVariable(
"TEXT_YES",
$lng->txt(
'yes'));
451 $tpl->setVariable(
"TEXT_NO",
$lng->txt(
'no'));
452 $tpl->setVariable(
"DELETE_IMAGE_HEADER",
$lng->txt(
'delete_image_header'));
453 $tpl->setVariable(
"DELETE_IMAGE_QUESTION",
$lng->txt(
'delete_image_question'));
454 $tpl->setVariable(
"ANSWER_TEXT",
$lng->txt(
'answer_text'));
455 $tpl->setVariable(
"COMMANDS_TEXT",
$lng->txt(
'actions'));
457 $a_tpl->setCurrentBlock(
"prop_generic");
458 $a_tpl->setVariable(
"PROP_GENERIC",
$tpl->get());
459 $a_tpl->parseCurrentBlock();
463 $tpl->addJavascript(
"./Services/Form/js/ServiceFormWizardInput.js");
464 $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.