function showEditSettingsModeRes() { $displaySysAdmin = new DisplaySysAdmin(); $survey = new Survey($_SESSION['SUID']); $_SESSION['EDITSURVEY'] = 1; $ans = loadvar(SETTING_ALLOWED_MODES); if (!is_array($ans)) { $ans = array($ans); } if (!inArray(loadvar(SETTING_DEFAULT_MODE), $ans)) { $content = $displaySysAdmin->displayError(Language::messageModeSettingsNotChanged()); } else { $current = explode("~", $survey->getAllowedModes()); $survey->setDefaultMode(loadvar(SETTING_DEFAULT_MODE)); $survey->setChangeMode(loadvar(SETTING_CHANGE_MODE)); $survey->setReentryMode(loadvar(SETTING_REENTRY_MODE)); $survey->setBackMode(loadvar(SETTING_BACK_MODE)); $survey->setAllowedModes(implode("~", $ans)); $content = $displaySysAdmin->displaySuccess(Language::messageModeSettingsChanged()); $users = new Users(); $users = $users->getUsers(); $update = loadvar("uridsel"); foreach ($users as $u) { foreach ($current as $c) { if (!inArray($c, $ans)) { $u->removeMode($_SESSION['SUID'], $c); } } foreach ($ans as $a) { if (!inArray($a, $current)) { if (inArray($u->getUrid(), $update) || inArray(-1, $update)) { $u->addMode($_SESSION['SUID'], $a, $survey->getAllowedLanguages($a)); } } } $u->saveChanges(); } if (!inArray(getSurveyMode(), $ans)) { $_SESSION['SURVEY_MODE'] = $ans[0]; } } /* update last page */ $_SESSION['LASTPAGE'] = substr($_SESSION['LASTPAGE'], 0, strripos($_SESSION['LASTPAGE'], "res")); return $displaySysAdmin->showEditSettingsMode($content); }