* $Id: activate.php 10925 2011-09-02 14:12:02Z c_schmitz $ */ //Ensure script is not run directly, avoid path disclosure include_once "login_check.php"; //Login Check dies also if the script is started directly include_once "activate_functions.php"; $postsid = returnglobal('sid'); $activateoutput = ''; $qtypes = getqtypelist('', 'array'); if (!isset($_POST['ok']) || !$_POST['ok']) { if (isset($_GET['fixnumbering']) && $_GET['fixnumbering']) { fixNumbering($_GET['fixnumbering']); } // Check consistency for groups and questions $failedgroupcheck = checkGroup($postsid); $failedcheck = checkQuestions($postsid, $surveyid, $qtypes); //IF ANY OF THE CHECKS FAILED, PRESENT THIS SCREEN if (isset($failedcheck) && $failedcheck || isset($failedgroupcheck) && $failedgroupcheck) { $activateoutput .= "<br />\n<div class='messagebox ui-corner-all'>\n"; $activateoutput .= "<div class='header ui-widget-header'>" . $clang->gT("Activate Survey") . " ({$surveyid})</div>\n"; $activateoutput .= "<div class='warningheader'>\n" . $clang->gT("Error") . "<br />\n"; $activateoutput .= $clang->gT("Survey does not pass consistency check") . "</div>\n"; $activateoutput .= "<p>\n"; $activateoutput .= "<strong>" . $clang->gT("The following problems have been found:") . "</strong><br />\n"; $activateoutput .= "<ul>\n"; if (isset($failedcheck) && $failedcheck) { foreach ($failedcheck as $fc) { $activateoutput .= "<li> Question qid-{$fc[0]} (\"<a href='{$scriptname}?sid={$surveyid}&gid={$fc['3']}&qid={$fc['0']}'>{$fc[1]}</a>\"){$fc[2]}</li>\n"; } } if (isset($failedgroupcheck) && $failedgroupcheck) {
/** * Function responsible to activate survey. * * @access public * @param int $iSurveyID * @return void */ public function activate($iSurveyID) { if (!Permission::model()->hasSurveyPermission($iSurveyID, 'surveyactivation', 'update')) { die; } $iSurveyID = (int) $iSurveyID; $aData = array(); $aData['aSurveysettings'] = getSurveyInfo($iSurveyID); $aData['surveyid'] = $iSurveyID; // Die if this is not possible if (!isset($aData['aSurveysettings']['active']) || $aData['aSurveysettings']['active'] == 'Y') { $this->getController()->error('Survey not active'); } $qtypes = getQuestionTypeList('', 'array'); Yii::app()->loadHelper("admin/activate"); if (empty($_POST['ok'])) { if (isset($_GET['fixnumbering']) && $_GET['fixnumbering']) { fixNumbering($_GET['fixnumbering'], $iSurveyID); } // Check consistency for groups and questions $failedgroupcheck = checkGroup($iSurveyID); $failedcheck = checkQuestions($iSurveyID, $iSurveyID, $qtypes); $aData['failedcheck'] = $failedcheck; $aData['failedgroupcheck'] = $failedgroupcheck; $aData['aSurveysettings'] = getSurveyInfo($iSurveyID); $this->_renderWrappedTemplate('survey', 'activateSurvey_view', $aData); } else { $survey = Survey::model()->findByAttributes(array('sid' => $iSurveyID)); if (!is_null($survey)) { $survey->anonymized = Yii::app()->request->getPost('anonymized'); $survey->datestamp = Yii::app()->request->getPost('datestamp'); $survey->ipaddr = Yii::app()->request->getPost('ipaddr'); $survey->refurl = Yii::app()->request->getPost('refurl'); $survey->savetimings = Yii::app()->request->getPost('savetimings'); $survey->save(); Survey::model()->resetCache(); // Make sure the saved values will be picked up } $aResult = activateSurvey($iSurveyID); if (isset($aResult['error'])) { $aViewUrls['output'] = "<br />\n<div class='messagebox ui-corner-all'>\n" . "<div class='header ui-widget-header'>" . gT("Activate Survey") . " ({$iSurveyID})</div>\n"; if ($aResult['error'] == 'surveytablecreation') { $aViewUrls['output'] .= "<div class='warningheader'>" . gT("Survey table could not be created.") . "</div>\n"; } else { $aViewUrls['output'] .= "<div class='warningheader'>" . gT("Timings table could not be created.") . "</div>\n"; } $aViewUrls['output'] .= "<p>" . gT("Database error!!") . "\n <font color='red'>" . "</font>\n" . "<pre>" . var_export($aResult['error'], true) . "</pre>\n\n <a href='" . Yii::app()->getController()->createUrl("admin/survey/sa/view/surveyid/" . $iSurveyID) . "'>" . gT("Main Admin Screen") . "</a>\n</div>"; } else { $aViewUrls['output'] = "<br />\n<div class='messagebox ui-corner-all'>\n" . "<div class='header ui-widget-header'>" . gT("Activate Survey") . " ({$iSurveyID})</div>\n" . "<div class='successheader'>" . gT("Survey has been activated. Results table has been successfully created.") . "</div><br /><br />\n"; if (isset($aResult['warning'])) { $aViewUrls['output'] .= "<div class='warningheader'>" . gT("The required directory for saving the uploaded files couldn't be created. Please check file premissions on the /upload/surveys directory.") . "</div>"; } if ($survey->allowregister == 'Y') { $aViewUrls['output'] .= gT("This survey allows public registration. A token table must also be created.") . "<br /><br />\n" . "<input type='submit' value='" . gT("Initialise tokens") . "' onclick=\"" . convertGETtoPOST(Yii::app()->getController()->createUrl("admin/tokens/sa/index/surveyid/" . $iSurveyID)) . "\" />\n"; } else { $aViewUrls['output'] .= gT("This survey is now active, and responses can be recorded.") . "<br /><br />\n" . "<strong>" . gT("Open-access mode") . ":</strong> " . gT("No invitation code is needed to complete the survey.") . "<br />" . gT("You can switch to the closed-access mode by initialising a token table with the button below.") . "<br /><br />\n" . "<input type='submit' value='" . gT("Switch to closed-access mode") . "' onclick=\"" . convertGETtoPOST(Yii::app()->getController()->createUrl("admin/tokens/sa/index/surveyid/" . $iSurveyID)) . "\" />\n" . "<input type='submit' value='" . gT("No, thanks.") . "' onclick=\"" . convertGETtoPOST(Yii::app()->getController()->createUrl("admin/survey/sa/view/surveyid/" . $iSurveyID)) . "\" />\n"; } $aViewUrls['output'] .= "</div><br /> \n"; } $this->_renderWrappedTemplate('survey', $aViewUrls, $aData); } }
/** * Function responsible to activate survey. * * @access public * @param int $iSurveyID * @return void */ public function activate($iSurveyID) { if (!Permission::model()->hasSurveyPermission($iSurveyID, 'surveyactivation', 'update')) { die; } $iSurveyID = (int) $iSurveyID; $aData = array(); $aData['sidemenu']['state'] = false; $aData['aSurveysettings'] = getSurveyInfo($iSurveyID); $aData['surveyid'] = $iSurveyID; $surveyinfo = Survey::model()->findByPk($iSurveyID)->surveyinfo; $aData['title_bar']['title'] = $surveyinfo['surveyls_title'] . "(" . gT("ID") . ":" . $iSurveyID . ")"; // Die if this is not possible if (!isset($aData['aSurveysettings']['active']) || $aData['aSurveysettings']['active'] == 'Y') { $this->getController()->error('Survey not active'); } $qtypes = getQuestionTypeList('', 'array'); Yii::app()->loadHelper("admin/activate"); if (empty($_POST['ok'])) { if (isset($_GET['fixnumbering']) && $_GET['fixnumbering']) { fixNumbering($_GET['fixnumbering'], $iSurveyID); } // Check consistency for groups and questions $failedgroupcheck = checkGroup($iSurveyID); $failedcheck = checkQuestions($iSurveyID, $iSurveyID, $qtypes); $aData['failedcheck'] = $failedcheck; $aData['failedgroupcheck'] = $failedgroupcheck; $aData['aSurveysettings'] = getSurveyInfo($iSurveyID); $this->_renderWrappedTemplate('survey', 'activateSurvey_view', $aData); } else { $survey = Survey::model()->findByAttributes(array('sid' => $iSurveyID)); if (!is_null($survey)) { $survey->anonymized = Yii::app()->request->getPost('anonymized'); $survey->datestamp = Yii::app()->request->getPost('datestamp'); $survey->ipaddr = Yii::app()->request->getPost('ipaddr'); $survey->refurl = Yii::app()->request->getPost('refurl'); $survey->savetimings = Yii::app()->request->getPost('savetimings'); $survey->save(); Survey::model()->resetCache(); // Make sure the saved values will be picked up } $aResult = activateSurvey($iSurveyID); if (isset($aResult['error'])) { $aViewUrls['output'] = "<br />\n<div class='messagebox ui-corner-all'>\n"; if ($aResult['error'] == 'surveytablecreation') { $aViewUrls['output'] .= "<div class='alert alert-warning' role='alert'>" . gT("Survey table could not be created.") . "</div>\n"; } else { $aViewUrls['output'] .= "<div class='alert alert-success' role='alert'>" . gT("Timings table could not be created.") . "</div>\n"; } $aViewUrls['output'] .= "<strong class='text-warning'>" . gT("Database error!!") . "\n " . "\n" . "<pre>" . var_export($aResult['error'], true) . "</pre>\n\n <a href='" . Yii::app()->getController()->createUrl("admin/survey/sa/view/surveyid/" . $iSurveyID) . "'>" . gT("Main Admin Screen") . "</a>\n</strong><br/>"; } else { $warning = isset($aResult['warning']) ? true : false; $allowregister = $survey->allowregister == 'Y' ? true : false; $onclickAction = convertGETtoPOST(Yii::app()->getController()->createUrl("admin/tokens/sa/index/surveyid/" . $iSurveyID)); $closedOnclickAction = convertGETtoPOST(Yii::app()->getController()->createUrl("admin/tokens/sa/index/surveyid/" . $iSurveyID)); $noOnclickAction = convertGETtoPOST(Yii::app()->getController()->createUrl("admin/survey/sa/view/surveyid/" . $iSurveyID)); $activationData = array('iSurveyID' => $iSurveyID, 'warning' => $warning, 'allowregister' => $allowregister, 'onclickAction' => $onclickAction, 'closedOnclickAction' => $closedOnclickAction, 'noOnclickAction' => $noOnclickAction); $aViewUrls['output'] = $this->getController()->renderPartial('/admin/survey/_activation_feedback', $activationData, true); } $this->_renderWrappedTemplate('survey', $aViewUrls, $aData); } }