function actionLocal($surveyid, $token, $langcode = '') { Yii::app()->loadHelper('database'); Yii::app()->loadHelper('sanitize'); $sLanguageCode = $langcode; $iSurveyID = $surveyid; $sToken = $token; $sToken = sanitize_token($sToken); if (!$iSurveyID) { $this->redirect($this->getController()->createUrl('/')); } $iSurveyID = (int) $iSurveyID; //Check that there is a SID // Get passed language from form, so that we dont loose this! if (!isset($sLanguageCode) || $sLanguageCode == "" || !$sLanguageCode) { $baselang = Survey::model()->findByPk($iSurveyID)->language; Yii::import('application.libraries.Limesurvey_lang', true); $clang = new Limesurvey_lang($baselang); } else { $sLanguageCode = sanitize_languagecode($sLanguageCode); Yii::import('application.libraries.Limesurvey_lang', true); $clang = new Limesurvey_lang($sLanguageCode); $baselang = $sLanguageCode; } Yii::app()->lang = $clang; $thissurvey = getSurveyInfo($iSurveyID, $baselang); if ($thissurvey == false || Yii::app()->db->schema->getTable("{{tokens_{$iSurveyID}}}") == null) { $html = $clang->gT('This survey does not seem to exist.'); } else { $row = Tokens_dynamic::getEmailStatus($iSurveyID, $sToken); if ($row == false) { $html = $clang->gT('You are not a participant in this survey.'); } else { $usresult = $row['emailstatus']; if ($usresult == 'OptOut') { $usresult = Tokens_dynamic::updateEmailStatus($iSurveyID, $sToken, 'OK'); $html = $clang->gT('You have been successfully added back to this survey.'); } else { if ($usresult == 'OK') { $html = $clang->gT('You are already a part of this survey.'); } else { $html = $clang->gT('You have been already removed from this survey.'); } } } } //PRINT COMPLETED PAGE if (!$thissurvey['templatedir']) { $thistpl = getTemplatePath(Yii::app()->getConfig("defaulttemplate")); } else { $thistpl = getTemplatePath($thissurvey['templatedir']); } $this->_renderHtml($html, $thistpl, $clang); }
function actionparticipants() { $surveyid = Yii::app()->request->getQuery('surveyid'); $langcode = Yii::app()->request->getQuery('langcode'); $token = Yii::app()->request->getQuery('token'); Yii::app()->loadHelper('database'); Yii::app()->loadHelper('sanitize'); $sLanguageCode = $langcode; $iSurveyID = $surveyid; $sToken = $token; $sToken = sanitize_token($sToken); if (!$iSurveyID) { $this->redirect(Yii::app()->getController()->createUrl('/')); } $iSurveyID = (int) $iSurveyID; //Make sure it's an integer (protect from SQL injects) //Check that there is a SID // Get passed language from form, so that we dont lose this! if (!isset($sLanguageCode) || $sLanguageCode == "" || !$sLanguageCode) { $baselang = Survey::model()->findByPk($iSurveyID)->language; Yii::import('application.libraries.Limesurvey_lang', true); $clang = new Limesurvey_lang($baselang); } else { $sLanguageCode = sanitize_languagecode($sLanguageCode); Yii::import('application.libraries.Limesurvey_lang', true); $clang = new Limesurvey_lang($sLanguageCode); $baselang = $sLanguageCode; } Yii::app()->lang = $clang; $thissurvey = getSurveyInfo($iSurveyID, $baselang); if ($thissurvey == false || !tableExists("{{tokens_{$iSurveyID}}}")) { $html = $clang->gT('This survey does not seem to exist.'); } else { $row = Tokens_dynamic::getEmailStatus($iSurveyID, $sToken); $datas = Tokens_dynamic::model($iSurveyID)->find('token = :token', array(":token" => $sToken)); if ($row == false) { $html = $clang->gT('You are not a participant in this survey.'); } else { $usresult = $row['emailstatus']; if ($usresult == 'OK') { $usresult = Tokens_dynamic::updateEmailStatus($iSurveyID, $sToken, 'OptOut'); $html = $clang->gT('You have been successfully removed from this survey.'); } else { $html = $clang->gT('You have been already removed from this survey.'); } if (!empty($datas->participant_id) && $datas->participant_id != "") { //Participant also exists in central db $cpdb = Participants::model()->find('participant_id = :participant_id', array(":participant_id" => $datas->participant_id)); if ($cpdb->blacklisted == "Y") { $html .= "<br />"; $html .= $clang->gt("You have already been removed from the central participants list for this site"); } else { $cpdb->blacklisted = 'Y'; $cpdb->save(); $html .= "<br />"; $html .= $clang->gT("You have been removed from the central participants list for this site"); } } } } //PRINT COMPLETED PAGE if (!$thissurvey['templatedir']) { $thistpl = getTemplatePath(Yii::app()->getConfig("defaulttemplate")); } else { $thistpl = getTemplatePath($thissurvey['templatedir']); } $this->_renderHtml($html, $thistpl); }