function setDefaults() { $this->defaults = array(SETTING_IFEMPTY => IF_EMPTY_WARN, SETTING_IFERROR => IF_ERROR_NOTALLOW, SETTING_GROUP_TABLE_STRIPED => TABLE_NO, SETTING_GROUP_TABLE_BORDERED => TABLE_NO, SETTING_GROUP_TABLE_CONDENSED => TABLE_NO, SETTING_GROUP_TABLE_HOVERED => TABLE_NO, SETTING_QUESTION_ALIGNMENT => ALIGN_LEFT, SETTING_QUESTION_FORMATTING => "", SETTING_ANSWER_ALIGNMENT => ALIGN_LEFT, SETTING_ANSWER_FORMATTING => "", SETTING_BUTTON_ALIGNMENT => ALIGN_CENTER, SETTING_BUTTON_FORMATTING => "", SETTING_HEADER_ALIGNMENT => ALIGN_CENTER, SETTING_HEADER_FORMATTING => "", SETTING_TABLE_WIDTH => TABLE_WIDTH, SETTING_QUESTION_COLUMN_WIDTH => TABLE_QUESTION_COLUMN_WIDTH, SETTING_BACK_BUTTON => BUTTON_YES, SETTING_NEXT_BUTTON => BUTTON_YES, SETTING_DK_BUTTON => BUTTON_NO, SETTING_RF_BUTTON => BUTTON_NO, SETTING_NA_BUTTON => BUTTON_NO, SETTING_UPDATE_BUTTON => BUTTON_NO, SETTING_CLOSE_BUTTON => BUTTON_NO, SETTING_REMARK_BUTTON => BUTTON_NO, SETTING_REMARK_SAVE_BUTTON => BUTTON_NO, SETTING_BACK_BUTTON_LABEL => Language::buttonBack(), SETTING_NEXT_BUTTON_LABEL => Language::buttonNext(), SETTING_DK_BUTTON_LABEL => Language::buttonDK(), SETTING_RF_BUTTON_LABEL => Language::buttonRF(), SETTING_NA_BUTTON_LABEL => Language::buttonNA(), SETTING_UPDATE_BUTTON_LABEL => Language::buttonUpdate(), SETTING_REMARK_BUTTON_LABEL => Language::buttonRemark(), SETTING_REMARK_SAVE_BUTTON_LABEL => Language::buttonRemarkSave(), SETTING_CLOSE_BUTTON_LABEL => Language::buttonClose(), SETTING_PROGRESSBAR_SHOW => PROGRESSBAR_BAR, SETTING_PROGRESSBAR_TYPE => PROGRESSBAR_WHOLE, SETTING_PROGRESSBAR_FILLED_COLOR => PROGRESSBAR_FILLED_COLOR, SETTING_PROGRESSBAR_REMAIN_COLOR => PROGRESSBAR_REMAIN_COLOR, SETTING_PROGRESSBAR_WIDTH => PROGRESSBAR_WIDTH, SETTING_ERROR_PLACEMENT => ERROR_PLACEMENT_WITH_QUESTION, SETTING_EMPTY_MESSAGE => Language::errorCheckRequired(), SETTING_ERROR_MESSAGE_INTEGER => Language::errorCheckInteger(), SETTING_ERROR_MESSAGE_DOUBLE => Language::errorCheckDouble(), SETTING_ERROR_MESSAGE_PATTERN => Language::errorCheckPattern(), SETTING_ERROR_MESSAGE_RANGE => Language::errorCheckRange(), SETTING_ERROR_MESSAGE_MAXIMUM_CALENDAR => Language::errorCheckMaximumCalendar(), SETTING_ERROR_MESSAGE_MINIMUM_LENGTH => Language::errorCheckMinLength(), SETTING_ERROR_MESSAGE_MAXIMUM_LENGTH => Language::errorCheckMaxLength(), SETTING_ERROR_MESSAGE_MINIMUM_WORDS => Language::errorCheckMinWords(), SETTING_ERROR_MESSAGE_MAXIMUM_WORDS => Language::errorCheckMaxWords(), SETTING_ERROR_MESSAGE_MINIMUM_SELECT => Language::errorCheckSelectMin(), SETTING_ERROR_MESSAGE_MAXIMUM_SELECT => Language::errorCheckSelectMax(), SETTING_ERROR_MESSAGE_EXACT_SELECT => Language::errorCheckSelectExact(), SETTING_ERROR_MESSAGE_INVALID_SUB_SELECT => Language::errorCheckSelectInvalidSubset(), SETTING_ERROR_MESSAGE_INVALID_SELECT => Language::errorCheckSelectInvalidSet(), SETTING_ERROR_MESSAGE_INLINE_EXCLUSIVE => Language::errorCheckInlineExclusive(), SETTING_ERROR_MESSAGE_INLINE_INCLUSIVE => Language::errorCheckInlineInclusive(), SETTING_ERROR_MESSAGE_INLINE_MINIMUM_REQUIRED => Language::errorCheckInlineMinRequired(), SETTING_ERROR_MESSAGE_INLINE_MAXIMUM_REQUIRED => Language::errorCheckInlineMaxRequired(), SETTING_ERROR_MESSAGE_INLINE_EXACT_REQUIRED => Language::errorCheckInlineExactRequired(), SETTING_ERROR_MESSAGE_EXCLUSIVE => Language::errorCheckExclusive(), SETTING_ERROR_MESSAGE_INCLUSIVE => Language::errorCheckInclusive(), SETTING_ERROR_MESSAGE_MINIMUM_REQUIRED => Language::errorCheckMinRequired(), SETTING_ERROR_MESSAGE_MAXIMUM_REQUIRED => Language::errorCheckMaxRequired(), SETTING_ERROR_MESSAGE_EXACT_REQUIRED => Language::errorCheckExactRequired(), SETTING_ERROR_MESSAGE_UNIQUE_REQUIRED => Language::errorCheckUniqueRequired(), SETTING_ERROR_MESSAGE_SAME_REQUIRED => Language::errorCheckSameRequired(), SETTING_ERROR_MESSAGE_INLINE_ANSWERED => Language::errorCheckInlineAnswered(), SETTING_ERROR_MESSAGE_ENUMERATED_ENTERED => Language::errorCheckEnumeratedEntered(), SETTING_ERROR_MESSAGE_SETOFENUMERATED_ENTERED => Language::errorCheckSetOfEnumeratedEntered(), SETTING_ERROR_MESSAGE_COMPARISON_EQUAL_TO => Language::errorCheckComparisonEqualTo(), SETTING_ERROR_MESSAGE_COMPARISON_NOT_EQUAL_TO => Language::errorCheckComparisonNotEqualTo(), SETTING_ERROR_MESSAGE_COMPARISON_EQUAL_TO_IGNORE_CASE => Language::errorCheckComparisonEqualToIgnoreCase(), SETTING_ERROR_MESSAGE_COMPARISON_NOT_EQUAL_TO_IGNORE_CASE => Language::errorCheckComparisonNotEqualToIgnoreCase(), SETTING_ERROR_MESSAGE_COMPARISON_GREATER_EQUAL_TO => Language::errorCheckComparisonGreaterEqualTo(), SETTING_ERROR_MESSAGE_COMPARISON_GREATER => Language::errorCheckComparisonGreater(), SETTING_ERROR_MESSAGE_COMPARISON_SMALLER_EQUAL_TO => Language::errorCheckComparisonSmallerEqualTo(), SETTING_ERROR_MESSAGE_COMPARISON_SMALLER => Language::errorCheckComparisonSmaller(), SETTING_INLINE_EXCLUSIVE => INLINE_NO, SETTING_INLINE_INCLUSIVE => INLINE_YES, SETTING_INLINE_MINIMUM_REQUIRED => "", SETTING_INLINE_MAXIMUM_REQUIRED => "", SETTING_INLINE_EXACT_REQUIRED => "", SETTING_KEEP => KEEP_ANSWER_NO, SETTING_ARRAY => ARRAY_ANSWER_NO, SETTING_HIDDEN => HIDDEN_NO, SETTING_HIDDEN_ROUTING => HIDDEN_NO, SETTING_HIDDEN_PAPER_VERSION => HIDDEN_NO, SETTING_HIDDEN_TRANSLATION => HIDDEN_NO, SETTING_MINIMUM_RANGE => ANSWER_RANGE_MINIMUM, SETTING_MAXIMUM_RANGE => ANSWER_RANGE_MAXIMUM, SETTING_OTHER_RANGE => "", SETTING_PATTERN => ANSWER_PATTERN, SETTING_INPUT_MASK => "", SETTING_INPUT_MASK_PLACEHOLDER => "", SETTING_MINIMUM_LENGTH => ANSWER_STRING_MIN_LENGTH, SETTING_MAXIMUM_LENGTH => ANSWER_STRING_MAX_LENGTH, SETTING_MINIMUM_OPEN_LENGTH => ANSWER_OPEN_MIN_LENGTH, SETTING_MAXIMUM_OPEN_LENGTH => ANSWER_OPEN_MAX_LENGTH, SETTING_MINIMUM_WORDS => ANSWER_OPEN_MIN_WORDS, SETTING_MAXIMUM_WORDS => ANSWER_OPEN_MAX_WORDS, SETTING_MINIMUM_SELECTED => "", SETTING_MAXIMUM_SELECTED => "", SETTING_EXACT_SELECTED => "", SETTING_INVALID_SELECTED => "", SETTING_INVALIDSUB_SELECTED => "", SETTING_MAXIMUM_CALENDAR => ANSWER_CALENDAR_MAXSELECTED, SETTING_SLIDER_INCREMENT => DEFAULT_INCREMENT, SETTING_SLIDER_TOOLTIP => TOOLTIP_YES, SETTING_SLIDER_ORIENTATION => ORIENTATION_HORIZONTAL, SETTING_SLIDER_TEXTBOX => TEXTBOX_YES, SETTING_SLIDER_TEXTBOX_LABEL => Language::labelSliderTextBox(), SETTING_GROUP_EXACT_REQUIRED => "", SETTING_GROUP_MINIMUM_REQUIRED => "", SETTING_GROUP_MAXIMUM_REQUIRED => "", SETTING_GROUP_EXCLUSIVE => GROUP_NO, SETTING_GROUP_INCLUSIVE => GROUP_NO, SETTING_GROUP_SAME_REQUIRED => GROUP_NO, SETTING_GROUP_UNIQUE_REQUIRED => GROUP_NO, SETTING_INPUT_MASK_ENABLED => INPUT_MASK_NO, SETTING_INPUT_MASK_PLACEHOLDER => "", SETTING_HEADER_SCROLL_DISPLAY => TABLE_SCROLL, SETTING_HEADER_FIXED => TABLE_NO, SETTING_ENUMERATED_ORIENTATION => ORIENTATION_VERTICAL, SETTING_ENUMERATED_BORDERED => ENUMERATED_YES, SETTING_ENUMERATED_SPLIT => ENUMERATED_NO, SETTING_ENUMERATED_ORDER => ORDER_OPTION_FIRST, SETTING_ENUMERATED_CUSTOM => "", SETTING_PLACEHOLDER => "", SETTING_ENUMERATED_TEXTBOX => TEXTBOX_NO, SETTING_ENUMERATED_TEXTBOX_LABEL => Language::labelEnumeratedTextBox(), SETTING_ENUMERATED_LABEL => ENUMERATED_LABEL_LABEL_ONLY, SETTING_KEYBOARD_BINDING_ENABLED => KEYBOARD_BINDING_NO, SETTING_KEYBOARD_BINDING_BACK => Language::keyboardBindingBack(), SETTING_KEYBOARD_BINDING_NEXT => Language::keyboardBindingNext(), SETTING_KEYBOARD_BINDING_DK => Language::keyboardBindingDK(), SETTING_KEYBOARD_BINDING_RF => Language::keyboardBindingRF(), SETTING_KEYBOARD_BINDING_NA => Language::keyboardBindingNA(), SETTING_KEYBOARD_BINDING_UPDATE => Language::keyboardBindingUpdate(), SETTING_KEYBOARD_BINDING_REMARK => Language::keyboardBindingRemark(), SETTING_KEYBOARD_BINDING_CLOSE => Language::keyboardBindingClose(), SETTING_SHOW_SECTION_HEADER => SECTIONHEADER_YES, SETTING_SHOW_SECTION_FOOTER => SECTIONFOOTER_YES, SETTING_SCREENDUMPS => SCREENDUMPS_NO, SETTING_PARADATA => Config::logParadata(), SETTING_ACCESS_REENTRY_ACTION => REENTRY_SAME_SCREEN, SETTING_ACCESS_REENTRY_PRELOAD_REDO => PRELOAD_REDO_NO, SETTING_ACCESS_RETURN_AFTER_COMPLETION_ACTION => AFTER_COMPLETION_NO_REENTRY, SETTING_ACCESS_RETURN_AFTER_COMPLETION_PRELOAD_REDO => PRELOAD_REDO_NO, SETTING_DATA_KEEP_ONLY => DATA_KEEP_ONLY_NO, SETTING_DATA_KEEP => DATA_KEEP_YES, SETTING_DATA_INPUTMASK => DATA_INPUTMASK_YES, SETTING_DATA_SKIP => DATA_SKIP_NO, SETTING_DATA_SKIP_POSTFIX => "_skip", SETTING_OUTPUT_SETOFENUMERATED => SETOFENUMERATED_BINARY, SETTING_OUTPUT_VALUELABEL_WIDTH => VALUELABEL_WIDTH_FULL, SETTING_SLIDER_LABEL_PLACEMENT => SLIDER_LABEL_PLACEMENT_BOTTOM, SETTING_DKRFNA => Config::individualDKRFNA(), SETTING_DKRFNA_SINGLE => Config::individualDKRFNASingle(), SETTING_DKRFNA_INLINE => Config::individualDKRFNAInline(), SETTING_LOGIN_ERROR => Language::messageCheckLoginCode(), SETTING_TIMEOUT => Config::warnTimeout(), SETTING_TIMEOUT_LENGTH => Config::sessionTimeout(), SETTING_TIMEOUT_LOGOUT => Config::sessionLogoutURL(), SETTING_TIMEOUT_REDIRECT => Config::sessionRedirectURL(), SETTING_TIMEOUT_ALIVE_BUTTON => Language::sessionExpiredKeepAliveButton(), SETTING_TIMEOUT_LOGOUT_BUTTON => Language::sessionExpiredLogoutButton(), SETTING_TIMEOUT_TITLE => Language::sessionExpiredTitle(), SETTING_VALIDATE_ASSIGNMENT => VALIDATE_ASSIGNMENT_NO, SETTING_APPLY_CHECKS => APPLY_CHECKS_NO, SETTING_TABLE_MOBILE => GROUP_YES, SETTING_TABLE_MOBILE_LABELS => GROUP_YES); }
if (isset($_POST[POST_PARAM_RESET_TEST]) && is_Numeric($_POST[POST_PARAM_RESET_TEST]) || isset($_GET[POST_PARAM_RESET_TEST]) && is_Numeric($_GET[POST_PARAM_RESET_TEST])) { //reset session! clearSession(); // resets session, but keeps session id $param = ''; foreach ($_POST as $key => $value) { if ($key != POST_PARAM_RESET_TEST) { //going in circles :) $param .= $key . '=' . urlencode($value) . '&'; } } $param = rtrim($param, '&'); header('Location: index.php?' . $param); exit; } if (isset($_SESSION['LAST_ACTIVITY']) && time() - $_SESSION['LAST_ACTIVITY'] > Config::sessionTimeout()) { // last request was more than session timeout period $param = '?' . POST_PARAM_SE . '=' . $_SESSION['SYSTEM_ENTRY']; endSession(); header('Location: index.php' . $param); exit; } $sesid = session_id(); $_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp if (isset($_GET[POST_PARAM_SE]) != '' && is_Numeric($_GET[POST_PARAM_SE])) { $_SESSION['SYSTEM_ENTRY'] = $_GET[POST_PARAM_SE]; } if (isset($_POST[POST_PARAM_SE]) != '' && is_Numeric($_POST[POST_PARAM_SE])) { $_SESSION['SYSTEM_ENTRY'] = $_POST[POST_PARAM_SE]; }
function displayTimeoutScripts() { global $survey, $engine; $returnStr = ""; if (!isRegisteredScript("js/session/timeout-min.js")) { registerScript('js/session/timeout-min.js'); $returnStr .= getScript("js/session/timeout-min.js"); } $logouturl = $engine->replaceFills($survey->getTimeoutLogoutURL()); if ($logouturl == "") { $logouturl = Config::sessionLogoutURL(); } $logout = ""; if ($logouturl != "") { $logout = "logoutUrl: '" . $logouturl . "',"; } $aliveurl = Config::sessionAliveURL(); $alive = ""; if ($aliveurl != "") { $alive = "keepAliveUrl: '" . $aliveurl . "',"; } $redirurl = $engine->replaceFills($survey->getTimeoutRedirectURL()); if ($redirurl == "") { $redirurl = Config::sessionRedirectURL(); } $redir = ""; $length = $engine->replaceFills($survey->getTimeoutLength()); if ($length == "") { $length = Config::sessionTimeout(); } if ($redirurl != "") { $redir = "redirUrl: '" . $redirurl . "',"; $redirafter = "redirAfter: " . $length * 1000; } $warnafter = $length * 1000 * Config::sessionExpiredWarnPoint(); // warn after 60% of the time has passed $timeleft = ($length - $length * Config::sessionExpiredWarnPoint()) / 60; // in minutes $message = Language::sessionExpiredMessage(round($timeleft)); $alivebutton = $engine->replaceFills($survey->getTimeoutAliveButton()); if ($alivebutton == "") { $alivebutton = Language::sessionExpiredKeepAliveButton(); } $logoutbutton = $engine->replaceFills($survey->getTimeoutLogoutButton()); if ($logoutbutton == "") { $logoutbutton = Language::sessionExpiredLogoutButton(); } $title = $engine->replaceFills($survey->getTimeoutTitle()); if ($title == "") { $title = Language::sessionExpiredTitle(); } $ping = Config::sessionExpiredPingInterval(); $returnStr .= "<script type='text/javascript'>" . minifyScript("\n \$(document).ready(function(){\n \$.sessionTimeout({\n title: '{$title}',\n keepAliveButton: '{$alivebutton}',\n keepAliveInterval: {$ping}, \n logoutButton: '{$logoutbutton}',\n message: '{$message}',\n {$alive}\n {$logout}\n {$redir} \n warnAfter: {$warnafter},\n {$redirafter}\n });\n });") . " \n </script>"; return $returnStr; }