예제 #1
0
 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);
 }