4 include_once
"./Modules/TestQuestionPool/classes/class.ilSingleChoiceWizardInputGUI.php";
22 $this->values = array();
23 if (is_array($a_value)) {
24 if (is_array($a_value[
'answer'])) {
26 include_once
"./Modules/TestQuestionPool/classes/class.assAnswerMultipleResponseImage.php";
28 array_push($this->values, $answer);
44 include_once
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
49 if (is_array($foundvalues)) {
51 if (is_array($foundvalues[
'answer'])) {
52 foreach ($foundvalues[
'answer'] as $aidx => $answervalue) {
53 if (((strlen($answervalue)) == 0) && (strlen($foundvalues[
'imagename'][$aidx]) == 0)) {
61 if (is_array($foundvalues[
'points'])) {
62 foreach ($foundvalues[
'points'] as $points) {
66 if (((strlen($points)) == 0) || (!is_numeric($points))) {
67 $this->
setAlert(
$lng->txt(
"form_msg_numeric_value_required"));
71 foreach ($foundvalues[
'points_unchecked'] as $points) {
72 if (((strlen($points)) == 0) || (!is_numeric($points))) {
73 $this->
setAlert(
$lng->txt(
"form_msg_numeric_value_required"));
79 $this->
setAlert(
$lng->txt(
"enter_enough_positive_points_checked"));
83 if (is_array($_FILES) && count($_FILES) && $this->
getSingleline()) {
84 if (!$this->hideImages) {
85 if (is_array($_FILES[$this->
getPostVar()][
'error'][
'image'])) {
86 foreach ($_FILES[$this->
getPostVar()][
'error'][
'image'] as
$index => $error) {
90 case UPLOAD_ERR_INI_SIZE:
91 $this->
setAlert(
$lng->txt(
"form_msg_file_size_exceeds"));
95 case UPLOAD_ERR_FORM_SIZE:
96 $this->
setAlert(
$lng->txt(
"form_msg_file_size_exceeds"));
100 case UPLOAD_ERR_PARTIAL:
101 $this->
setAlert(
$lng->txt(
"form_msg_file_partially_uploaded"));
105 case UPLOAD_ERR_NO_FILE:
107 if ((!strlen($foundvalues[
'imagename'][$index])) && (!strlen($foundvalues[
'answer'][$index]))) {
114 case UPLOAD_ERR_NO_TMP_DIR:
115 $this->
setAlert(
$lng->txt(
"form_msg_file_missing_tmp_dir"));
119 case UPLOAD_ERR_CANT_WRITE:
120 $this->
setAlert(
$lng->txt(
"form_msg_file_cannot_write_to_disk"));
124 case UPLOAD_ERR_EXTENSION:
125 $this->
setAlert(
$lng->txt(
"form_msg_file_upload_stopped_ext"));
138 if (is_array($_FILES[$this->
getPostVar()][
'tmp_name'][
'image'])) {
139 foreach ($_FILES[$this->
getPostVar()][
'tmp_name'][
'image'] as
$index => $tmpname) {
142 $suffix = $filename_arr[
"extension"];
146 if (strlen($tmpname) && is_array($this->
getSuffixes())) {
148 $this->
setAlert(
$lng->txt(
"form_msg_file_wrong_file_type"));
155 if (is_array($_FILES[$this->
getPostVar()][
'tmp_name'][
'image'])) {
156 foreach ($_FILES[$this->
getPostVar()][
'tmp_name'][
'image'] as
$index => $tmpname) {
159 $suffix = $filename_arr[
"extension"];
163 if (strlen($tmpname)) {
165 if ($vir[0] ==
false) {
166 $this->
setAlert(
$lng->txt(
"form_msg_file_virus_found") .
"<br />" . $vir[1]);
191 $tpl =
new ilTemplate(
"tpl.prop_multiplechoicewizardinput.html",
true,
true,
"Modules/TestQuestionPool");
193 foreach ($this->values as
$value) {
195 if (!$this->hideImages) {
196 if (strlen($value->getImage())) {
197 $imagename = $this->qstObject->getImagePathWeb() . $value->getImage();
198 if (($this->
getSingleline()) && ($this->qstObject->getThumbSize())) {
199 if (@file_exists($this->qstObject->getImagePath() . $this->qstObject->getThumbPrefix() . $value->getImage())) {
200 $imagename = $this->qstObject->getImagePathWeb() . $this->qstObject->getThumbPrefix() . $value->getImage();
203 $tpl->setCurrentBlock(
'image');
204 $tpl->setVariable(
'SRC_IMAGE', $imagename);
205 $tpl->setVariable(
'IMAGE_NAME', $value->getImage());
207 $tpl->setVariable(
"TXT_DELETE_EXISTING",
$lng->txt(
"delete_existing_file"));
208 $tpl->setVariable(
"IMAGE_ROW_NUMBER",
$i);
210 $tpl->parseCurrentBlock();
212 $tpl->setCurrentBlock(
'addimage');
213 $tpl->setVariable(
"IMAGE_BROWSE",
$lng->txt(
'select_file'));
214 $tpl->setVariable(
"IMAGE_ID", $this->
getPostVar() .
"[image][$i]");
215 $tpl->setVariable(
"IMAGE_SUBMIT",
$lng->txt(
"upload"));
216 $tpl->setVariable(
"IMAGE_ROW_NUMBER",
$i);
218 $tpl->parseCurrentBlock();
221 if (is_object($value)) {
222 $tpl->setCurrentBlock(
"prop_text_propval");
224 $tpl->parseCurrentBlock();
225 $tpl->setCurrentBlock(
"prop_points_propval");
227 $tpl->parseCurrentBlock();
228 $tpl->setCurrentBlock(
"prop_points_unchecked_propval");
230 $tpl->parseCurrentBlock();
232 $tpl->setCurrentBlock(
'singleline');
234 $tpl->setVariable(
"SINGLELINE_ID", $this->
getPostVar() .
"[answer][$i]");
235 $tpl->setVariable(
"SINGLELINE_ROW_NUMBER",
$i);
239 $tpl->setVariable(
"DISABLED_SINGLELINE",
" disabled=\"disabled\"");
241 $tpl->parseCurrentBlock();
243 if (is_object($value)) {
244 $tpl->setCurrentBlock(
"prop_points_propval");
246 $tpl->parseCurrentBlock();
247 $tpl->setCurrentBlock(
"prop_points_unchecked_propval");
249 $tpl->parseCurrentBlock();
251 $tpl->setCurrentBlock(
'multiline');
253 $tpl->setVariable(
"MULTILINE_ID", $this->
getPostVar() .
"[answer][$i]");
254 $tpl->setVariable(
"MULTILINE_ROW_NUMBER",
$i);
257 $tpl->setVariable(
"DISABLED_MULTILINE",
" disabled=\"disabled\"");
259 $tpl->parseCurrentBlock();
262 $tpl->setCurrentBlock(
"move");
263 $tpl->setVariable(
"CMD_UP",
"cmd[up" . $this->
getFieldId() .
"][$i]");
264 $tpl->setVariable(
"CMD_DOWN",
"cmd[down" . $this->
getFieldId() .
"][$i]");
268 $tpl->parseCurrentBlock();
270 $tpl->setCurrentBlock(
"row");
272 $tpl->setVariable(
"ROW_NUMBER",
$i);
274 $tpl->setVariable(
"POINTS_ID", $this->
getPostVar() .
"[points][$i]");
275 $tpl->setVariable(
"POINTS_UNCHECKED_ID", $this->
getPostVar() .
"[points_unchecked][$i]");
276 $tpl->setVariable(
"CMD_ADD",
"cmd[add" . $this->
getFieldId() .
"][$i]");
277 $tpl->setVariable(
"CMD_REMOVE",
"cmd[remove" . $this->
getFieldId() .
"][$i]");
279 $tpl->setVariable(
"DISABLED_POINTS",
" disabled=\"disabled\"");
283 $tpl->parseCurrentBlock();
288 if (!$this->hideImages) {
290 $suff_str = $delim =
"";
292 $suff_str .= $delim .
"." .
$suffix;
295 $tpl->setCurrentBlock(
'allowed_image_suffixes');
296 $tpl->setVariable(
"TXT_ALLOWED_SUFFIXES",
$lng->txt(
"file_allowed_suffixes") .
" " . $suff_str);
297 $tpl->parseCurrentBlock();
300 $tpl->setCurrentBlock(
"image_heading");
301 $tpl->setVariable(
"ANSWER_IMAGE",
$lng->txt(
'answer_image'));
303 $tpl->parseCurrentBlock();
308 $tpl->setVariable(
"TEXT_YES",
$lng->txt(
'yes'));
309 $tpl->setVariable(
"TEXT_NO",
$lng->txt(
'no'));
310 $tpl->setVariable(
"DELETE_IMAGE_HEADER",
$lng->txt(
'delete_image_header'));
311 $tpl->setVariable(
"DELETE_IMAGE_QUESTION",
$lng->txt(
'delete_image_question'));
312 $tpl->setVariable(
"ANSWER_TEXT",
$lng->txt(
'answer_text'));
313 $tpl->setVariable(
"POINTS_TEXT",
$lng->txt(
'points'));
314 $tpl->setVariable(
"COMMANDS_TEXT",
$lng->txt(
'actions'));
315 $tpl->setVariable(
"POINTS_CHECKED_TEXT",
$lng->txt(
'checkbox_checked'));
316 $tpl->setVariable(
"POINTS_UNCHECKED_TEXT",
$lng->txt(
'checkbox_unchecked'));
318 $a_tpl->setCurrentBlock(
"prop_generic");
319 $a_tpl->setVariable(
"PROP_GENERIC",
$tpl->get());
320 $a_tpl->parseCurrentBlock();
324 $tpl->addJavascript(
"./Services/Form/js/ServiceFormWizardInput.js");
325 $tpl->addJavascript(
"./Modules/TestQuestionPool/templates/default/multiplechoicewizard.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.
ASS_AnswerBinaryStateImage is a class for answers with a binary state indicator (checked/unchecked, set/unset) and an image file.
static get($a_glyph, $a_text="")
Get glyph html.
special template class to simplify handling of ITX/PEAR
static stripSlashesRecursive($a_data, $a_strip_html=true, $a_allow="")
Strip slashes from array and sub-arrays.