コード例 #1
0
ファイル: sysadmin.php プロジェクト: nubissurveying/nubis
 function showEditSurveyRes()
 {
     $displaySysAdmin = new DisplaySysAdmin();
     $suid = getFromSessionParams('suid');
     $content = "";
     if ($suid != '') {
         //edit
         $survey = new Survey($suid);
         $content = $displaySysAdmin->displaySuccess(Language::messageSurveyChanged(loadvar('name')));
     } else {
         //add survey!
         if (loadvar('name') != "") {
             $surveys = new Surveys();
             $newsuid = $surveys->getMaximumSuid() + 1;
             $_SESSION['SURVEY_MODE'] = MODE_CASI;
             $_SESSION['SURVEY_LANGUAGE'] = 1;
             $_SESSION['SUID'] = $newsuid;
             $survey = new Survey();
             $survey->setSuid($newsuid);
             $survey->setObjectName($newsuid);
             $survey->addVersion(Language::labelVersionCurrentName(), Language::labelVersionCurrentDescription());
             $survey->setDefaultMode(MODE_CASI);
             // self
             $survey->setDefaultLanguage(1);
             // english
             $survey->setAccessType(LOGIN_ANONYMOUS);
             $survey->setName(loadvar('name'));
             $survey->setTitle(loadvar(SETTING_TITLE));
             $survey->setDescription(loadvar(SETTING_DESCRIPTION));
             /* add base section */
             $section = new Section();
             $section->setSuid($newsuid);
             $section->setSeid(1);
             $section->setName(SECTION_BASE);
             $section->setPosition(1);
             $section->save();
             /* add base questions */
             $var = new VariableDescriptive();
             $var->setVsid(1);
             $var->setName(VARIABLE_PRIMKEY);
             $var->setAnswerType(ANSWER_TYPE_STRING);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('PRIMARY KEY');
             $var->setQuestion('primary key');
             $var->setMaximumLength(ANSWER_PRIMKEY_LENGTH);
             $var->setTyd(-1);
             $var->setPosition(1);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(2);
             $var->setName(VARIABLE_BEGIN);
             $var->setAnswerType(ANSWER_TYPE_DATETIME);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('TIMESTAMP START');
             $var->setQuestion('timestamp start');
             $var->setTyd(-1);
             $var->setPosition(2);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(3);
             $var->setName(VARIABLE_END);
             $var->setAnswerType(ANSWER_TYPE_DATETIME);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('TIMESTAMP END');
             $var->setQuestion('timestamp end');
             $var->setTyd(-1);
             $var->setPosition(3);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(4);
             $var->setName(VARIABLE_VERSION);
             $var->setAnswerType(ANSWER_TYPE_INTEGER);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('VERSION INFO');
             $var->setQuestion('version info');
             $var->setTyd(-1);
             $var->setPosition(4);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(5);
             $var->setName(VARIABLE_MODE);
             $var->setAnswerType(ANSWER_TYPE_ENUMERATED);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('INTERVIEW MODE');
             $var->setOptionsText("1 (CAPI) Face-to-face\r\n2 (CATI) Telephone\r\n3 (CASI) Self-administered\r\n4 (CADI) Data entry");
             $var->setQuestion('interview mode');
             $var->setTyd(-1);
             $var->setPosition(5);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(6);
             $var->setName(VARIABLE_LANGUAGE);
             $var->setAnswerType(ANSWER_TYPE_INTEGER);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('INTERVIEW LANGUAGE');
             $var->setQuestion('interview language');
             $var->setTyd(-1);
             $var->setPosition(6);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(7);
             $var->setName(VARIABLE_TEMPLATE);
             $var->setAnswerType(ANSWER_TYPE_INTEGER);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('SURVEY TEMPLATE');
             $var->setQuestion('survey template');
             $var->setTyd(-1);
             $var->setPosition(7);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(8);
             $var->setName(VARIABLE_PLATFORM);
             $var->setAnswerType(ANSWER_TYPE_STRING);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('PLATFORM AND BROWSER INFORMATION');
             $var->setQuestion('platform and browser information');
             $var->setTyd(-1);
             $var->setPosition(8);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(9);
             $var->setName(VARIABLE_INTRODUCTION);
             $var->setAnswerType(ANSWER_TYPE_NONE);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('INTRODUCTION SCREEN');
             $var->setQuestion(Language::messageWelcome());
             $var->setShowBackButton(BUTTON_NO);
             $var->setShowNextButton(BUTTON_YES);
             $var->setShowRFButton(BUTTON_NO);
             $var->setShowDKButton(BUTTON_NO);
             $var->setShowNAButton(BUTTON_NO);
             $var->setShowUpdateButton(BUTTON_NO);
             $var->setShowProgressBar(PROGRESSBAR_NO);
             $var->setHidden(HIDDEN_YES);
             $var->setTyd(-1);
             $var->setPosition(9);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(10);
             $var->setName(VARIABLE_THANKS);
             $var->setAnswerType(ANSWER_TYPE_NONE);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('THANKS SCREEN');
             $var->setQuestion(Language::messageSurveyEnd());
             $var->setShowBackButton(BUTTON_NO);
             $var->setShowNextButton(BUTTON_NO);
             $var->setShowRFButton(BUTTON_NO);
             $var->setShowDKButton(BUTTON_NO);
             $var->setShowNAButton(BUTTON_NO);
             $var->setShowUpdateButton(BUTTON_NO);
             $var->setShowRemarkButton(BUTTON_NO);
             $var->setShowProgressBar(PROGRESSBAR_NO);
             $var->setHidden(HIDDEN_YES);
             $var->setTyd(-1);
             $var->setPosition(10);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(11);
             $var->setName(VARIABLE_COMPLETED);
             $var->setAnswerType(ANSWER_TYPE_NONE);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('ALREADY COMPLETED SCREEN');
             $var->setQuestion(Language::messageSurveyCompleted());
             $var->setShowBackButton(BUTTON_NO);
             $var->setShowNextButton(BUTTON_NO);
             $var->setShowRFButton(BUTTON_NO);
             $var->setShowDKButton(BUTTON_NO);
             $var->setShowNAButton(BUTTON_NO);
             $var->setShowUpdateButton(BUTTON_NO);
             $var->setShowRemarkButton(BUTTON_NO);
             $var->setShowProgressBar(PROGRESSBAR_NO);
             $var->setHidden(HIDDEN_YES);
             $var->setTyd(-1);
             $var->setPosition(11);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(12);
             $var->setName(VARIABLE_LOCKED);
             $var->setAnswerType(ANSWER_TYPE_NONE);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('PROCESSING SCREEN');
             $var->setQuestion(Language::messageSurveyProcessing());
             $var->setShowBackButton(BUTTON_NO);
             $var->setShowNextButton(BUTTON_NO);
             $var->setShowRFButton(BUTTON_NO);
             $var->setShowDKButton(BUTTON_NO);
             $var->setShowNAButton(BUTTON_NO);
             $var->setShowUpdateButton(BUTTON_NO);
             $var->setShowRemarkButton(BUTTON_NO);
             $var->setShowProgressBar(PROGRESSBAR_NO);
             $var->setHidden(HIDDEN_YES);
             $var->setTyd(-1);
             $var->setPosition(12);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(13);
             $var->setName(VARIABLE_DIRECT);
             $var->setAnswerType(ANSWER_TYPE_NONE);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('DIRECT ACCESS ONLY SCREEN');
             $var->setQuestion(Language::errorDirectLogin());
             $var->setShowBackButton(BUTTON_NO);
             $var->setShowNextButton(BUTTON_NO);
             $var->setShowRFButton(BUTTON_NO);
             $var->setShowDKButton(BUTTON_NO);
             $var->setShowNAButton(BUTTON_NO);
             $var->setShowUpdateButton(BUTTON_NO);
             $var->setShowRemarkButton(BUTTON_NO);
             $var->setShowProgressBar(PROGRESSBAR_NO);
             $var->setHidden(HIDDEN_YES);
             $var->setTyd(-1);
             $var->setPosition(13);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(14);
             $var->setName(VARIABLE_IN_PROGRESS);
             $var->setAnswerType(ANSWER_TYPE_NONE);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('IN PROGRESS SCREEN');
             $var->setQuestion(Language::errorInProgress());
             $var->setShowBackButton(BUTTON_NO);
             $var->setShowNextButton(BUTTON_NO);
             $var->setShowRFButton(BUTTON_NO);
             $var->setShowDKButton(BUTTON_NO);
             $var->setShowNAButton(BUTTON_NO);
             $var->setShowUpdateButton(BUTTON_NO);
             $var->setShowRemarkButton(BUTTON_NO);
             $var->setShowProgressBar(PROGRESSBAR_NO);
             $var->setHidden(HIDDEN_YES);
             $var->setTyd(-1);
             $var->setPosition(14);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(15);
             $var->setName(VARIABLE_LOGIN);
             $var->setAnswerType(ANSWER_TYPE_STRING);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('LOGIN SCREEN');
             $var->setQuestion(Language::labelLoginCode());
             $var->setShowBackButton(BUTTON_NO);
             $var->setShowNextButton(BUTTON_YES);
             $var->setShowRFButton(BUTTON_NO);
             $var->setShowDKButton(BUTTON_NO);
             $var->setShowNAButton(BUTTON_NO);
             $var->setShowUpdateButton(BUTTON_NO);
             $var->setShowRemarkButton(BUTTON_NO);
             $var->setShowProgressBar(PROGRESSBAR_NO);
             $var->setHidden(HIDDEN_YES);
             $var->setTyd(-1);
             $var->setPosition(15);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(16);
             $var->setName(VARIABLE_CLOSED);
             $var->setAnswerType(ANSWER_TYPE_NONE);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('CLOSED SCREEN');
             $var->setQuestion(Language::messageSurveyClosed());
             $var->setShowBackButton(BUTTON_NO);
             $var->setShowNextButton(BUTTON_NO);
             $var->setShowRFButton(BUTTON_NO);
             $var->setShowDKButton(BUTTON_NO);
             $var->setShowNAButton(BUTTON_NO);
             $var->setShowUpdateButton(BUTTON_NO);
             $var->setShowRemarkButton(BUTTON_NO);
             $var->setShowProgressBar(PROGRESSBAR_NO);
             $var->setHidden(HIDDEN_YES);
             $var->setTyd(-1);
             $var->setPosition(16);
             $var->save();
             $var = new VariableDescriptive();
             $var->setVsid(17);
             $var->setName(VARIABLE_EXECUTION_MODE);
             $var->setAnswerType(ANSWER_TYPE_ENUMERATED);
             $var->setSeid(1);
             $var->setSuid($newsuid);
             $var->setDescription('EXECUTION MODE');
             $var->setQuestion("execution mode");
             $var->setOptionsText("0 (NORMAL) Normal mode\r\n1 (TEST) Test mode");
             $var->setShowBackButton(BUTTON_NO);
             $var->setShowNextButton(BUTTON_NO);
             $var->setShowRFButton(BUTTON_NO);
             $var->setShowDKButton(BUTTON_NO);
             $var->setShowNAButton(BUTTON_NO);
             $var->setShowUpdateButton(BUTTON_NO);
             $var->setShowProgressBar(PROGRESSBAR_NO);
             $var->setHidden(HIDDEN_YES);
             $var->setTyd(-1);
             $var->setPosition(17);
             $var->save();
             /* update current user for access */
             $surv = new Survey($newsuid);
             $user = new User($_SESSION['URID']);
             $mods = explode("~", $surv->getAllowedModes());
             foreach ($mods as $m) {
                 $user->setLanguages($newsuid, $m, $surv->getAllowedLanguages($m));
             }
             $user->saveChanges();
             $content = $displaySysAdmin->displaySuccess(Language::messageSurveyAdded(loadvar('name')));
         }
     }
     //ADD ALL SORTS OF CHECKS!!
     if ($suid != '' || loadvar('name') != "") {
         $survey->setName(loadvar('name'));
         $survey->setDescription(loadvar(SETTING_DESCRIPTION));
         $survey->setTitle(loadvar(SETTING_TITLE));
         $survey->setDefaultSurvey(loadvar(SETTING_DEFAULT_SURVEY));
         $survey->save();
         // default, then update setting and set all others to no
         $surveys = new Surveys();
         $surveys = $surveys->getSurveys();
         if (loadvar(SETTING_DEFAULT_SURVEY) == DEFAULT_SURVEY_YES) {
             if (sizeof($surveys) == 1) {
                 $survey->setDefaultSurvey(DEFAULT_SURVEY_YES);
             } else {
                 foreach ($surveys as $s) {
                     if ($s->getSuid() != $survey->getSuid()) {
                         $s->setDefaultSurvey(DEFAULT_SURVEY_NO);
                     } else {
                         $s->setDefaultSurvey(DEFAULT_SURVEY_YES);
                     }
                 }
             }
         } else {
             // if only one survey, make sure we set this one to default
             if (sizeof($surveys) == 1) {
                 $survey->setDefaultSurvey(DEFAULT_SURVEY_YES);
             }
         }
     }
     /* update last page */
     $_SESSION['LASTPAGE'] = substr($_SESSION['LASTPAGE'], 0, strripos($_SESSION['LASTPAGE'], "res"));
     if ($suid != '') {
         return $displaySysAdmin->showEditSurvey($_SESSION['SUID'], $content);
     } else {
         return $displaySysAdmin->showSurveys($content);
     }
 }