本文整理汇总了PHP中includeKeypad函数的典型用法代码示例。如果您正苦于以下问题:PHP includeKeypad函数的具体用法?PHP includeKeypad怎么用?PHP includeKeypad使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了includeKeypad函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: do_array_multiflexi
function do_array_multiflexi($ia)
{
global $thissurvey;
$aLastMoveResult = LimeExpressionManager::GetLastMoveResult();
$aMandatoryViolationSubQ = $aLastMoveResult['mandViolation'] && $ia[6] == 'Y' ? explode("|", $aLastMoveResult['unansweredSQs']) : array();
$repeatheadings = Yii::app()->getConfig("repeatheadings");
$minrepeatheadings = Yii::app()->getConfig("minrepeatheadings");
$extraclass = "";
$answertypeclass = "";
$caption = gT("An array of sub-question on each cell. The sub-question text are in the table header and concerns line header. ");
$checkconditionFunction = "fixnum_checkconditions";
//echo '<pre>'; print_r($_POST); echo '</pre>';
$defaultvaluescript = '';
$qquery = "SELECT other FROM {{questions}} WHERE qid=" . $ia[0] . " AND language='" . $_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang'] . "' and parent_qid=0";
$other = Yii::app()->db->createCommand($qquery)->queryScalar();
//Checked
$aQuestionAttributes = getQuestionAttributeValues($ia[0]);
if (trim($aQuestionAttributes['multiflexible_max']) != '' && trim($aQuestionAttributes['multiflexible_min']) == '') {
$maxvalue = $aQuestionAttributes['multiflexible_max'];
$extraclass .= " maxvalue maxvalue-" . trim($aQuestionAttributes['multiflexible_max']);
if (isset($minvalue['value']) && $minvalue['value'] == 0) {
$minvalue = 0;
} else {
$minvalue = 1;
}
}
if (trim($aQuestionAttributes['multiflexible_min']) != '' && trim($aQuestionAttributes['multiflexible_max']) == '') {
$minvalue = $aQuestionAttributes['multiflexible_min'];
$extraclass .= " minvalue minvalue-" . trim($aQuestionAttributes['multiflexible_max']);
$maxvalue = $aQuestionAttributes['multiflexible_min'] + 10;
}
if (trim($aQuestionAttributes['multiflexible_min']) == '' && trim($aQuestionAttributes['multiflexible_max']) == '') {
if (isset($minvalue['value']) && $minvalue['value'] == 0) {
$minvalue = 0;
} else {
$minvalue = 1;
}
$maxvalue = 10;
}
if (trim($aQuestionAttributes['multiflexible_min']) != '' && trim($aQuestionAttributes['multiflexible_max']) != '') {
if ($aQuestionAttributes['multiflexible_min'] < $aQuestionAttributes['multiflexible_max']) {
$minvalue = $aQuestionAttributes['multiflexible_min'];
$maxvalue = $aQuestionAttributes['multiflexible_max'];
}
}
if (trim($aQuestionAttributes['multiflexible_step']) != '' && $aQuestionAttributes['multiflexible_step'] > 0) {
$stepvalue = $aQuestionAttributes['multiflexible_step'];
} else {
$stepvalue = 1;
}
if ($aQuestionAttributes['reverse'] == 1) {
$tmp = $minvalue;
$minvalue = $maxvalue;
$maxvalue = $tmp;
$reverse = true;
$stepvalue = -$stepvalue;
} else {
$reverse = false;
}
$checkboxlayout = false;
$inputboxlayout = false;
if ($aQuestionAttributes['multiflexible_checkbox'] != 0) {
$minvalue = 0;
$maxvalue = 1;
$checkboxlayout = true;
$answertypeclass = " checkbox";
$caption .= gT("Check or uncheck the answer for each subquestion. ");
} elseif ($aQuestionAttributes['input_boxes'] != 0) {
$inputboxlayout = true;
$answertypeclass .= " numeric-item text";
$extraclass .= " numberonly";
$caption .= gT("Each answers are a number. ");
} else {
$answertypeclass = " dropdown";
$caption .= gT("Select the answer for each subquestion. ");
}
if (ctype_digit(trim($aQuestionAttributes['repeat_headings'])) && trim($aQuestionAttributes['repeat_headings'] != "")) {
$repeatheadings = intval($aQuestionAttributes['repeat_headings']);
$minrepeatheadings = 0;
}
if (intval(trim($aQuestionAttributes['maximum_chars'])) > 0) {
// Only maxlength attribute, use textarea[maxlength] jquery selector for textarea
$maximum_chars = intval(trim($aQuestionAttributes['maximum_chars']));
$maxlength = "maxlength='{$maximum_chars}' ";
$extraclass .= " maxchars maxchars-" . $maximum_chars;
} else {
$maxlength = "";
}
if ($thissurvey['nokeyboard'] == 'Y') {
includeKeypad();
$kpclass = " num-keypad";
$extraclass .= " inputkeypad";
} else {
$kpclass = "";
}
if (trim($aQuestionAttributes['answer_width']) != '') {
$answerwidth = $aQuestionAttributes['answer_width'];
} else {
$answerwidth = 20;
}
//.........这里部分代码省略.........
示例2: buildsurveysession
/**
* This function builds all the required session variables when a survey is first started and
* it loads any answer defaults from command line or from the table defaultvalues
* It is called from the related format script (group.php, question.php, survey.php)
* if the survey has just started.
*/
function buildsurveysession($surveyid, $preview = false)
{
Yii::trace('start', 'survey.buildsurveysession');
global $secerror, $clienttoken;
global $tokensexist;
//global $surveyid;
global $move, $rooturl;
$clang = Yii::app()->lang;
$sLangCode = $clang->langcode;
$languagechanger = makeLanguageChangerSurvey($sLangCode);
if (!$preview) {
$preview = Yii::app()->getConfig('previewmode');
}
$thissurvey = getSurveyInfo($surveyid, $sLangCode);
$_SESSION['survey_' . $surveyid]['templatename'] = validateTemplateDir($thissurvey['template']);
$_SESSION['survey_' . $surveyid]['templatepath'] = getTemplatePath($_SESSION['survey_' . $surveyid]['templatename']) . DIRECTORY_SEPARATOR;
$sTemplatePath = $_SESSION['survey_' . $surveyid]['templatepath'];
$loadsecurity = returnGlobal('loadsecurity', true);
// NO TOKEN REQUIRED BUT CAPTCHA ENABLED FOR SURVEY ACCESS
if ($tokensexist == 0 && isCaptchaEnabled('surveyaccessscreen', $thissurvey['usecaptcha']) && !isset($_SESSION['survey_' . $surveyid]['captcha_surveyaccessscreen']) && !$preview) {
// IF CAPTCHA ANSWER IS NOT CORRECT OR NOT SET
if (!isset($loadsecurity) || !isset($_SESSION['survey_' . $surveyid]['secanswer']) || $loadsecurity != $_SESSION['survey_' . $surveyid]['secanswer']) {
sendCacheHeaders();
doHeader();
// No or bad answer to required security question
$redata = compact(array_keys(get_defined_vars()));
echo templatereplace(file_get_contents($sTemplatePath . "startpage.pstpl"), array(), $redata, 'frontend_helper[875]');
//echo makedropdownlist();
echo templatereplace(file_get_contents($sTemplatePath . "survey.pstpl"), array(), $redata, 'frontend_helper[877]');
if (isset($loadsecurity)) {
// was a bad answer
echo "<font color='#FF0000'>" . $clang->gT("The answer to the security question is incorrect.") . "</font><br />";
}
echo "<p class='captcha'>" . $clang->gT("Please confirm access to survey by answering the security question below and click continue.") . "</p>" . CHtml::form(array("/survey/index/sid/{$surveyid}"), 'post', array('class' => 'captcha')) . "\n <table align='center'>\n <tr>\n <td align='right' valign='middle'>\n <input type='hidden' name='sid' value='" . $surveyid . "' id='sid' />\n <input type='hidden' name='lang' value='" . $sLangCode . "' id='lang' />";
// In case we this is a direct Reload previous answers URL, then add hidden fields
if (isset($_GET['loadall']) && isset($_GET['scid']) && isset($_GET['loadname']) && isset($_GET['loadpass'])) {
echo "\n <input type='hidden' name='loadall' value='" . htmlspecialchars($_GET['loadall']) . "' id='loadall' />\n <input type='hidden' name='scid' value='" . returnGlobal('scid', true) . "' id='scid' />\n <input type='hidden' name='loadname' value='" . htmlspecialchars($_GET['loadname']) . "' id='loadname' />\n <input type='hidden' name='loadpass' value='" . htmlspecialchars($_GET['loadpass']) . "' id='loadpass' />";
}
echo "\n </td>\n </tr>";
if (function_exists("ImageCreate") && isCaptchaEnabled('surveyaccessscreen', $thissurvey['usecaptcha'])) {
echo "<tr>\n <td align='center' valign='middle'><label for='captcha'>" . $clang->gT("Security question:") . "</label></td><td align='left' valign='middle'><table><tr><td valign='middle'><img src='" . Yii::app()->getController()->createUrl('/verification/image/sid/' . $surveyid) . "' alt='captcha' /></td>\n <td valign='middle'><input id='captcha' type='text' size='5' maxlength='3' name='loadsecurity' value='' /></td></tr></table>\n </td>\n </tr>";
}
echo "<tr><td colspan='2' align='center'><input class='submit' type='submit' value='" . $clang->gT("Continue") . "' /></td></tr>\n </table>\n </form>";
echo templatereplace(file_get_contents($sTemplatePath . "endpage.pstpl"), array(), $redata, 'frontend_helper[1567]');
doFooter();
exit;
} else {
$_SESSION['survey_' . $surveyid]['captcha_surveyaccessscreen'] = true;
}
}
//BEFORE BUILDING A NEW SESSION FOR THIS SURVEY, LET'S CHECK TO MAKE SURE THE SURVEY SHOULD PROCEED!
// TOKEN REQUIRED BUT NO TOKEN PROVIDED
if ($tokensexist == 1 && !$clienttoken && !$preview) {
if ($thissurvey['nokeyboard'] == 'Y') {
includeKeypad();
$kpclass = "text-keypad";
} else {
$kpclass = "";
}
// DISPLAY REGISTER-PAGE if needed
// DISPLAY CAPTCHA if needed
sendCacheHeaders();
doHeader();
$redata = compact(array_keys(get_defined_vars()));
echo templatereplace(file_get_contents($sTemplatePath . "startpage.pstpl"), array(), $redata, 'frontend_helper[1594]');
//echo makedropdownlist();
echo templatereplace(file_get_contents($sTemplatePath . "survey.pstpl"), array(), $redata, 'frontend_helper[1596]');
if (isset($thissurvey) && $thissurvey['allowregister'] == "Y") {
echo templatereplace(file_get_contents($sTemplatePath . "register.pstpl"), array(), $redata, 'frontend_helper[1599]');
} else {
// ->renderPartial('entertoken_view');
if (isset($secerror)) {
echo "<span class='error'>" . $secerror . "</span><br />";
}
echo '<div id="wrapper"><p id="tokenmessage">' . $clang->gT("This is a controlled survey. You need a valid token to participate.") . "<br />";
echo $clang->gT("If you have been issued a token, please enter it in the box below and click continue.") . "</p>\n <script type='text/javascript'>var focus_element='#token';</script>" . CHtml::form(array("/survey/index/sid/{$surveyid}"), 'post', array('id' => 'tokenform', 'autocomplete' => 'off')) . "\n <ul>\n <li>";
?>
<label for='token'><?php
$clang->eT("Token:");
?>
</label><input class='text <?php
echo $kpclass;
?>
' id='token' type='password' name='token' value='' />
<?php
echo "<input type='hidden' name='sid' value='" . $surveyid . "' id='sid' />\n <input type='hidden' name='lang' value='" . $sLangCode . "' id='lang' />";
if (isset($_GET['newtest']) && $_GET['newtest'] == "Y") {
echo " <input type='hidden' name='newtest' value='Y' id='newtest' />";
}
// If this is a direct Reload previous answers URL, then add hidden fields
if (isset($_GET['loadall']) && isset($_GET['scid']) && isset($_GET['loadname']) && isset($_GET['loadpass'])) {
echo "\n <input type='hidden' name='loadall' value='" . htmlspecialchars($_GET['loadall']) . "' id='loadall' />\n <input type='hidden' name='scid' value='" . returnGlobal('scid', true) . "' id='scid' />\n <input type='hidden' name='loadname' value='" . htmlspecialchars($_GET['loadname']) . "' id='loadname' />\n <input type='hidden' name='loadpass' value='" . htmlspecialchars($_GET['loadpass']) . "' id='loadpass' />";
}
echo "</li>";
//.........这里部分代码省略.........
示例3: doQuestion
public function doQuestion($ia)
{
global $thissurvey;
if ($thissurvey['nokeyboard'] == 'Y') {
includeKeypad();
$kpclass = "text-keypad";
} else {
$kpclass = "";
}
$checkconditionFunction = "checkconditions";
$aQuestionAttributes = getQuestionAttributeValues($ia[0]);
$query = "SELECT other FROM {{questions}} WHERE qid=" . $ia[0] . " AND language='" . $_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang'] . "' ";
$result = Yii::app()->db->createCommand($query)->query();
foreach ($result->readAll() as $row) {
$other = $row['other'];
}
//question attribute random order set?
if ($aQuestionAttributes['random_order'] == 1) {
$ansquery = "SELECT * FROM {{answers}} WHERE qid={$ia['0']} AND language='" . $_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang'] . "' and scale_id=0 ORDER BY " . dbRandom();
} elseif ($aQuestionAttributes['alphasort'] == 1) {
$ansquery = "SELECT * FROM {{answers}} WHERE qid={$ia['0']} AND language='" . $_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang'] . "' and scale_id=0 ORDER BY answer";
} else {
$ansquery = "SELECT * FROM {{answers}} WHERE qid={$ia['0']} AND language='" . $_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang'] . "' and scale_id=0 ORDER BY sortorder, answer";
}
$ansresult = dbExecuteAssoc($ansquery)->readAll();
//Checked
$anscount = count($ansresult);
if (trim($aQuestionAttributes['display_columns']) != '') {
$dcols = $aQuestionAttributes['display_columns'];
} else {
$dcols = 1;
}
if (trim($aQuestionAttributes['other_replace_text'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']]) != '') {
$othertext = $aQuestionAttributes['other_replace_text'][$_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang']];
} else {
$othertext = gT('Other:');
}
if (isset($other) && $other == 'Y') {
$anscount++;
}
//Count up for the Other answer
if ($ia[6] != 'Y' && SHOW_NO_ANSWER == 1) {
$anscount++;
}
//Count up if "No answer" is showing
$wrapper = setupColumns($dcols, $anscount, "answers-list radio-list", "answer-item radio-item");
$iBootCols = round(12 / $dcols);
$ansByCol = round($anscount / $dcols);
$ansByCol = $ansByCol > 0 ? $ansByCol : 1;
//$answer = 'IKI: '.$iBootCols.' '.$ansByCol.' '.$wrapper['whole-start'];
$answer = '<div class="row">';
$answer .= ' <div class="col-xs-' . $iBootCols . '">AAAAAAAAAAAAAA';
//Time Limit Code
if (trim($aQuestionAttributes['time_limit']) != '') {
$answer .= return_timer_script($aQuestionAttributes, $ia);
}
//End Time Limit Code
// Get array_filter stuff
$rowcounter = 0;
$colcounter = 1;
$trbc = '';
foreach ($ansresult as $key => $ansrow) {
$myfname = $ia[1] . $ansrow['code'];
$check_ans = '';
if ($_SESSION['survey_' . Yii::app()->getConfig('surveyID')][$ia[1]] == $ansrow['code']) {
$check_ans = CHECKED;
}
list($htmltbody2, $hiddenfield) = return_array_filter_strings($ia, $aQuestionAttributes, $thissurvey, $ansrow, $myfname, '', $myfname, "div", "form-group answer-item radio-item");
/* if(substr($wrapper['item-start'],0,4) == "\t<li")
{
$startitem = "\t$htmltbody2\n";
} else {
$startitem = $wrapper['item-start'];
}
$answer .= $startitem;*/
$answer .= "\t{$hiddenfield}\n";
$answer .= '<div class="form-group">';
$answer .= ' <label for="answer' . $ia[1] . $ansrow['code'] . '" class="answertext control-label">' . $ansrow['answer'] . '</label>';
$answer .= ' <input class="radio" type="radio" value="' . $ansrow['code'] . '" name="' . $ia[1] . '" id="answer' . $ia[1] . $ansrow['code'] . '"' . $check_ans . ' onclick="if (document.getElementById(\'answer' . $ia[1] . 'othertext\') != null) document.getElementById(\'answer' . $ia[1] . 'othertext\').value=\'\';' . $checkconditionFunction . '(this.value, this.name, this.type)" />';
$answer .= $wrapper['item-end'];
$answer .= '</div>';
++$rowcounter;
//if ($rowcounter == $wrapper['maxrows'] && $colcounter < $wrapper['cols'] || (count($ansresult)-$key)==$wrapper['cols']-$colcounter)
if ($rowcounter == $ansByCol && $colcounter < $wrapper['cols']) {
if ($colcounter == $wrapper['cols']) {
//$answer .= 'là '.$wrapper['col-devide-last'];
$answer .= ' </div><!-- last -->';
} else {
//$answer .= 'et là '.$wrapper['col-devide'];
$answer .= ' </div><!-- devide --> ';
$answer .= ' <div class="col-xs-' . $iBootCols . '">';
}
$rowcounter = 0;
++$colcounter;
}
}
if (isset($other) && $other == 'Y') {
$sSeparator = getRadixPointData($thissurvey['surveyls_numberformat']);
$sSeparator = $sSeparator['separator'];
//.........这里部分代码省略.........
示例4: do_array_multiflexi
function do_array_multiflexi($ia)
{
global $thissurvey;
$answer = '';
$aLastMoveResult = LimeExpressionManager::GetLastMoveResult();
$aMandatoryViolationSubQ = $aLastMoveResult['mandViolation'] && $ia[6] == 'Y' ? explode("|", $aLastMoveResult['unansweredSQs']) : array();
$repeatheadings = Yii::app()->getConfig("repeatheadings");
$minrepeatheadings = Yii::app()->getConfig("minrepeatheadings");
$extraclass = "";
$answertypeclass = "";
$caption = gT("A table of subquestions on each cell. The subquestion texts are in the colum header and concern the row header.");
$checkconditionFunction = "fixnum_checkconditions";
$defaultvaluescript = '';
$qquery = "SELECT other FROM {{questions}} WHERE qid=" . $ia[0] . " AND language='" . $_SESSION['survey_' . Yii::app()->getConfig('surveyID')]['s_lang'] . "' and parent_qid=0";
$other = Yii::app()->db->createCommand($qquery)->queryScalar();
//Checked
/*
* Question Attributes
*/
$aQuestionAttributes = QuestionAttribute::model()->getQuestionAttributes($ia[0]);
// Define min and max value
if (trim($aQuestionAttributes['multiflexible_max']) != '' && trim($aQuestionAttributes['multiflexible_min']) == '') {
$maxvalue = $aQuestionAttributes['multiflexible_max'];
$minvalue = 1;
$extraclass .= " maxvalue maxvalue-" . trim($aQuestionAttributes['multiflexible_max']);
}
if (trim($aQuestionAttributes['multiflexible_min']) != '' && trim($aQuestionAttributes['multiflexible_max']) == '') {
$minvalue = $aQuestionAttributes['multiflexible_min'];
$maxvalue = $aQuestionAttributes['multiflexible_min'] + 10;
$extraclass .= " minvalue minvalue-" . trim($aQuestionAttributes['multiflexible_max']);
}
if (trim($aQuestionAttributes['multiflexible_min']) == '' && trim($aQuestionAttributes['multiflexible_max']) == '') {
$maxvalue = 10;
$minvalue = isset($minvalue['value']) && $minvalue['value'] == 0 ? 0 : 1;
}
if (trim($aQuestionAttributes['multiflexible_min']) != '' && trim($aQuestionAttributes['multiflexible_max']) != '') {
if ($aQuestionAttributes['multiflexible_min'] < $aQuestionAttributes['multiflexible_max']) {
$minvalue = $aQuestionAttributes['multiflexible_min'];
$maxvalue = $aQuestionAttributes['multiflexible_max'];
}
}
$stepvalue = trim($aQuestionAttributes['multiflexible_step']) != '' && $aQuestionAttributes['multiflexible_step'] > 0 ? $aQuestionAttributes['multiflexible_step'] : 1;
if ($aQuestionAttributes['reverse'] == 1) {
$tmp = $minvalue;
$minvalue = $maxvalue;
$maxvalue = $tmp;
$reverse = true;
$stepvalue = -$stepvalue;
} else {
$reverse = false;
}
$checkboxlayout = false;
$inputboxlayout = false;
$textAlignment = 'right';
if ($aQuestionAttributes['multiflexible_checkbox'] != 0) {
$minvalue = 0;
$maxvalue = 1;
$checkboxlayout = true;
$answertypeclass = " checkbox";
$caption .= gT("Please check the matching combinations.");
$textAlignment = 'center';
} elseif ($aQuestionAttributes['input_boxes'] != 0) {
$inputboxlayout = true;
$answertypeclass .= " numeric-item text";
$extraclass .= " numberonly";
$caption .= gT("Please enter only numbers.");
$textAlignment = 'right';
} else {
$answertypeclass = " dropdown";
$caption .= gT("Please select an answer for each combination.");
}
if (ctype_digit(trim($aQuestionAttributes['repeat_headings'])) && trim($aQuestionAttributes['repeat_headings'] != "")) {
$repeatheadings = intval($aQuestionAttributes['repeat_headings']);
$minrepeatheadings = 0;
}
if (intval(trim($aQuestionAttributes['maximum_chars'])) > 0) {
// Only maxlength attribute, use textarea[maxlength] jquery selector for textarea
$maximum_chars = intval(trim($aQuestionAttributes['maximum_chars']));
$maxlength = "maxlength='{$maximum_chars}' ";
$extraclass .= " maxchars maxchars-" . $maximum_chars;
} else {
$maxlength = "";
}
if ($thissurvey['nokeyboard'] == 'Y') {
includeKeypad();
$kpclass = " num-keypad";
$extraclass .= " inputkeypad";
} else {
$kpclass = "";
}
if (trim($aQuestionAttributes['answer_width']) != '') {
$answerwidth = $aQuestionAttributes['answer_width'];
$useAnswerWidth = true;
} else {
$answerwidth = 20;
// If answerwidth is not given, we want to default to Bootstrap column.
// Otherwise bug on phone screen.
$useAnswerWidth = false;
}
$columnswidth = 100 - $answerwidth * 2;
//.........这里部分代码省略.........
示例5: buildsurveysession
/**
* This function builds all the required session variables when a survey is first started and
* it loads any answer defaults from command line or from the table defaultvalues
* It is called from the related format script (group.php, question.php, survey.php)
* if the survey has just started.
* @param int $surveyid
* @param boolean $preview Defaults to false
* @return void
*/
function buildsurveysession($surveyid, $preview = false)
{
Yii::trace('start', 'survey.buildsurveysession');
global $secerror, $clienttoken;
global $tokensexist;
global $move, $rooturl;
$sLangCode = App()->language;
$languagechanger = makeLanguageChangerSurvey($sLangCode);
if (!$preview) {
$preview = Yii::app()->getConfig('previewmode');
}
$thissurvey = getSurveyInfo($surveyid, $sLangCode);
if ($thissurvey['nokeyboard'] == 'Y') {
includeKeypad();
$kpclass = "text-keypad";
} else {
$kpclass = '';
}
// $thissurvey['template'] already fixed by model : but why put this in session ?
$_SESSION['survey_' . $surveyid]['templatename'] = $thissurvey['template'];
$_SESSION['survey_' . $surveyid]['templatepath'] = getTemplatePath($thissurvey['template']) . DIRECTORY_SEPARATOR;
$sTemplatePath = $_SESSION['survey_' . $surveyid]['templatepath'];
$oTemplate = Template::model()->getInstance('', $surveyid);
$sTemplatePath = $oTemplate->path;
$sTemplateViewPath = $oTemplate->viewPath;
/**
* This method has multiple outcomes that virtually do the same thing
* Possible scenarios/subscenarios are =>
* - No token required & no captcha required
* - No token required & captcha required
* > captcha may be wrong
* - token required & captcha required
* > token may be wrong/used
* > captcha may be wrong
*/
$scenarios = array("tokenRequired" => $tokensexist == 1, "captchaRequired" => isCaptchaEnabled('surveyaccessscreen', $thissurvey['usecaptcha']) && !isset($_SESSION['survey_' . $surveyid]['captcha_surveyaccessscreen']));
/**
* Set subscenarios depending on scenario outcome
*/
$subscenarios = array("captchaCorrect" => false, "tokenValid" => false);
//Check the scenario for token required
if ($scenarios['tokenRequired']) {
//Check for the token-validity
if ($thissurvey['alloweditaftercompletion'] == 'Y') {
$oTokenEntry = Token::model($surveyid)->findByAttributes(array('token' => $clienttoken));
} else {
$oTokenEntry = Token::model($surveyid)->usable()->incomplete()->findByAttributes(array('token' => $clienttoken));
}
$subscenarios['tokenValid'] = !empty($oTokenEntry) && $clienttoken != "";
} else {
$subscenarios['tokenValid'] = true;
}
//Check the scenario for captcha required
if ($scenarios['captchaRequired']) {
//Check if the Captcha was correct
$loadsecurity = returnGlobal('loadsecurity', true);
$captcha = Yii::app()->getController()->createAction('captcha');
$subscenarios['captchaCorrect'] = $captcha->validate($loadsecurity, false);
} else {
$subscenarios['captchaCorrect'] = true;
$loadsecurity = false;
}
//RenderWay defines which html gets rendered to the user_error
// Possibilities are main,register,correct
$renderCaptcha = "";
$renderToken = "";
//Define array to render the partials
$aEnterTokenData = array();
$aEnterTokenData['bNewTest'] = false;
$aEnterTokenData['bDirectReload'] = false;
$aEnterTokenData['error'] = $secerror;
$aEnterTokenData['iSurveyId'] = $surveyid;
$aEnterTokenData['sKpClass'] = $kpclass;
// ???
$aEnterTokenData['sLangCode'] = $sLangCode;
if (isset($_GET['bNewTest']) && $_GET['newtest'] == "Y") {
$aEnterTokenData['bNewTest'] = true;
}
// If this is a direct Reload previous answers URL, then add hidden fields
if (isset($loadall) && isset($scid) && isset($loadname) && isset($loadpass)) {
$aEnterTokenData['bDirectReload'] = true;
$aEnterTokenData['sCid'] = $scid;
$aEnterTokenData['sLoadname'] = htmlspecialchars($loadname);
$aEnterTokenData['sLoadpass'] = htmlspecialchars($loadpass);
}
$FlashError = "";
// Scenario => Captcha required
if ($scenarios['captchaRequired'] && !$preview) {
list($renderCaptcha, $FlashError) = testCaptcha($aEnterTokenData, $subscenarios, $surveyid, $loadsecurity);
}
// Scenario => Token required
//.........这里部分代码省略.........