function showAnswer($number, $variable, $var, $previousdata, $inline = false, $enumid = "") { //echo '<br/>showing: ' . $variable; /* if inline field, then don't show it UNLESS it is inline display */ if ($this->engine->isInlineField($variable) && $inline == false) { return ""; } $inlineclass = ""; $hovertext = $this->engine->getFill($variable, $var, SETTING_HOVERTEXT); if ($hovertext != "") { $returnStr = "<div title='" . str_replace("'", "", $hovertext) . "' class='uscic-answer'>"; } else { $returnStr = "<div class='uscic-answer'>"; } if ($inline) { $inlineclass = "-inline"; $returnStr = ""; } $language = getSurveyLanguage(); $varname = SESSION_PARAMS_ANSWER . $number; $id = $this->engine->getFill($variable, $var, SETTING_ID); if (trim($id) == "") { $id = $varname; } $answertype = $var->getAnswerType(); if (inArray($answertype, array(ANSWER_TYPE_SETOFENUMERATED, ANSWER_TYPE_MULTIDROPDOWN))) { $varname .= "[]"; } /* add required error check */ if ($var->getIfEmpty() != IF_EMPTY_ALLOW) { /* if not inline OR inline but not in enumerated/set of enumerated */ if ($inline == false || $inline == true && trim($enumid) == "") { if (inArray($var->getAnswerType(), array(ANSWER_TYPE_SETOFENUMERATED))) { // custom name for set of enumerated question, since we use a hidden field/textbox to track the real answer(s); we just use this custom name for referencing in the error checking $this->addErrorCheck(SESSION_PARAMS_ANSWER . $number . "_name[]", new ErrorCheck(ERROR_CHECK_REQUIRED, "true"), $this->engine->getFill($variable, $var, SETTING_EMPTY_MESSAGE)); } else { $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_REQUIRED, "true"), $this->engine->getFill($variable, $var, SETTING_EMPTY_MESSAGE)); } } } $align = $var->getAnswerAlignment(); $qa = ""; switch ($align) { case ALIGN_LEFT: $qa = "text-left"; break; case ALIGN_RIGHT: $qa = "text-right"; break; case ALIGN_JUSTIFIED: $qa = "text-justify"; break; case ALIGN_CENTER: $qa = "text-center"; break; default: break; } /* hide dk/rf/na */ if (inArray($previousdata, array(ANSWER_DK, ANSWER_RF, ANSWER_NA))) { $previousdata = ""; } $pretext = ""; $posttext = ""; $inputgroupstart = ''; $inputgroupend = ""; if (inArray($answertype, array(ANSWER_TYPE_STRING, ANSWER_TYPE_INTEGER, ANSWER_TYPE_RANGE, ANSWER_TYPE_DOUBLE))) { $pretext = $this->engine->getFill($variable, $var, SETTING_PRETEXT); $posttext = $this->engine->getFill($variable, $var, SETTING_POSTTEXT); $answerformat = ""; if ($pretext != "") { $answerformat = $var->getAnswerFormatting(); $pretext = '<span id="vsid_' . $var->getVsid() . '" uscic-texttype="' . SETTING_PRETEXT . '" class="input-group-addon uscic-inputaddon-pretext' . $this->inlineeditable . '">' . $this->applyFormatting($pretext, $answerformat) . '</span>'; $inputgroupstart = '<div class="input-group uscic-inputgroup-pretext">'; $inputgroupend = "</div>"; } if ($posttext != "") { if ($answerformat == "") { $answerformat = $var->getAnswerFormatting(); } $posttext = '<div id="vsid_' . $var->getVsid() . '" uscic-texttype="' . SETTING_POSTTEXT . '" class="input-group-addon uscic-inputaddon-posttext' . $this->inlineeditable . '">' . $this->applyFormatting($posttext, $answerformat) . '</div>'; $inputgroupstart = '<div class="input-group uscic-inputgroup-posttext">'; $inputgroupend = "</div>"; } } $inlinejavascript = $this->engine->getFill($variable, $var, SETTING_JAVASCRIPT_WITHIN_ELEMENT); $inlinestyle = $this->engine->getFill($variable, $var, SETTING_STYLE_WITHIN_ELEMENT); $placeholder = $this->engine->getFill($variable, $var, SETTING_PLACEHOLDER); if (trim($placeholder) != "") { $placeholder = " placeholder='" . $placeholder . "' "; } $linkedto = ""; if ($inline == true && trim($enumid) != "") { $linkedto = ' linkedto="' . $enumid . '" '; } /* add any comparison checks */ $this->addComparisonChecks($var, $variable, $varname); /* any individual dk/rf/na */ $dkrfna = $this->addDKRFNAButton($varname, $var, $variable, $inline, $enumid); $dkrfnaclass = ""; if ($dkrfna != "") { if ($this->engine->isDKAnswer($variable)) { $dkrfnaclass = "dkrfna"; } else { if ($this->engine->isRFAnswer($variable)) { $dkrfnaclass = "dkrfna"; } else { if ($this->engine->isNAAnswer($variable)) { $dkrfnaclass = "dkrfna"; } } } } /* add answer display */ switch ($answertype) { case ANSWER_TYPE_STRING: //string $minimumlength = $this->engine->getFill($variable, $var, SETTING_MINIMUM_LENGTH); $maximumlength = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_LENGTH); if ($minimumlength > 0) { $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MINLENGTH, $minimumlength), replacePlaceHolders(array(PLACEHOLDER_MINIMUM_LENGTH => $minimumlength), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MINIMUM_LENGTH))); } $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MAXLENGTH, $maximumlength), replacePlaceHolders(array(PLACEHOLDER_MAXIMUM_LENGTH => $maximumlength), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MAXIMUM_LENGTH))); $minwords = $this->engine->getFill($variable, $var, SETTING_MINIMUM_WORDS); $maxwords = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_WORDS); if ($minwords > 0) { $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MINWORDS, $minwords), replacePlaceHolders(array(PLACEHOLDER_MINIMUM_WORDS => $minwords), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MINIMUM_WORDS))); } $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MAXWORDS, $maxwords), replacePlaceHolders(array(PLACEHOLDER_MAXIMUM_WORDS => $maxwords), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MAXIMUM_WORDS))); /* input masking */ $textmask = $this->addInputMasking($varname, $variable, $var); // placeholder: , "placeholder": "*" $pattern = $this->engine->getFill($variable, $var, SETTING_PATTERN); if (trim($pattern) != "") { $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_PATTERN, $pattern), replacePlaceHolders(array(PLACEHOLDER_PATTERN => $pattern), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_PATTERN))); } if ($inline) { $returnStr .= '<label> <div class="uscic-string ' . $qa . '">' . $inputgroupstart . $pretext . ' <input class="form-control uscic-form-control-inline ' . $dkrfnaclass . '" spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $linkedto . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="uscic-string' . $inlineclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '"> ' . $posttext . $inputgroupend . $dkrfna . ' </div> </label>'; } else { $returnStr .= $this->displayZipScripts(); $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '"> <label> <div class="uscic-string ' . $qa . '">' . $inputgroupstart . $pretext . ' <input spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="form-control uscic-form-control ' . $dkrfnaclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '"> ' . $posttext . $inputgroupend . $dkrfna . ' </div> </label> </div> '; } break; case ANSWER_TYPE_ENUMERATED: //enumerated $dis = $var->getEnumeratedDisplay(); if ($dis == ORIENTATION_HORIZONTAL) { $returnStr .= $this->showEnumeratedHorizontal($id, $varname, $variable, $var, $previousdata, $inlineclass, $inlinestyle, $inlinejavascript); } else { if ($dis == ORIENTATION_VERTICAL) { $returnStr .= $this->showEnumeratedVertical($id, $varname, $variable, $var, $previousdata, $inlineclass, $inlinestyle, $inlinejavascript); } else { $returnStr .= $this->showEnumeratedCustom($id, $varname, $variable, $var, $previousdata, $inlineclass, $inlinestyle, $inlinejavascript); } } break; case ANSWER_TYPE_SETOFENUMERATED: //set of enumerated $dis = $var->getEnumeratedDisplay(); if ($dis == ORIENTATION_HORIZONTAL) { $returnStr .= $this->showsetOfEnumeratedHorizontal($id, $varname, $variable, $var, $previousdata, $inlineclass, $inlinestyle, $inlinejavascript); } else { if ($dis == ORIENTATION_VERTICAL) { $returnStr .= $this->showSetOfEnumeratedVertical($id, $varname, $variable, $var, $previousdata, $inlineclass, $inlinestyle, $inlinejavascript); } else { $returnStr .= $this->showSetOfEnumeratedCustom($id, $varname, $variable, $var, $previousdata, $inlineclass, $inlinestyle, $inlinejavascript); } } break; case ANSWER_TYPE_DROPDOWN: //drop down $options = $this->engine->getFill($variable, $var, SETTING_OPTIONS); $returnStr .= $this->showComboBox($variable, $var, $varname, $id, $options, $previousdata, $inline, "", $linkedto); break; case ANSWER_TYPE_MULTIDROPDOWN: //multiple selection dropdown $this->addSetOfEnumeratedChecks($varname, $variable, $var, ANSWER_TYPE_MULTIDROPDOWN); $options = $this->engine->getFill($variable, $var, SETTING_OPTIONS); $returnStr .= $this->showComboBox($variable, $var, $varname, $id, $options, $previousdata, $inline, "multiple", $linkedto); break; case ANSWER_TYPE_INTEGER: //integer /* input masking */ $textmask = $this->addInputMasking($varname, $variable, $var); $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_INTEGER, "true"), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_INTEGER)); if ($inline) { $returnStr .= '<div class="form-group uscic-formgroup-inline"><label> <div class="uscic-integer ' . $qa . '">' . $inputgroupstart . $pretext . ' <input class="form-control uscic-form-control-inline ' . $dkrfnaclass . '" spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $linkedto . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="uscic-integer' . $inlineclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '"> ' . $posttext . $inputgroupend . $dkrfna . ' </div> </label></div>'; } else { $returnStr .= '<div class="form-group uscic-formgroup"> <label> <div class="uscic-integer ' . $qa . '">' . $inputgroupstart . $pretext . ' <input spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="form-control uscic-form-control ' . $dkrfnaclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '"> ' . $posttext . $inputgroupend . $dkrfna . ' </div> </label> </div>'; } break; case ANSWER_TYPE_DOUBLE: //double /* input masking */ $textmask = $this->addInputMasking($varname, $variable, $var); $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_NUMBER, "true"), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_DOUBLE)); if ($inline) { $returnStr .= '<div class="form-group uscic-formgroup-inline"><label> <div class="uscic-double ' . $qa . '">' . $inputgroupstart . $pretext . ' <input class="form-control uscic-form-control-inline ' . $dkrfnaclass . '" spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $linkedto . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="uscic-double' . $inlineclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '"> ' . $posttext . $inputgroupend . $dkrfna . ' </div> </label></div>'; } else { $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '"> <label> <div class="uscic-double ' . $qa . '">' . $inputgroupstart . $pretext . ' <input spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="form-control uscic-form-control ' . $dkrfnaclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '"> ' . $posttext . $inputgroupend . $dkrfna . '</div> </label> </div>'; } break; case ANSWER_TYPE_RANGE: //range /* input masking */ $textmask = $this->addInputMasking($varname, $variable, $var); $minimum = $this->engine->getFill($variable, $var, SETTING_MINIMUM_RANGE); if ($minimum == "" || !is_numeric($minimum)) { $minimum = ANSWER_RANGE_MINIMUM; } $maximum = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_RANGE); if ($maximum == "" || !is_numeric($maximum)) { $maximum = ANSWER_RANGE_MAXIMUM; } $others = $this->engine->getFill($variable, $var, SETTING_OTHER_RANGE); if (trim($others) == "") { $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_RANGE, "[" . $minimum . "," . $maximum . "]"), replacePlaceHolders(array(PLACEHOLDER_MINIMUM => $minimum, PLACEHOLDER_MAXIMUM => $maximum), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_RANGE))); } else { $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_RANGE_CUSTOM, "'" . $minimum . "," . $maximum . ";" . $others . "'"), replacePlaceHolders(array(PLACEHOLDER_MINIMUM => $minimum, PLACEHOLDER_MAXIMUM => $maximum), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_RANGE))); } if (!(contains($minimum, ".") || contains($maximum, "."))) { $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_INTEGER, "true"), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_INTEGER)); } if ($inline) { $returnStr .= '<div class="form-group uscic-formgroup-inline"><label> <div class="uscic-range ' . $qa . '">' . $inputgroupstart . $pretext . ' <input class="form-control uscic-form-control-inline ' . $dkrfnaclass . '" spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $linkedto . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="uscic-range' . $inlineclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '"> ' . $posttext . $inputgroupend . $dkrfna . ' </div> </label></div>'; } else { $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '"> <label> <div class="uscic-range ' . $qa . '">' . $inputgroupstart . $pretext . ' <input spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $textmask . ' ' . $inlinestyle . ' ' . $inlinejavascript . ' ' . $this->getErrorTextString($varname) . ' class="form-control uscic-form-control ' . $dkrfnaclass . '" type=text id=' . $id . ' name=' . $varname . ' value="' . convertHTLMEntities($previousdata, ENT_QUOTES) . '"> ' . $posttext . $inputgroupend . $dkrfna . '</div> </label> </div>'; } break; case ANSWER_TYPE_SLIDER: //slider $minimum = $this->engine->getFill($variable, $var, SETTING_MINIMUM_RANGE); $maximum = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_RANGE); if ($minimum == "" || !is_numeric($minimum)) { $minimum = ANSWER_RANGE_MINIMUM; } $maximum = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_RANGE); if ($maximum == "" || !is_numeric($maximum)) { $maximum = ANSWER_RANGE_MAXIMUM; } $orientation = "horizontal"; if ($var->getSliderOrientation() == ORIENTATION_VERTICAL) { $orientation = "vertical"; } $step = $this->engine->replaceFills($var->getIncrement()); $tooltip = "show"; if ($var->getTooltip() == TOOLTIP_NO) { $tooltip = "hide"; } $returnStr .= $this->displaySlider($variable, $var, $varname, $id, $previousdata, $minimum, $maximum, $this->getErrorTextString($varname), $qa, $inlineclass, $step, $tooltip, $orientation, $dkrfna, $linkedto); break; case ANSWER_TYPE_DATE: //date $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '"> <div class="uscic-date' . $inlineclass . ' ' . $qa . '"> <label> ' . $this->displayDateTimePicker($varname, $id, $previousdata, getSurveyLanguagePostFix(getSurveyLanguage()), "true", "false", Config::usFormatSurvey(), Config::secondsSurvey(), Config::minutesSurvey(), $inlineclass, $inlinestyle, $inlinejavascript, $this->engine->replaceFills($var->getDateFormat()), $this->getErrorTextString($varname), $dkrfna, $variable, $linkedto) . ' </label> </div> </div>'; break; case ANSWER_TYPE_TIME: //time $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '"> <div class="uscic-time' . $inlineclass . ' ' . $qa . '"> <label> ' . $this->displayDateTimePicker($varname, $id, $previousdata, getSurveyLanguagePostFix(getSurveyLanguage()), "false", "true", Config::usFormatSurvey(), Config::secondsSurvey(), Config::minutesSurvey(), $inlineclass, $inlinestyle, $inlinejavascript, $this->engine->replaceFills($var->getTimeFormat()), $this->getErrorTextString($varname), $dkrfna, $variable, $linkedto) . ' </label> </div> </div>'; break; case ANSWER_TYPE_DATETIME: //date/time $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '"> <div class="uscic-datetime' . $inlineclass . ' ' . $qa . '"> <label> ' . $this->displayDateTimePicker($varname, $id, $previousdata, getSurveyLanguagePostFix(getSurveyLanguage()), "true", "true", Config::usFormatSurvey(), Config::secondsSurvey(), Config::minutesSurvey(), $inlineclass, $inlinestyle, $inlinejavascript, $this->engine->replaceFills($var->getDateTimeFormat()), $this->getErrorTextString($varname), $dkrfna, $variable, $linkedto) . ' </label> </div> </div>'; break; case ANSWER_TYPE_OPEN: //open $minimumlength = $this->engine->getFill($variable, $var, SETTING_MINIMUM_LENGTH); $maximumlength = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_LENGTH); if ($minimumlength > 0) { $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MINLENGTH, $minimumlength), replacePlaceHolders(array(PLACEHOLDER_MINIMUM_LENGTH => $minimumlength), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MINIMUM_LENGTH))); } $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MAXLENGTH, $maximumlength), replacePlaceHolders(array(PLACEHOLDER_MAXIMUM_LENGTH => $maximumlength), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MAXIMUM_LENGTH))); $minwords = $this->engine->getFill($variable, $var, SETTING_MINIMUM_WORDS); $maxwords = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_WORDS); if ($minwords > 0) { $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MINWORDS, $minwords), replacePlaceHolders(array(PLACEHOLDER_MINIMUM_WORDS => $minimumwords), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MINIMUM_WORDS))); } $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_MAXWORDS, $maxwords), replacePlaceHolders(array(PLACEHOLDER_MAXIMUM_WORDS => $maximumwords), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_MAXIMUM_WORDS))); $pattern = $this->engine->getFill($variable, $var, SETTING_PATTERN); if (trim($pattern) != "") { $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_PATTERN, $pattern), replacePlaceHolders(array(PLACEHOLDER_PATTERN => $pattern), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_PATTERN))); } if ($inline) { $returnStr .= '<div class="form-group uscic-formgroup-inline"><label> <textarea spellcheck="false" autocorrect="off" autocapitalize="off" ' . $placeholder . $linkedto . $inlinestyle . ' ' . $inlinejavascript . ' ' . $qa . ' ' . $this->getErrorTextString($varname) . ' id=' . $id . ' class="uscic-open-inline' . $inlineclass . ' ' . $dkrfnaclass . '" name=' . $varname . '>' . convertHTLMEntities($previousdata, ENT_QUOTES) . '</textarea>' . $dkrfna . ' </label></div>'; } else { $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '"> <label> <div class="uscic-open"> <textarea spellcheck="false" autocorrect="off" autocapitalize="off" autocomplete="off" ' . $placeholder . $inlinestyle . ' ' . $inlinejavascript . ' ' . $qa . ' ' . $this->getErrorTextString($varname) . ' id=' . $id . ' class="form-control uscic-form-control ' . $dkrfnaclass . '" name=' . $varname . '>' . convertHTLMEntities($previousdata, ENT_QUOTES) . '</textarea> </div>' . $dkrfna . ' </label> </div>'; } break; case ANSWER_TYPE_CALENDAR: //calendar $maximum = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_CALENDAR); $returnStr .= '<div class="form-group uscic-formgroup' . $inlineclass . '"> <div class="uscic-calendar' . $inlineclass . '">' . $this->showCalendar($varname, $id, $previousdata, $maximum, "en", true) . ' <p style="display:none" id="' . $id . '_help" class="help-block">You can only select a maximum of ' . $maximum . ' days.</p> </div> </div>'; break; case ANSWER_TYPE_CUSTOM: //custom /* input masking */ $textmask = $this->addInputMasking($varname, $variable, $var); $minimum = $this->engine->getFill($variable, $var, SETTING_MINIMUM_RANGE); if ($minimum == "" || !is_numeric($minimum)) { $minimum = ANSWER_RANGE_MINIMUM; } $maximum = $this->engine->getFill($variable, $var, SETTING_MAXIMUM_RANGE); if ($maximum == "" || !is_numeric($maximum)) { $maximum = ANSWER_RANGE_MAXIMUM; } $others = $this->engine->getFill($variable, $var, SETTING_OTHER_RANGE); if (trim($others) == "") { $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_RANGE, "[" . $minimum . "," . $maximum . "]"), replacePlaceHolders(array(PLACEHOLDER_MINIMUM => $minimum, PLACEHOLDER_MAXIMUM => $maximum), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_RANGE))); } else { $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_RANGE_CUSTOM, "'" . $minimum . "," . $maximum . ";" . $others . "'"), replacePlaceHolders(array(PLACEHOLDER_MINIMUM => $minimum, PLACEHOLDER_MAXIMUM => $maximum), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_RANGE))); } if (!(contains($minimum, ".") || contains($maximum, "."))) { $this->addErrorCheck($varname, new ErrorCheck(ERROR_CHECK_INTEGER, "true"), $this->engine->getFill($variable, $var, SETTING_ERROR_MESSAGE_INTEGER)); } $tocall = $this->engine->getFill($variable, $var, SETTING_ANSWERTYPE_CUSTOM); $parameters = array(); if (stripos($tocall, '(') !== false) { $parameters = rtrim(substr($tocall, stripos($tocall, '(') + 1), ')'); $parameters = preg_split("/[\\s,]+/", $parameters); $tocall = substr($tocall, 0, stripos($tocall, '(')); } // add error string as parameter if we need it $parameters[] = $this->getErrorTextString($varname); //echo $tocall . '----'; if (function_exists($tocall)) { try { $f = new ReflectionFunction($tocall); $returnStr .= $f->invoke($variable, $parameters); } catch (Exception $e) { } } } if (!$inline) { $returnStr .= "</div>"; } return $returnStr; }