function showLanguage() { global $survey; $allowed = explode("~", $survey->getAllowedLanguages(getSurveyMode())); if (sizeof($allowed) == 1) { return ""; } $rgid = $this->engine->getRgid(); $variablenames = $this->getRealVariables(explode("~", $this->engine->getDisplayed())); $template = $this->engine->getTemplate(); $click = ""; if ($template != "") { $group = $this->engine->getGroup($template); $click = $this->engine->replaceFills($group->getClickLanguageChange()); } else { $vars = explode("~", $variablenames); $var = $this->engine->getVariableDescriptive($vars[0]); $click = $this->engine->replaceFills($var->getClickLanguageChange()); } $click = str_replace("'", "", $click); $current = getSurveyLanguage(); $langs = Language::getLanguagesArray(); foreach ($langs as $key => $lang) { if (inArray($lang["value"], $allowed)) { $check = ''; if ($lang["value"] == getSurveyLanguage()) { // $check = ' <span class="glyphicon glyphicon-ok"></span>'; } else { $returnStr .= '<button type="button" class="btn btn-sm btn-warning" onclick=\'document.getElementById("r").value="' . setSessionsParamString(array_merge(array(SESSION_PARAM_LASTACTION => $this->engine->getLastSurveyAction(), SESSION_PARAM_SURVEY => $survey->getSuid(), SESSION_PARAM_PRIMKEY => $this->primkey, SESSION_PARAM_RGID => $rgid, SESSION_PARAM_VARIABLES => $variablenames, SESSION_PARAM_GROUP => $template, SESSION_PARAM_MODE => getSurveyMode(), SESSION_PARAM_TEMPLATE => getSurveyTemplate(), SESSION_PARAM_VERSION => getSurveyVersion(), SESSION_PARAM_LANGUAGE => $current, SESSION_PARAM_TIMESTAMP => time(), SESSION_PARAM_SEID => $this->engine->getSeid(), SESSION_PARAM_MAINSEID => $this->engine->getMainSeid()), array(SESSION_PARAM_NEWLANGUAGE => $lang["value"]))) . '"; document.getElementById("navigation").value="' . NAVIGATION_LANGUAGE_CHANGE . '"; ' . $click . ' document.getElementById("form").submit(); \'>' . $lang["name"] . $check . '</button>'; } } } return $returnStr; }
function getEntries($setting, $language = "", $mode = "", $version = "") { global $db; if ($language == "") { $language = getSurveyLanguage(); } if ($mode == "") { $mode = getSurveyMode(); } if ($version == "") { $version = getSurveyVersion(); } $arr = array(); $query = "select * from " . Config::dbSurvey() . "_tracks where suid=" . prepareDatabaseString($this->suid) . " and object=" . prepareDatabaseString($this->object) . " and objecttype=" . prepareDatabaseString($this->objecttype) . " and setting='" . prepareDatabaseString($setting) . "' and language=" . prepareDatabaseString($language) . " and mode=" . prepareDatabaseString($mode) . " and version=" . prepareDatabaseString($version) . " order by ts desc"; //echo $query; $res = $db->selectQuery($query); if ($res) { if ($db->getNumberOfRows($res) > 0) { while ($row = $db->getRow($res)) { $arr[] = $row; } } } return $arr; }
public function showLoginAnonymous($randomId) { global $survey, $engine; //echo $survey->getTemplate(); require_once "display/templates/displayquestion_" . $survey->getTemplate() . ".php"; $engine = loadEngine($survey->getSuid(), $randomId, "", getSurveyVersion(), getBaseSectionSeid($survey->getSuid())); $do = $engine->getDisplayObject(); $returnStr = $do->showHeader($survey->getTitle(), '<link href="bootstrap/css/sticky-footer-navbar.min.css" rel="stylesheet">'); //$returnStr .= '<form id="form" role="form" method=post>'; $returnStr .= $do->displayBody(); $returnStr .= $do->showWelcomeSurvey(); $returnStr .= '<input type=hidden name="' . POST_PARAM_PRIMKEY . '" value="' . $randomId . '">'; $returnStr .= '<input type=hidden name="' . POST_PARAM_SUID . '" value="' . $survey->getSuid() . '">'; $returnStr .= '<input type=hidden name="' . POST_PARAM_R . '" value="' . loadvar(POST_PARAM_R) . '">'; $returnStr .= '<input type=hidden name="' . POST_PARAM_LANGUAGE . '" value="' . getSurveyLanguage() . '">'; $returnStr .= '<input type=hidden name="' . POST_PARAM_MODE . '" value="' . getSurveyMode() . '">'; $returnStr .= '<div class="panel-footer text-center">'; $var = $engine->getVariableDescriptive(VARIABLE_INTRODUCTION); $returnStr .= '<button type="submit" class="btn btn-default" value="' . $do->applyFormatting($var->getLabelNextButton(), $var->getButtonFormatting()) . '">' . $do->applyFormatting($var->getLabelNextButton(), $var->getButtonFormatting()) . '</button>'; $returnStr .= '</form>'; $returnStr .= "</div></div></div></div>"; /* footer */ $returnStr .= $this->showFooter(); return $returnStr; }
function redirect($page) { global $survey; $returnStr = $this->showHeader($survey->getTitle(), '<link href="bootstrap/css/sticky-footer-navbar.min.css" rel="stylesheet">'); $returnStr .= '<form method="post" action="../index.php">'; $returnStr .= '<input type=hidden name="' . POST_PARAM_PRIMKEY . '" value="' . addslashes(encryptC($this->primkey, Config::directLoginKey())) . '">'; $returnStr .= '<input type=hidden name="' . POST_PARAM_SUID . '" value="' . getSurvey() . '">'; $returnStr .= '<input type=hidden name="' . POST_PARAM_LANGUAGE . '" value="' . getSurveyLanguage() . '">'; $returnStr .= '<input type=hidden name="' . POST_PARAM_MODE . '" value="' . getSurveyMode() . '">'; $returnStr .= setSessionParamsPost(array('page' => $page)); $returnStr .= '</form>'; $returnStr .= '<script>'; $returnStr .= '$(document).ready(function(){ $("form:first").submit(); }); '; $returnStr .= '</script></body><html>'; return $returnStr; }
public function showNavBar() { $returnStr = $this->showCalculator(); //language $rgid = $this->engine->getRgid(); $variablenames = $this->engine->getDisplayed(); // begin language global $survey; if (getSurveyLanguageAllowChange() == LANGUAGE_CHANGE_RESPONDENT_ALLOWED) { $allowed = explode("~", $survey->getAllowedLanguages(getSurveyMode())); if (sizeof($allowed) > 1) { $returnStr .= '<li class="dropdown">'; $returnStr .= ' <a href="#" class="dropdown-toggle" data-toggle="dropdown">Language <b class="caret"></b></a><ul class="dropdown-menu">'; $langs = Language::getLanguagesArray(); //getSurveyLanguages($this->engine->survey); foreach ($langs as $lang) { if (inArray($lang["value"], $allowed)) { $check = ''; if ($lang["value"] == getSurveyLanguage()) { $check = ' <span class="glyphicon glyphicon-ok"></span>'; } $returnStr .= '<li><a href=# onclick=\'document.getElementById("r").value="' . setSessionsParamString(array_merge(array(SESSION_PARAM_PRIMKEY => $this->engine->primkey, SESSION_PARAM_RGID => $rgid, SESSION_PARAM_VARIABLES => $variablenames, SESSION_PARAM_LANGUAGE => getSurveyLanguage(), SESSION_PARAM_TIMESTAMP => time(), SESSION_PARAM_SEID => $this->engine->getSeid(), SESSION_PARAM_MAINSEID => $this->engine->getMainSeid()), array(SESSION_PARAM_NEWLANGUAGE => $lang["value"]))) . '"; document.getElementById("navigation").value="' . addslashes(Language::buttonUpdate()) . '"; document.getElementById("form").submit(); \'>' . $lang["name"] . $check . '</a></li>'; } } $returnStr .= '</ul></li>'; } //end language } $user = new User($_SESSION['URID']); $returnStr .= '<li class="dropdown"> <a href="#" class="dropdown-toggle" data-hover="dropdown" data-toggle="dropdown">' . $user->getName() . ' <b class="caret"></b></a> <ul class="dropdown-menu"> <li class="dropdown-header">' . $this->engine->primkey . '</li> <li class="dropdown-header">' . $variablenames . '</li>'; //$returnStr .= '<li><a href=# data-toggle="modal" data-target="#calculator">Calculator</a></li>'; $returnStr .= '<li><a href="#" data-toggle="modal" data-target="#calculator"><span class="glyphicon glyphicon-th"></span> Calculator</a></li>'; $returnStr .= '<li><a href="' . setSessionParams(array('page' => 'nurse.backfromsms', 'primkey' => $this->engine->primkey, 'suid' => $this->engine->getSuid())) . '&se=' . addslashes(USCIC_SMS) . '"><span class="glyphicon glyphicon-home"></span> ' . Language::linkBackToSMS() . '</a></li> <li class="divider"></li> <li><a href="index.php?rs=1&se=2"><span class="glyphicon glyphicon-log-out"></span> ' . Language::linkLogout() . '</a></li> </ul> </li> </ul> '; $returnStr .= '</div><!--/.nav-collapse --> </div> </div>'; return $returnStr; }
function addAction($primkey, $urid, $page, $systemtype = USCIC_SMS, $actiontype = 1) { global $db; $query = 'INSERT INTO ' . Config::dbSurveyData() . '_actions (primkey, sessionid, urid, suid, ipaddress, systemtype, action, actiontype, params, language, mode, version) VALUES ('; if ($primkey != '') { $query .= '\'' . prepareDatabaseString($primkey) . '\', '; } else { $query .= 'NULL, '; } $query .= '\'' . session_id() . '\', '; if ($urid != '') { $query .= '\'' . $urid . '\', '; } else { $query .= 'NULL, '; } if ($systemtype == USCIC_SURVEY) { $query .= getSurvey() . ', '; } else { $query .= 'NULL, '; } $query .= '\'' . prepareDatabaseString(getClientIp()) . '\', '; $query .= $systemtype . ', '; $query .= '\'' . prepareDatabaseString($page) . '\', '; $query .= $actiontype . ', '; if (Config::logParams()) { //log post vars? $query .= ' AES_ENCRYPT(\'' . prepareDatabaseString(serialize($_POST)) . '\', \'' . Config::logActionParamsKey() . '\'), '; } else { $query .= ' NULL, '; } if ($systemtype == USCIC_SURVEY) { $query .= getSurveyLanguage() . ', '; $query .= getSurveyMode() . ', '; $query .= getSurveyVersion(); } else { $query .= 'NULL, NULL, NULL'; } $query .= ")"; $db->executeQuery($query); if (isset($this->LogActions[$primkey])) { //unset so it is read in again.. unset($this->LogActions[$primkey]); } }
function checkUserAccess() { $user = new User($_SESSION['URID']); $cm = getSurveyMode(); $cl = getSurveyLanguage(); $modes = $user->getModes(); $languages = explode("~", $user->getLanguages(getSurvey(), getSurveyMode())); if (!inArray($cm, $modes) || !inArray($cl, $languages)) { return false; } return true; }
public function showNavBar() { $returnStr = $this->showCalculator(); //language $rgid = $this->engine->getRgid(); $variablenames = $this->getRealVariables(explode("~", $this->engine->getDisplayed())); $variablenamesfull = $this->engine->getDisplayed(); $template = $this->engine->getTemplate(); $click = ""; if ($template != "") { $group = $this->engine->getGroup($template); $click = $this->engine->replaceFills($group->getClickLanguageChange()); } else { $vars = explode("~", $variablenames); $var = $this->engine->getVariableDescriptive($vars[0]); $click = $this->engine->replaceFills($var->getClickLanguageChange()); } $click = str_replace("'", "", $click); // begin language global $survey; if (getSurveyLanguageAllowChange() == LANGUAGE_CHANGE_RESPONDENT_ALLOWED) { $allowed = explode("~", $survey->getAllowedLanguages(getSurveyMode())); if (sizeof($allowed) > 1) { $returnStr .= '<li class="dropdown">'; $returnStr .= ' <a href="#" class="dropdown-toggle" data-toggle="dropdown">Language <b class="caret"></b></a><ul class="dropdown-menu">'; $langs = Language::getLanguagesArray(); //getSurveyLanguages($this->engine->survey); foreach ($langs as $lang) { if (inArray($lang["value"], $allowed)) { $check = ''; if ($lang["value"] == getSurveyLanguage()) { $check = ' <span class="glyphicon glyphicon-ok"></span>'; } $returnStr .= '<li><a href=# onclick=\'document.getElementById("r").value="' . setSessionsParamString(array_merge(array(SESSION_PARAM_SURVEY => $survey->getSuid(), SESSION_PARAM_PRIMKEY => $this->engine->getPrimaryKey(), SESSION_PARAM_RGID => $rgid, SESSION_PARAM_VARIABLES => $variablenames, SESSION_PARAM_GROUP => $template, SESSION_PARAM_MODE => getSurveyMode(), SESSION_PARAM_LANGUAGE => getSurveyLanguage(), SESSION_PARAM_TEMPLATE => getSurveyTemplate(), SESSION_PARAM_TIMESTAMP => time(), SESSION_PARAM_SEID => $this->engine->getSeid(), SESSION_PARAM_MAINSEID => $this->engine->getMainSeid()), array(SESSION_PARAM_NEWLANGUAGE => $lang["value"]))) . '"; document.getElementById("navigation").value="' . addslashes(Language::buttonUpdate()) . '"; ' . $click . ' document.getElementById("form").submit(); \'>' . $lang["name"] . $check . '</a></li>'; } } $returnStr .= '</ul></li>'; } //end language } $user = new User($_SESSION['URID']); $returnStr .= '<li class="dropdown"> <a href="#" class="dropdown-toggle" data-hover="dropdown" data-toggle="dropdown">' . $user->getName() . ' <b class="caret"></b></a> <ul class="dropdown-menu"> <li class="dropdown-header">' . $this->engine->primkey . '</li> <li class="dropdown-header">' . $variablenamesfull . '</li>'; //$returnStr .= '<li><a href=# data-toggle="modal" data-target="#calculator">Calculator</a></li>'; $returnStr .= '<li><a href="#" data-toggle="modal" data-target="#calculator"><span class="glyphicon glyphicon-th"></span> ' . Language::linkCalculator() . '</a></li>'; $windowopen = 'window.open(\'tester/' . setSessionParams(array('type' => "2", 'testpage' => 'watch', 'watchurid' => $_SESSION['URID'], 'watchsuid' => $this->engine->getSuid(), 'watchseid' => $this->engine->getSeid(), 'watchmainseid' => $this->engine->getMainSeid(), 'watchrgid' => $rgid, 'watchdisplayed' => $variablenames, 'watchlanguage' => getSurveyLanguage(), 'watchmode' => getSurveyMode(), 'watchversion' => getSurveyVersion(), 'watchprimkey' => $this->engine->getPrimarykey())) . '\', \'popupWindow\', \'width=770,height=650,scrollbars=yes,top=100,left=100\'); return false;'; $javascript = ' onclick="' . $windowopen . '"'; $returnStr .= '<li><a style="cursor: pointer;" ' . $javascript . '><span class="glyphicon glyphicon-zoom-in"></span> ' . Language::linkWatch() . '</a></li>'; $windowopen = 'window.open(\'tester/' . setSessionParams(array('type' => "2", 'testpage' => 'update', 'watchurid' => $_SESSION['URID'], 'watchsuid' => $this->engine->getSuid(), 'watchseid' => $this->engine->getSeid(), 'watchmainseid' => $this->engine->getMainSeid(), 'watchrgid' => $rgid, 'watchdisplayed' => $variablenames, 'watchlanguage' => getSurveyLanguage(), 'watchmode' => getSurveyMode(), 'watchversion' => getSurveyVersion(), 'watchprimkey' => $this->engine->getPrimarykey())) . '\', \'popupWindow\', \'width=1200,height=650,scrollbars=yes,top=100,left=100\'); return false;'; $javascript = ' onclick="' . $windowopen . '"'; $returnStr .= '<li><a style="cursor: pointer;" ' . $javascript . '><span class="glyphicon glyphicon-zoom-in"></span> ' . Language::linkUpdate() . '</a></li>'; $first = $this->engine->isFirstState(); if ($first == false || $first == true && $this->engine->getForward() == true) { if ($this->engine->getForward() == true) { $stateid = $this->engine->getStateId() + 1; } else { $stateid = $this->engine->getStateId(); } $windowopen = 'window.open(\'tester/' . setSessionParams(array('type' => "2", 'testpage' => 'jumpback', 'jumpurid' => $_SESSION['URID'], 'jumpsuid' => $this->engine->getSuid(), 'jumpstateid' => $stateid, 'jumpprimkey' => $this->engine->getPrimaryKey())) . '\', \'popupWindow\', \'width=770,height=300,scrollbars=yes,top=100,left=100\'); return false;'; $javascript = ' onclick="' . $windowopen . '"'; $returnStr .= '<li><a style="cursor: pointer;" ' . $javascript . '><span class="glyphicon glyphicon-arrow-left"></span> ' . Language::linkJumpBack() . '</a></li>'; } $returnStr .= '<li><a href="' . setSessionParams(array('page' => 'interviewer.backfromsms', 'primkey' => $this->engine->primkey, 'suid' => $this->engine->getSuid())) . '&se=' . addslashes(USCIC_SMS) . '"><span class="glyphicon glyphicon-home"></span> ' . Language::linkBackToSMS() . '</a></li> <li class="divider"></li> <li><a href="index.php?rs=1&se=2"><span class="glyphicon glyphicon-log-out"></span> ' . Language::linkLogout() . '</a></li> </ul> </li> </ul> '; $returnStr .= '</div><!--/.nav-collapse --> </div> </div>'; return $returnStr; }
function generateChecks($variables = array(), $remove = false, $compile = true) { $_SESSION['PARAMETER_RETRIEVAL'] = PARAMETER_SURVEY_RETRIEVAL; /* create factory, printer and root node */ $this->factory = new PHPParser_BuilderFactory(); $this->printer = new PHPParser_PrettyPrinter_Default(); $this->messages = array(); //$setfillclasses = array(); $this->fillclass = true; $this->checkclass = true; /* load any existing checks from context */ $checkclasses = $this->loadChecks(); /* go through all variable(s) if none provided */ global $db; if (sizeof($variables) == 0) { $q = "select * from " . Config::dbSurvey() . "_variables where suid=" . $this->suid . " order by vsid asc"; if ($result = $db->selectQuery($q)) { if ($db->getNumberOfRows($result) > 0) { while ($row = $db->getRow($result)) { $variables[] = new VariableDescriptive($row); } } } } foreach ($variables as $var) { if ($remove == false) { $code = $var->getCheckCode(); //echo $code; if (trim($code) != "") { $this->currentfillvariable = $var->getName(); //$rule = trim(str_ireplace(".FILL", "", $s->getRule())); //$rgid = $s->getRgid(); /* store pairing */ //$setfillarray[strtoupper(getBasicName($rule))] = $rgid; $rootnode = $this->factory->class(CLASS_CHECK . "_" . $this->currentfillvariable)->extend(CLASS_BASICCHECK); /* preset trackers */ $this->looptimes = 1; $this->lasttimesloop = array(); $this->lastloopactions = array(); $this->loops = array(); $this->groups = array(); $this->groupsend = array(); $this->groupactions = array(); $this->instructions = array(); $this->whiles = array(); $this->lastwhileactions = array(); $this->doaction_cases = array(); $this->actions = array(); $stmts = array(); //$var = $this->survey->getVariableDescriptiveByName(getBasicName($rule)); $checkrules = explode("\r\n", $code); $cnt = 1; foreach ($checkrules as $checkrule) { $this->instructions[$cnt] = new RoutingInstruction($var->getSuid(), $var->getSeid(), $cnt, rtrim($checkrule)); $cnt++; } //print_r($this->instructions); /* process setfillvalue cases */ //echo "<hr>" . $rule . $rgid; for ($this->cnt = 1; $this->cnt <= sizeof($this->instructions); $this->cnt++) { if (isset($this->instructions[$this->cnt])) { //echo $this->instructions[$this->cnt]->getRule() . "<br/>"; $this->addRule($rootnode, $this->instructions[$this->cnt]); } } //echo "END"; /* add end */ $stmts[] = new PHPParser_Node_Stmt_Break(); $this->doaction_cases[] = new PHPParser_Node_Stmt_Case(null, $stmts); /* add doAction function */ $this->doaction = $this->factory->method(FUNCTION_DO_ACTION); $this->doaction->makePublic(); $param = new PHPParser_Builder_Param('rgid'); $param->setDefault(""); $this->doaction->addParam($param); $doactioncond = new PHPParser_Node_Expr_Variable("rgid"); $this->doaction->addStmt(new PHPParser_Node_Stmt_Switch($doactioncond, $this->doaction_cases)); $rootnode->addStmt($this->doaction); /* add getFirstAction function */ $firstaction = $this->factory->method(FUNCTION_GET_FIRST_ACTION); $firstaction->makePublic(); $firstaction->addStmt(new PHPParser_Node_Stmt_Return(new PHPParser_Node_Scalar_LNumber($this->actions[0]))); $rootnode->addStmt($firstaction); /* get statements */ $stmts = array($rootnode->getNode()); /* generate code for check class */ //$setfillclasses[$rgid] = $this->printer->prettyPrint($stmts); $checkclasses[strtoupper($this->currentfillvariable) . getSurveyLanguage() . getSurveyMode()] = $this->printer->prettyPrint($stmts); //echo "<textarea style='width: 100%;' rows=5>" . $checkclasses[strtoupper($this->currentfillvariable) . getSurveyLanguage() . getSurveyMode()] . "</textarea><hr>"; } else { // no check code, then remove if (isset($checkclasses[strtoupper($var->getName() . getSurveyLanguage() . getSurveyMode())])) { unset($checkclasses[strtoupper($var->getName() . getSurveyLanguage() . getSurveyMode())]); } } } else { if (isset($checkclasses[strtoupper($var->getName() . getSurveyLanguage() . getSurveyMode())])) { unset($checkclasses[strtoupper($var->getName() . getSurveyLanguage() . getSurveyMode())]); } } } if ($compile == true) { /* check for first time */ $this->addContext(); /* store in db */ global $db; $bp = new BindParam(); $bp->add(MYSQL_BINDING_STRING, gzcompress(serialize($checkclasses), 9)); $bp->add(MYSQL_BINDING_INTEGER, $this->suid); $bp->add(MYSQL_BINDING_INTEGER, $this->version); $query = "update " . Config::dbSurvey() . "_context set checks = ? where suid=? and version = ? "; $db->executeBoundQuery($query, $bp->get()); } $_SESSION['PARAMETER_RETRIEVAL'] = PARAMETER_ADMIN_RETRIEVAL; return $this->messages; }
function showReported($content = "") { $returnStr = $this->showTestHeader(Language::messageSMSTitle()); $returnStr .= '<div id="wrap">'; $returnStr .= $this->showNavBar(); $returnStr .= '<div class="container"><p>'; $surveys = new Surveys(); $surveys = $surveys->getSurveys(); if (sizeof($surveys) > 0) { $returnStr .= "<form id=refreshform method=post>"; $returnStr .= '<input type=hidden name=page value="sysadmin.tools.issues">'; $returnStr .= '<input type=hidden name="' . SMS_POST_SURVEY . '" id="' . SMS_POST_SURVEY . '_hidden" value="' . getSurvey() . '">'; $returnStr .= '<input type=hidden name="' . SMS_POST_MODE . '" id="' . SMS_POST_MODE . '_hidden" value="' . getSurveyMode() . '">'; $returnStr .= '<input type=hidden name="' . SMS_POST_LANGUAGE . '" id="' . SMS_POST_LANGUAGE . '_hidden" value="' . getSurveyLanguage() . '">'; $returnStr .= "</form>"; // get reported issues for survey global $survey; $issues = $survey->getReportedIssues(); // no problems reported if (sizeof($issues) == 0) { $returnStr .= "<br/>" . '<div class="alert alert-warning">' . Language::labelNoProblemsReported() . '</div>'; } else { $returnStr .= $this->displayComboBox(); $returnStr .= '<span class="label label-default">Filter by</span>'; $returnStr .= '<div class="well well-sm">'; $returnStr .= '<table>'; $returnStr .= '<tr><td>' . Language::labelTestSurvey() . "</td><td><select onchange='document.getElementById(\"" . SMS_POST_SURVEY . "_hidden\").value=this.value; document.getElementById(\"refreshform\").submit();' name=" . POST_PARAM_SUID . " class='selectpicker show-tick'>"; $current = new Survey(getSurvey()); foreach ($surveys as $survey) { $selected = ""; if ($survey->getSuid() == $current->getSuid()) { $selected = "SELECTED"; } $returnStr .= "<option {$selected} value=" . $survey->getSuid() . '>' . $survey->getName() . '</option>'; } $returnStr .= "</select></td></tr></table></div>"; $returnStr .= $this->displayDataTablesScripts(array("colvis", "rowreorder")); $returnStr .= "<script type='text/javascript'>\n \$(document).ready(function(){\n \$('#issuetable').dataTable(\n {\n \"iDisplayLength\": " . sizeof($issues) . ",\n dom: 'C<\"clear\">lfrtip',\n searching: false,\n paging: false\n } \n );\n \n });</script>\n\n "; // $returnStr .= "<br/><table id='issuetable' class='table table-bordered table-striped'><thead>"; $returnStr .= "<th>" . Language::labelReportedBy() . "</th><th>" . Language::labelReportedOn() . "</th><th>" . Language::labelReportedCategory() . "</th><th>" . Language::labelReportedDescription() . "</th><th>" . Language::labelReportedPrimaryKey() . "</th><th>" . Language::labelReportedMode() . "</th><th>" . Language::labelReportedLanguage() . "</th>"; $returnStr .= "</thead><tbody>"; $modes = Common::surveyModes(); $languages = Language::getLanguagesArray(); $cats = Language::reportProblemCategories(); foreach ($issues as $is) { $us = new User($is['urid']); $returnStr .= "<tr>"; $returnStr .= "<td>" . $us->getUsername() . "</td>"; $returnStr .= "<td>" . $is["ts"] . "</td>"; $returnStr .= "<td>" . $cats[$is["category"]] . "</td>"; $returnStr .= "<td>" . $is["comment"] . "</td>"; $returnStr .= "<td>" . $is["primkey"] . "</td>"; $returnStr .= "<td>" . $modes[$is["mode"]] . "</td>"; $returnStr .= "<td>" . $languages[str_replace("_", "", getSurveyLanguagePostFix($is["language"]))]['name'] . "</td>"; $returnStr .= "</tr>"; } $returnStr .= "</tbody></table>"; } } else { $returnStr .= $this->displayInfo(Language::messageNoSurveysAvailable()); } $returnStr .= '</p></div></div>'; //container and wrap $returnStr .= $this->showBottomBar(); $returnStr .= $this->showFooter(false); return $returnStr; }
function showMode() { global $survey; $allowed = explode("~", $survey->getAllowedModes()); if (sizeof($allowed) == 1) { return ""; } $rgid = $this->engine->getRgid(); $variablenames = $this->getRealVariables(explode("~", $this->engine->getDisplayed())); $template = $this->engine->getTemplate(); $click = ""; if ($template != "") { $group = $this->engine->getGroup($template); $click = $this->engine->replaceFills($group->getClickModeChange()); } else { $vars = explode("~", $variablenames); $var = $this->engine->getVariableDescriptive($vars[0]); $click = $this->engine->replaceFills($var->getClickModeChange()); } $click = str_replace("'", "", $click); $returnStr = '<div class="btn-group"> <button type="button" class="btn btn-default dropdown-toggle" data-hover="dropdown" data-toggle="dropdown"> ' . Language::surveyChangeMode() . ' <span class="caret"></span> </button> <ul class="dropdown-menu" role="menu">'; $current = getSurveyMode(); $modes = Common::surveyModes(); foreach ($modes as $key => $mode) { if (inArray($key, $allowed)) { $check = ''; if ($key == $current) { $check = ' <span class="glyphicon glyphicon-ok"></span>'; } $returnStr .= '<li><a href=# onclick=\'document.getElementById("r").value="' . setSessionsParamString(array_merge(array(SESSION_PARAM_LASTACTION => $this->engine->getLastSurveyAction(), SESSION_PARAM_SURVEY => $survey->getSuid(), SESSION_PARAM_PRIMKEY => $this->primkey, SESSION_PARAM_RGID => $rgid, SESSION_PARAM_VARIABLES => $variablenames, SESSION_PARAM_GROUP => $template, SESSION_PARAM_MODE => $current, SESSION_PARAM_VERSION => getSurveyVersion(), SESSION_PARAM_LANGUAGE => getSurveyLanguage(), SESSION_PARAM_TIMESTAMP => time(), SESSION_PARAM_SEID => $this->engine->getSeid(), SESSION_PARAM_MAINSEID => $this->engine->getMainSeid()), array(SESSION_PARAM_NEWMODE => $key))) . '"; document.getElementById("navigation").value="' . NAVIGATION_MODE_CHANGE . '"; ' . $click . ' document.getElementById("form").submit(); \'>' . $mode . $check . '</a></li>'; } } $returnStr .= ' </ul> </div>'; return $returnStr; }
function surveyEntry() { global $engine; if ($this->checkDateTime() == false) { /* get whatever the language is (either post or default) and use it */ $l = getSurveyLanguage(); if (file_exists("language/language" . getSurveyLanguagePostFix($l) . ".php")) { require_once 'language' . getSurveyLanguagePostFix($l) . '.php'; // language } else { require_once 'language_en.php'; // fall back on english language file } $login = new Login(session_id()); return $login->getClosedScreen(); } $logactions = new LogActions(); $nosessionactions = $logactions->getNumberOfSurveyActionsBySession($this->phpid, USCIC_SURVEY); /* no entry yet, then ask for prim_key in login screen */ if ($nosessionactions == 0 || loadvarSurvey(POST_PARAM_NEW_PRIMKEY) == '1') { //no entry yet: ask for prim_key! if (loadvarSurvey(POST_PARAM_NEW_PRIMKEY) == '1') { $logactions->deleteLoggedInSurveySession($this->phpid); } /* get whatever the language is (either post or default) and use it */ $l = getSurveyLanguage(); if (file_exists("language/language" . getSurveyLanguagePostFix($l) . ".php")) { require_once 'language' . getSurveyLanguagePostFix($l) . '.php'; // language } else { require_once 'language_en.php'; // fall back on english language file } $logactions->addAction('', '', "loginstart", USCIC_SURVEY, 1); $login = new Login($this->phpid); return $login->getLoginScreen(); } else { //entry: is this person logged in? $loggedin = $logactions->getLoggedInSurveySession($this->phpid); // gets the last logged in action /* no prim_key assigned to this sessionid. Assign if given (and check for pwd etc??)! */ if ($loggedin["count"] == 0) { /* we don't have active session, so take the template we can get */ global $survey; require_once "display/templates/displayquestion_" . getSurveyTemplate() . ".php"; // we don't have an active session, so fall back to whatever was passed along as language in post OR is the default language $l = getSurveyLanguage(); if (file_exists("language/language" . getSurveyLanguagePostFix($l) . ".php")) { //echo 'well done'; require_once 'language' . getSurveyLanguagePostFix($l) . '.php'; // language } else { require_once 'language_en.php'; // fall back on english language file } $primkey = loadvarSurvey(POST_PARAM_PRIMKEY); $_SESSION['PRIMKEY'] = $primkey; if ($primkey != '' && strlen($primkey) < 20) { // make sure primkey is not encrypted! //check!!!!!! $login = new Login($this->phpid); if ($login->checkAccess()) { $primkey = $_SESSION['PRIMKEY']; $logactions->addAction($primkey, '', "loggedin", USCIC_SURVEY, 1); // pass along primkey to load correct engine! $engine = loadEngine(getSurvey(), $primkey, $this->phpid, getSurveyVersion(), getSurveySection(getSurvey(), $primkey)); $engine->setFirstForm(true); return $engine->getNextQuestion(); } else { // incorrect login..start new session endSession(); session_start(); session_regenerate_id(true); $logactions->addAction('', '', "loginempty", USCIC_SURVEY, 1); $login = new Login(session_id()); global $survey; return $login->getLoginScreen($survey->getLoginError()); } } else { $logactions->addAction('', '', "loginempty", USCIC_SURVEY, 1); $login = new Login($this->phpid); global $survey; if ($survey->getAccessType() == LOGIN_ANONYMOUS) { return $login->getLoginScreen(Language::messageEnterPrimKey()); } else { if ($survey->getAccessType() == LOGIN_LOGINCODE) { return $login->getLoginScreen($survey->getLoginError()); } else { return $login->getLoginScreen(Language::messageEnterPrimKeyDirectAccess()); } } } } else { //continue interview! EXTRA CHECK!!! /* update survey info with what we know from the last session action */ setSurvey($loggedin["suid"]); /* include survey template now that we know which survey we are in */ global $survey; require_once "display/templates/displayquestion_" . getSurveyTemplate() . ".php"; /* update interview mode with what we know from the last session action * IF we are not changing the interview mode right now */ if (isset($_POST['navigation']) && $_POST['navigation'] != NAVIGATION_MODE_CHANGE && $survey->getReentryMode() == MODE_REENTRY_YES) { setSurveyMode($loggedin["mode"]); } /* update language with what we know from the last session action * IF we are not changing the language right now */ if (isset($_POST['navigation']) && $_POST['navigation'] != NAVIGATION_LANGUAGE_CHANGE && $survey->getReentryLanguage(getSurveyMode()) == LANGUAGE_REENTRY_YES) { setSurveyLanguage($loggedin["language"]); } /* update version with what we know from the last session action */ setSurveyVersion($loggedin["version"]); // include language file $l = getSurveyLanguage(); //echo 'NOW: ' . $l; if (file_exists("language/language" . getSurveyLanguagePostFix($l) . ".php")) { //echo 'well done'; require_once 'language' . getSurveyLanguagePostFix($l) . '.php'; // language } else { require_once 'language_en.php'; // fall back on english language file } // pass along primkey to load correct engine! $engine = loadEngine(getSurvey(), $loggedin["primkey"], $this->phpid, getSurveyVersion(), getSurveySection(getSurvey(), $loggedin["primkey"])); /* handle button click */ return $engine->getNextQuestion(); } } }
function showFlood($content = "") { $returnStr = $this->showToolsHeader(Language::headerToolsFlooder()); $returnStr .= $content; $surveys = new Surveys(); $surveys = $surveys->getSurveys(); if (sizeof($surveys) > 0) { $returnStr .= "<form method=post>"; $returnStr .= setSessionParamsPost(array('page' => 'sysadmin.tools.floodres')); $returnStr .= '<span class="label label-default">' . Language::labelToolsFloodSettings() . '</span>'; $returnStr .= '<div class="well well-sm">'; $returnStr .= $this->displayComboBox(); $returnStr .= '<table>'; $returnStr .= '<tr><td>' . Language::labelFloodSurvey() . "</td><td><select name=" . POST_PARAM_SUID . " class='selectpicker show-tick'>"; foreach ($surveys as $survey) { $returnStr .= "<option value=" . $survey->getSuid() . '>' . $survey->getName() . '</option>'; } $returnStr .= "</select></td></tr>"; $returnStr .= "<tr><td>" . Language::labelFloodLanguage() . "</td><td>" . $this->displayLanguagesAdmin(POST_PARAM_LANGUAGE, POST_PARAM_LANGUAGE, getSurveyLanguage()) . "</td></tr>"; $returnStr .= "<tr><td>" . Language::labelFloodMode() . "</td><td>" . $this->displayModesAdmin(POST_PARAM_MODE, POST_PARAM_MODE, getSurveyMode()) . "</td></tr>"; $returnStr .= "<tr><td>" . Language::labelFloodNumber() . "</td><td><input name='number' class='form-control' type='text' /></td></tr>"; $returnStr .= '</table>'; $returnStr .= '</div>'; $returnStr .= '<button type="submit" class="btn btn-default navbar-btn">' . Language::buttonFlood() . '</button>'; $returnStr .= "</form>"; } else { $returnStr .= $this->displayInfo(Language::messageNoSurveysAvailable()); } //END CONTENT $returnStr .= '</p></div> </div>'; //container and wrap $returnStr .= $this->showBottomBar(); $returnStr .= $this->showFooter(false); return $returnStr; }
function save() { // nothing changed, then don't save (so the timestamp remains the same, so it does not appear as if it needs translation again)! if ($this->changed == false) { return; } global $db; //$query = "replace into " . Config::dbSurvey() . "_settings (suid, object, objecttype, name, value, mode, language) values("; $query = "replace into " . Config::dbSurvey() . "_settings (suid, object, objecttype, name, value, mode, language) values(?,?,?,?,?,?,?)"; $suid = $this->getSuid(); $object = $this->getObject(); $objecttype = $this->getObjectType(); $name = $this->getName(); $value = $this->getValue(); if ($this->getMode() != "") { $mode = $this->getMode(); } else { $mode = getSurveyMode(); } if ($this->getLanguage() != "") { $language = $this->getLanguage(); } else { $language = getSurveyLanguage(); } $bp = new BindParam(); $bp->add(MYSQL_BINDING_INTEGER, $suid); $bp->add(MYSQL_BINDING_INTEGER, $object); $bp->add(MYSQL_BINDING_STRING, $objecttype); $bp->add(MYSQL_BINDING_STRING, $name); $bp->add(MYSQL_BINDING_STRING, $value); $bp->add(MYSQL_BINDING_INTEGER, $mode); $bp->add(MYSQL_BINDING_STRING, $language); $db->executeBoundQuery($query, $bp->get()); /* save history if value change */ if ($this->previousvalue != $value) { $track = new Track($suid, $object, $objecttype); $track->addEntry($name, $value); } // update previous values now we saved $this->previousvalue = $this->getValue(); $this->previousobject = $this->getObject(); $this->previoussuid = $this->getSuid(); $this->previouslanguage = $this->getLanguage(); $this->previousmode = $this->getMode(); $this->previousobjecttype = $this->getObjectType(); }
function displayParadataScripts($paradata) { //only for surveys if ($_SESSION['SYSTEM_ENTRY'] != USCIC_SURVEY) { return; } // check config if ($paradata == false) { return; } // http://greensock.com/forums/topic/9059-cross-browser-to-detect-tab-or-window-is-active-so-animations-stay-in-sync-using-html5-visibility-api/ if (!isRegisteredScript("js/TabWindowVisibilityManager.min.js")) { registerScript('js/TabWindowVisibilityManager.min.js'); $returnStr = getScript('js/TabWindowVisibilityManager.min.js'); } if (!isRegisteredScript("js/datetimepicker/moment-min.js")) { registerScript('js/datetimepicker/moment-min.js'); $returnStr .= getScript("js/datetimepicker/moment-min.js"); } //if (!isRegisteredScript("js/zip/lzstring.js")) { // registerScript('js/zip/lzstring.js'); // $returnStr .= '<script type=text/javascript src="js/zip/lzstring.js"></script>'; //} $params = array(POST_PARAM_DEFAULT_LANGUAGE => getDefaultSurveyLanguage(), POST_PARAM_DEFAULT_MODE => getDefaultSurveyMode(), POST_PARAM_RGID => $this->engine->getRgid(), POST_PARAM_LANGUAGE => getSurveyLanguage(), POST_PARAM_MODE => getSurveyMode(), SESSION_PARAM_TEMPLATE => getSurveyTemplate(), POST_PARAM_VERSION => getSurveyVersion(), POST_PARAM_STATEID => $this->engine->getStateId(), POST_PARAM_DISPLAYED => urlencode(serialize($this->engine->getDisplayNumbers())), POST_PARAM_PRIMKEY => $this->engine->getPrimaryKey(), POST_PARAM_SUID => $this->engine->getSuid()); $r = setSessionsParamString($params); $returnStr .= '<script type="text/javascript">'; $str = ' // bind listeners $(document).ready(function(){ '; if (Config::logParadataMouseMovement()) { $str .= '$("html").mousemove(function(event) { window.mousex = event.pageX; window.mousey = event.pageY; });'; } $str .= ' $("html").click(function(event){ var name = ""; if (event.target.name) { name = event.target.name; } logParadata("MC:"+event.pageX+":"+event.pageY+":"+event.which+":"+name); }); $("html").keyup(function(event){ var name = ""; if (event.target.name) { name = event.target.name; } logParadata("KE:"+event.keyCode+":"+name); }); });'; if (Config::logParadataMouseMovement()) { $str .= ' window.mousex = 0; window.mousey = 0; window.lastx = window.mousex; window.lasty = window.mousey; function mousemov() { if (window.lastx != window.mousex || window.lasty != window.mousey) { logParadata("MM:"+window.mousex+":"+window.mousey); window.lastx = window.mousex; window.lasty = window.mousey; } } window.onload=setInterval(mousemov, ' . Config::logParadataMouseMovementInterval() . '); // capture mouse movement every 5 seconds '; } $str .= ' // compress function function compress(string) { return string; //return LZString.compressToUTF16(string); } // function to log paradata function logParadata(para) { $("#pid").val($("#pid").val() + "||" + compress(para + "=" + moment())); //alert($("#pid").val().length); // if length exceeds limit //if ($("#pid").val().length > 1024) { //alert($("#pid").val().length); //sendParadata($("#pid").val()); // send to server //$("#pid").val(""); // reset //} } // function to send paradata to the server function sendParadata(paradata) { $.ajax({ type: "POST", url: "ajax/index.php", data: {ajaxr: "' . $r . '", p: "storeparadata", ' . POST_PARAM_PARADATA . ': paradata}, async: true }); } var firedin = false; var firedout = false; $(window).TabWindowVisibilityManager({ onFocusCallback: function(){ if (firedin == false) { //document.title="visible"; logParadata("FI:"); } firedin = true; firedout = false; }, onBlurCallback: function(){ if (firedout == false) { //document.title="invisible"; logParadata("FO:"); } firedout = true; firedin = false; } });'; $returnStr .= minifyScript($str); $returnStr .= '</script>'; return $returnStr; }
private function storeAnswer($primkey, $variable, $answer, $striptags = true) { global $engine; $localdb = null; if (Config::useTransactions() == true) { global $transdb; $localdb = $transdb; } else { global $db; $localdb = $db; } $dirty = $this->getDirty(); $prim = $primkey; $var = $variable; //$engine->prefixVariableName($variable); $ans = $answer; if ($ans == "" && $ans !== 0) { // preserve '0' as answer $ans = null; } $version = getSurveyVersion(); $language = getSurveyLanguage(); $mode = getSurveyMode(); $suid = getSurvey(); // set session language/mode here if changed through routing! if ($ans != null) { if (strtoupper($variable) == strtoupper(VARIABLE_LANGUAGE)) { $_SESSION['PARAMS'][SESSION_PARAM_LANGUAGE] = $ans; } else { if (strtoupper($variable) == strtoupper(VARIABLE_MODE)) { $_SESSION['PARAMS'][SESSION_PARAM_MODE] = $ans; } else { if (strtoupper($variable) == strtoupper(VARIABLE_VERSION)) { $_SESSION['PARAMS'][SESSION_PARAM_VERSION] = $ans; } else { if (strtoupper($variable) == strtoupper(VARIABLE_TEMPLATE)) { $_SESSION['PARAMS'][SESSION_PARAM_TEMPLATE] = $ans; } } } } } /* set attributes for data record processing in export */ $this->suid = $suid; $this->primkey = $prim; $this->language = $language; $this->mode = $mode; $this->version = $version; $this->ts = date("Y-m-d h:i:s", time()); if (Config::prepareDataQueries() == false) { global $survey; $key = $survey->getDataEncryptionKey(); if ($ans == null && $ans !== 0) { $answer = 'null'; } else { $answer = '"' . prepareDatabaseString($ans, $striptags) . '"'; if ($key != "") { $answer = "aes_encrypt('" . prepareDatabaseString($ans, $striptags) . "', '" . $key . "')"; } } $queryparams = 'suid, primkey, variablename, answer, dirty, version, language, mode'; $queryvalues = prepareDatabaseString($suid); $queryvalues .= ",'" . prepareDatabaseString($prim) . "'"; $queryvalues .= ",'" . prepareDatabaseString($var) . "'"; $queryvalues .= "," . $answer; $queryvalues .= "," . prepareDatabaseString($dirty); $queryvalues .= "," . prepareDatabaseString($version); $queryvalues .= "," . prepareDatabaseString($language); $queryvalues .= "," . prepareDatabaseString($mode); $query = 'REPLACE INTO ' . Config::dbSurveyData() . '_data (' . $queryparams . ') VALUES (' . $queryvalues . ')'; //echo $query; if ($localdb->executeQuery($query)) { $this->variable["answer"] = $ans; // hook for extra storage if (function_exists("storeAnswerExtra")) { storeAnswerExtra($query); } return true; } return false; } else { $bp = new BindParam(); $bp->add(MYSQL_BINDING_STRING, $suid); $bp->add(MYSQL_BINDING_STRING, $prim); $bp->add(MYSQL_BINDING_STRING, $var); $bp->add(MYSQL_BINDING_STRING, $ans); $bp->add(MYSQL_BINDING_INTEGER, $dirty); $bp->add(MYSQL_BINDING_INTEGER, $version); $bp->add(MYSQL_BINDING_INTEGER, $language); $bp->add(MYSQL_BINDING_INTEGER, $mode); global $survey; $key = $survey->getDataEncryptionKey(); $answer = "?"; if ($key != "") { $answer = "aes_encrypt(?, '" . $key . "')"; } $queryparams = 'suid, primkey, variablename, answer, dirty, version, language, mode'; $queryvalues = '?,?,?,' . $answer . ',?,?,?,?'; $query = 'REPLACE INTO ' . Config::dbSurveyData() . '_data (' . $queryparams . ') VALUES (' . $queryvalues . ')'; if ($localdb->executeBoundQuery($query, $bp->get())) { $this->variable["answer"] = $ans; // hook for extra storage if (function_exists("storeAnswerExtra")) { storeAnswerExtra($queryparams, $queryvalues, $bp); } return true; } return false; } }
function showTest($content = "") { $returnStr = $this->showToolsHeader(Language::headerToolsTester()); $returnStr .= $content; $surveys = new Surveys(); $surveys = $surveys->getSurveys(); if (sizeof($surveys) > 0) { $returnStr .= "<form id=refreshform method=post>"; $returnStr .= '<input type=hidden name=page value="translator.tools.test">'; $returnStr .= '<input type=hidden name="' . SMS_POST_SURVEY . '" id="' . SMS_POST_SURVEY . '_hidden" value="' . getSurvey() . '">'; $returnStr .= '<input type=hidden name="' . SMS_POST_MODE . '" id="' . SMS_POST_MODE . '_hidden" value="' . getSurveyMode() . '">'; $returnStr .= '<input type=hidden name="' . SMS_POST_LANGUAGE . '" id="' . SMS_POST_LANGUAGE . '_hidden" value="' . getSurveyLanguage() . '">'; $returnStr .= "</form>"; $returnStr .= "<form method=post>"; $returnStr .= '<input type=hidden name=' . POST_PARAM_SE . ' value="' . addslashes(USCIC_SURVEY) . '">'; $returnStr .= '<input type=hidden name=' . POST_PARAM_PRIMKEY . ' value="' . addslashes(encryptC(generateRandomPrimkey(8), Config::directLoginKey())) . '">'; $returnStr .= '<input type=hidden name=' . POST_PARAM_NEW_PRIMKEY . ' value="1">'; $returnStr .= '<input type=hidden name=' . POST_PARAM_SURVEY_EXECUTION_MODE . ' value="' . SURVEY_EXECUTION_MODE_TEST . '">'; $returnStr .= '<span class="label label-default">' . Language::labelToolsTestSettings() . '</span>'; $returnStr .= '<div class="well well-sm">'; $returnStr .= $this->displayComboBox(); $returnStr .= '<table>'; $returnStr .= '<tr><td>' . Language::labelTestSurvey() . "</td><td><select onchange='document.getElementById(\"" . SMS_POST_SURVEY . "_hidden\").value=this.value; document.getElementById(\"refreshform\").submit();' name=" . POST_PARAM_SUID . " class='selectpicker show-tick'>"; $current = new Survey(getSurvey()); foreach ($surveys as $survey) { $selected = ""; if ($survey->getSuid() == $current->getSuid()) { $selected = "SELECTED"; } $returnStr .= "<option {$selected} value=" . $survey->getSuid() . '>' . $survey->getName() . '</option>'; } $returnStr .= "</select></td></tr>"; $user = new User($_SESSION['URID']); $cm = getSurveyMode(); $cl = getSurveyLanguage(); $modes = $user->getModes(getSurvey()); $langs = explode("~", $user->getLanguages(getSurvey(), getSurveyMode())); $default = $current->getDefaultLanguage(); if (!inArray($default, $langs)) { $langs[] = $default; } $returnStr .= "<tr><td>" . Language::labelTestModeInput() . "</td><td>" . $this->displayModesAdmin(POST_PARAM_MODE, POST_PARAM_MODE, getSurveyMode(), "", implode("~", $modes), "onchange='document.getElementById(\"" . SMS_POST_MODE . "_hidden\").value=this.value; document.getElementById(\"refreshform\").submit();'") . "</td></tr>"; $returnStr .= "<tr><td>" . Language::labelTestLanguage() . "</td><td>" . $this->displayLanguagesAdmin(POST_PARAM_LANGUAGE, POST_PARAM_LANGUAGE, getSurveyLanguage(), true, true, false, "", implode("~", $langs)) . "</td></tr>"; $returnStr .= '</table>'; $returnStr .= '</div>'; $returnStr .= '<button type="submit" class="btn btn-default navbar-btn">' . Language::buttonTest() . '</button>'; $returnStr .= "</form>"; } else { $returnStr .= $this->displayInfo(Language::messageNoSurveysAvailable()); } $returnStr .= '</p></div></div>'; //container and wrap $returnStr .= $this->showBottomBar(); $returnStr .= $this->showFooter(false); return $returnStr; }
function showEditSettingsLanguageRes() { $_SESSION['EDITSURVEY'] = 1; $displaySysAdmin = new DisplaySysAdmin(); $survey = new Survey($_SESSION['SUID']); $ans = loadvar(SETTING_ALLOWED_LANGUAGES); if (!is_array($ans)) { $ans = array($ans); } if (!inArray(loadvar(SETTING_DEFAULT_LANGUAGE), $ans)) { $content = $displaySysAdmin->displayError(Language::messageLanguageSettingsNotChanged()); } else { $current = explode("~", $survey->getAllowedLanguages(getSurveyMode())); $survey->setDefaultLanguage(loadvar(SETTING_DEFAULT_LANGUAGE)); $survey->setChangeLanguage(loadvar(SETTING_CHANGE_LANGUAGE)); $survey->setReentryLanguage(loadvar(SETTING_REENTRY_LANGUAGE)); $survey->setBackLanguage(loadvar(SETTING_BACK_LANGUAGE)); $survey->setAllowedLanguages(implode("~", $ans)); $users = new Users(); $users = $users->getUsers(); $update = loadvar("uridsel"); foreach ($users as $u) { foreach ($current as $c) { if (!inArray($c, $ans)) { $u->removeLanguage($_SESSION['SUID'], getSurveyMode(), $c); } } foreach ($ans as $a) { if (!inArray($a, $current)) { if (inArray($u->getUrid(), $update) || inArray(-1, $update)) { $u->addLanguage($_SESSION['SUID'], getSurveyMode(), $a); } } } $u->saveChanges(); } $content = $displaySysAdmin->displaySuccess(Language::messageLanguageSettingsChanged()); if (!inArray(getSurveyLanguage(), $ans)) { $_SESSION['SURVEY_LANGUAGE'] = $ans[0]; } } /* update last page */ $_SESSION['LASTPAGE'] = substr($_SESSION['LASTPAGE'], 0, strripos($_SESSION['LASTPAGE'], "res")); return $displaySysAdmin->showEditSettingsLanguage($content); }
function showOutputStatisticsParadata($content = "") { $survey = new Survey($_SESSION['SUID']); //echo $_SESSION["SUID"] . '----'; $headers[] = array('link' => setSessionParamsHref(array('page' => 'sysadmin.output'), Language::headerOutput()), 'label' => Language::headerOutputData()); $headers[] = array('link' => setSessionParamsHref(array('page' => 'sysadmin.output.statistics'), Language::headerOutputStatistics()), 'label' => Language::headerOutputStatistics()); $headers[] = array('link' => '', 'label' => Language::headerOutputStatisticsParadata()); $returnStr = $this->showOutputHeader($headers); $returnStr .= $content; $returnStr .= $this->displayComboBox(); $surveys = new Surveys(); $surveys = $surveys->getSurveys(); if (sizeof($surveys) > 0) { $returnStr .= "<form id=refreshform method=post>"; $returnStr .= '<input type=hidden name=page value="sysadmin.output.statistics.paradata">'; $returnStr .= '<input type=hidden name="' . SMS_POST_SURVEY . '" id="' . SMS_POST_SURVEY . '_hidden" value="' . getSurvey() . '">'; $returnStr .= '<input type=hidden name="' . SMS_POST_MODE . '" id="' . SMS_POST_MODE . '_hidden" value="' . getSurveyMode() . '">'; $returnStr .= '<input type=hidden name="' . SMS_POST_LANGUAGE . '" id="' . SMS_POST_LANGUAGE . '_hidden" value="' . getSurveyLanguage() . '">'; $returnStr .= "</form>"; $returnStr .= '<div class="well well-sm">'; $returnStr .= '<table>'; $returnStr .= '<tr><td>' . Language::labelTestSurvey() . "</td><td><select onchange='document.getElementById(\"" . SMS_POST_SURVEY . "_hidden\").value=this.value; document.getElementById(\"refreshform\").submit();' name=" . POST_PARAM_SUID . " class='selectpicker show-tick'>"; $current = new Survey(getSurvey()); foreach ($surveys as $s) { $selected = ""; if ($s->getSuid() == $current->getSuid()) { $selected = "SELECTED"; } $returnStr .= "<option {$selected} value=" . $s->getSuid() . '>' . $s->getName() . '</option>'; } $returnStr .= "</select></td></tr>"; $returnStr .= '</table><br/><br/>'; $sections = $survey->getSections(); foreach ($sections as $section) { $returnStr .= '<a href="index.php?r=' . setSessionsParamString(array('page' => 'sysadmin.output.statistics.paradata.section', 'seid' => $section->getSeid())) . '" class="list-group-item">' . $section->getName() . ' ' . $section->getDescription() . '</a>'; } $returnStr .= "</div>"; } else { $returnStr .= $this->displayInfo(Language::messageNoSurveysAvailable()); } $returnStr .= '</p></div> </div>'; //container and wrap $returnStr .= $this->showBottomBar(); $returnStr .= $this->showFooter(false); return $returnStr; }
} function loadData($data) { if ($data != "") { $this->data = unserialize(gzuncompress($data)); } } function saveState() { global $db, $survey; $key = $survey->getDataEncryptionKey(); $data = "?"; $assignments = "?"; $fills = "?"; if ($key != "") { $data = "aes_encrypt(?, '" . $key . "')"; $assignments = "aes_encrypt(?, '" . $key . "')"; $fills = "aes_encrypt(?, '" . $key . "')"; } $query = "replace into " . Config::dbSurveyData() . "_states (suid, mainseid, seid, parentseid, parentrgid, prefix, parentprefix, stateid, primkey, rgid, displayed, looprgid, loopstring, looplastaction, whilergid, whilelastaction, template, assigned, data, assignments, fills, subdisplays, inlinefields, language, mode, version) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,{$data},{$assignments},{$fills},?,?,?,?,?)"; $bp = new BindParam(); $bp->add(MYSQL_BINDING_INTEGER, $this->suid); $bp->add(MYSQL_BINDING_INTEGER, $this->mainseid); $bp->add(MYSQL_BINDING_INTEGER, $this->seid); $bp->add(MYSQL_BINDING_INTEGER, $this->parentseid); $bp->add(MYSQL_BINDING_INTEGER, $this->parentrgid); $bp->add(MYSQL_BINDING_STRING, $this->prefix); $bp->add(MYSQL_BINDING_STRING, $this->parentprefix); $bp->add(MYSQL_BINDING_INTEGER, $this->stateid); $bp->add(MYSQL_BINDING_STRING, $this->primkey); $bp->add(MYSQL_BINDING_INTEGER, $this->rgid); $bp->add(MYSQL_BINDING_STRING, $this->displayed); $bp->add(MYSQL_BINDING_INTEGER, $this->looprgid); $bp->add(MYSQL_BINDING_STRING, $this->loopstring); if ($this->leftoff == null) { $this->leftoff = ""; } $bp->add(MYSQL_BINDING_STRING, $this->leftoff); $bp->add(MYSQL_BINDING_INTEGER, $this->whilergid); if ($this->whileleftoff == null) { $this->whileleftoff = ""; } $bp->add(MYSQL_BINDING_STRING, $this->whileleftoff); $bp->add(MYSQL_BINDING_STRING, $this->template); $assigned = implode("~", $this->getAssigned()); $bp->add(MYSQL_BINDING_STRING, $assigned); $data = gzcompress($this->saveData()); $assignments = gzcompress($this->saveAssignments()); $fills = gzcompress($this->saveFillText()); $subdisplays = gzcompress($this->saveSubDisplays()); $inlinefields = gzcompress($this->saveInlineFields()); $bp->add(MYSQL_BINDING_STRING, $data); $bp->add(MYSQL_BINDING_STRING, $assignments); $bp->add(MYSQL_BINDING_STRING, $fills); $bp->add(MYSQL_BINDING_STRING, $subdisplays); $bp->add(MYSQL_BINDING_STRING, $inlinefields); $l = getSurveyLanguage(); $m = getSurveyMode();
function isTranslatedAssistance() { $arr = array(SETTING_EMPTY_MESSAGE, SETTING_ERROR_MESSAGE_MINIMUM_LENGTH, SETTING_ERROR_MESSAGE_MAXIMUM_LENGTH, SETTING_ERROR_MESSAGE_MINIMUM_WORDS, SETTING_ERROR_MESSAGE_MAXIMUM_WORDS, SETTING_ERROR_MESSAGE_PATTERN, SETTING_ERROR_MESSAGE_DOUBLE, SETTING_ERROR_MESSAGE_INTEGER, SETTING_ERROR_MESSAGE_MINIMUM_SELECT, SETTING_ERROR_MESSAGE_MAXIMUM_SELECT, SETTING_ERROR_MESSAGE_EXACT_SELECT, SETTING_ERROR_MESSAGE_INVALID_SUB_SELECT, SETTING_ERROR_MESSAGE_INVALID_SELECT, SETTING_ERROR_MESSAGE_RANGE, SETTING_ERROR_MESSAGE_MAXIMUM_CALENDAR, SETTING_ERROR_MESSAGE_INLINE_ANSWERED, SETTING_ERROR_MESSAGE_INLINE_EXACT_REQUIRED, SETTING_ERROR_MESSAGE_INLINE_EXCLUSIVE, SETTING_ERROR_MESSAGE_INLINE_INCLUSIVE, SETTING_ERROR_MESSAGE_INLINE_MINIMUM_REQUIRED, SETTING_ERROR_MESSAGE_INLINE_MAXIMUM_REQUIRED, SETTING_ERROR_MESSAGE_EXACT_REQUIRED, SETTING_ERROR_MESSAGE_MINIMUM_REQUIRED, SETTING_ERROR_MESSAGE_MAXIMUM_REQUIRED, SETTING_ERROR_MESSAGE_EXCLUSIVE, SETTING_ERROR_MESSAGE_INCLUSIVE, SETTING_ERROR_MESSAGE_UNIQUE_REQUIRED); global $survey; $mode = getSurveyMode(); $default = $survey->getDefaultLanguage($mode); foreach ($arr as $a) { $s = $this->getSetting($a); $s1 = $this->getSettingModeLanguage($a, $mode, $default, $this->getObjectType()); if ($s->getValue() == "" && $s1->getValue() != "" || $s1->getTimestamp() > $s->getTimestamp()) { return false; } } return true; }
public function showNavBar() { $returnStr = $this->getHeader(); //language $rgid = $this->engine->getRgid(); $variablenames = $this->getRealVariables(explode("~", $this->engine->getDisplayed())); $variablenamesfull = $this->engine->getDisplayed(); $template = $this->engine->getTemplate(); $click = ""; if ($template != "") { $group = $this->engine->getGroup($template); $click = $this->engine->replaceFills($group->getClickLanguageChange()); } else { $vars = explode("~", $variablenames); $var = $this->engine->getVariableDescriptive($vars[0]); $click = $this->engine->replaceFills($var->getClickLanguageChange()); } $click = str_replace("'", "", $click); $clickmode = ""; if ($template != "") { $group = $this->engine->getGroup($template); $clickmode = $this->engine->replaceFills($group->getClickModeChange()); } else { $vars = explode("~", $variablenames); $var = $this->engine->getVariableDescriptive($vars[0]); $clickmode = $this->engine->replaceFills($var->getClickModeChange()); } $clickmode = str_replace("'", "", $clickmode); // begin language global $survey; $user = new User($_SESSION['URID']); $allowedmodes = $user->getModes(); $allowedlanguages = explode("~", $user->getLanguages(getSurvey(), getSurveyMode())); $default = $survey->getDefaultLanguage(); $ut = "sysadmin"; if ($user->getUserType() == USER_TRANSLATOR) { $ut = "translator"; if (!inArray($default, $allowedlanguages)) { $allowedlanguages[] = $default; } } else { if ($user->GetUserType() == USER_TESTER) { $ut = "tester"; } } if (getSurveyModeAllowChange() == MODE_CHANGE_RESPONDENT_ALLOWED) { //$allowed = explode("~", $survey->getAllowedModes()); if (sizeof($allowedmodes) > 1) { $template = $this->engine->getTemplate(); $returnStr .= '<li class="dropdown">'; $returnStr .= ' <a href="#" class="dropdown-toggle" data-toggle="dropdown">Mode <b class="caret"></b></a>'; $returnStr .= '<ul class="dropdown-menu" role="menu">'; $current = getSurveyMode(); $modes = Common::surveyModes(); foreach ($modes as $key => $mode) { if (inArray($key, $allowedmodes)) { $check = ''; if ($key == $current) { $check = ' <span class="glyphicon glyphicon-ok"></span>'; } //$returnStr .= '<li><a href=# onclick=\'document.getElementById("r").value="' . setSessionsParamString(array_merge(array(SESSION_PARAM_LASTACTION => $this->engine->getLastSurveyAction(), SESSION_PARAM_SURVEY => $survey->getSuid(), SESSION_PARAM_PRIMKEY => $this->primkey, SESSION_PARAM_RGID => $rgid, SESSION_PARAM_VARIABLES => $variablenames, SESSION_PARAM_GROUP => $template, SESSION_PARAM_MODE => $current, SESSION_PARAM_VERSION => getSurveyVersion(), SESSION_PARAM_LANGUAGE => getSurveyLanguage(), SESSION_PARAM_TIMESTAMP => time(), SESSION_PARAM_SEID => $this->engine->getSeid(), SESSION_PARAM_MAINSEID => $this->engine->getMainSeid()), array(SESSION_PARAM_NEWMODE => $key))) . '"; document.getElementById("navigation").value="' . NAVIGATION_MODE_CHANGE . '"; $("#form").submit(); \'>' . $mode . $check . '</a></li>'; $returnStr .= '<li><a href=# onclick=\'document.getElementById("r").value="' . setSessionsParamString(array_merge(array(SESSION_PARAM_SURVEY => $survey->getSuid(), SESSION_PARAM_PRIMKEY => $this->engine->getPrimaryKey(), SESSION_PARAM_RGID => $rgid, SESSION_PARAM_VARIABLES => $variablenames, SESSION_PARAM_GROUP => $template, SESSION_PARAM_MODE => getSurveyMode(), SESSION_PARAM_LANGUAGE => getSurveyLanguage(), SESSION_PARAM_TEMPLATE => getSurveyTemplate(), SESSION_PARAM_TIMESTAMP => time(), SESSION_PARAM_SEID => $this->engine->getSeid(), SESSION_PARAM_MAINSEID => $this->engine->getMainSeid()), array(SESSION_PARAM_NEWMODE => $key))) . '"; document.getElementById("navigation").value="' . addslashes(Language::buttonUpdate()) . '"; ' . $clickmode . ' document.getElementById("form").submit(); \'>' . $mode . $check . '</a></li>'; } } $returnStr .= '</ul></li>'; } } if (getSurveyLanguageAllowChange() == LANGUAGE_CHANGE_RESPONDENT_ALLOWED) { //$allowed = explode("~", $survey->getAllowedLanguages(getSurveyMode())); if (sizeof($allowedlanguages) > 1) { $returnStr .= '<li class="dropdown">'; $returnStr .= ' <a href="#" class="dropdown-toggle" data-toggle="dropdown">Language <b class="caret"></b></a><ul class="dropdown-menu">'; $langs = Language::getLanguagesArray(); //getSurveyLanguages($this->engine->survey); foreach ($langs as $lang) { if (inArray($lang["value"], $allowedlanguages)) { $check = ''; if ($lang["value"] == getSurveyLanguage()) { $check = ' <span class="glyphicon glyphicon-ok"></span>'; } $returnStr .= '<li><a href=# onclick=\'document.getElementById("r").value="' . setSessionsParamString(array_merge(array(SESSION_PARAM_SURVEY => $survey->getSuid(), SESSION_PARAM_PRIMKEY => $this->engine->getPrimaryKey(), SESSION_PARAM_RGID => $rgid, SESSION_PARAM_VARIABLES => $variablenames, SESSION_PARAM_GROUP => $template, SESSION_PARAM_MODE => getSurveyMode(), SESSION_PARAM_LANGUAGE => getSurveyLanguage(), SESSION_PARAM_TEMPLATE => getSurveyTemplate(), SESSION_PARAM_TIMESTAMP => time(), SESSION_PARAM_SEID => $this->engine->getSeid(), SESSION_PARAM_MAINSEID => $this->engine->getMainSeid()), array(SESSION_PARAM_NEWLANGUAGE => $lang["value"]))) . '"; document.getElementById("navigation").value="' . addslashes(Language::buttonUpdate()) . '"; ' . $click . ' document.getElementById("form").submit(); \'>' . $lang["name"] . $check . '</a></li>'; } } $returnStr .= '</ul></li>'; } //end language } $user = new User($_SESSION['URID']); $returnStr .= '<li class="dropdown"> <a href="#" class="dropdown-toggle" data-hover="dropdown" data-toggle="dropdown">' . $user->getName() . ' <b class="caret"></b></a> <ul class="dropdown-menu"> <li class="dropdown-header">' . $this->engine->getPrimaryKey() . '</li> <li class="dropdown-header">' . $variablenamesfull . '</li>'; $windowopen = 'window.open(\'tester/' . setSessionParams(array('reporturid' => $_SESSION['URID'], 'testpage' => 'report', 'reportsuid' => $this->engine->getSuid(), 'reportseid' => $this->engine->getSeid(), 'reportmainseid' => $this->engine->getMainSeid(), 'reportrgid' => $rgid, 'reportdisplayed' => $variablenames, 'reportlanguage' => getSurveyLanguage(), 'reportmode' => getSurveyMode(), 'reportversion' => getSurveyVersion(), 'reportprimkey' => $this->engine->getPrimarykey())) . '\', \'popupWindow\', \'width=770,height=500,scrollbars=yes,top=100,left=100\'); return false;'; $javascript = ' onclick="' . $windowopen . '"'; $returnStr .= '<li><a style="cursor: pointer;" ' . $javascript . '><span class="glyphicon glyphicon-remove-sign"></span> ' . Language::linkReportProblem() . '</a></li>'; $windowopen = 'window.open(\'tester/' . setSessionParams(array('testpage' => 'watch', 'watchurid' => $_SESSION['URID'], 'watchsuid' => $this->engine->getSuid(), 'watchseid' => $this->engine->getSeid(), 'watchmainseid' => $this->engine->getMainSeid(), 'watchrgid' => $rgid, 'watchdisplayed' => $variablenames, 'watchlanguage' => getSurveyLanguage(), 'watchmode' => getSurveyMode(), 'watchversion' => getSurveyVersion(), 'watchprimkey' => $this->engine->getPrimarykey())) . '\', \'popupWindow\', \'width=770,height=650,scrollbars=yes,top=100,left=100\'); return false;'; $javascript = ' onclick="' . $windowopen . '"'; $returnStr .= '<li><a style="cursor: pointer;" ' . $javascript . '><span class="glyphicon glyphicon-zoom-in"></span> ' . Language::linkWatch() . '</a></li>'; $first = $this->engine->isFirstState(); if ($first == false || $first == true && $this->engine->getForward() == true) { if ($this->engine->getForward() == true) { $stateid = $this->engine->getStateId() + 1; } else { $stateid = $this->engine->getStateId(); } $windowopen = 'window.open(\'tester/' . setSessionParams(array('testpage' => 'jumpback', 'jumpurid' => $_SESSION['URID'], 'jumpsuid' => $this->engine->getSuid(), 'jumpstateid' => $stateid, 'jumpprimkey' => $this->engine->getPrimaryKey())) . '\', \'popupWindow\', \'width=770,height=300,scrollbars=yes,top=100,left=100\'); return false;'; $javascript = ' onclick="' . $windowopen . '"'; $returnStr .= '<li><a style="cursor: pointer;" ' . $javascript . '><span class="glyphicon glyphicon-arrow-left"></span> ' . Language::linkJumpBack() . '</a></li>'; } $returnStr .= '<li><a href="' . setSessionParams(array('page' => $ut . '.tools.test', 'suid' => $this->engine->getSuid())) . '&se=' . addslashes(USCIC_SMS) . '"><span class="glyphicon glyphicon-home"></span> ' . Language::linkBackToNubis() . '</a></li> <li class="divider"></li> <li><a href="index.php?rs=1&se=2"><span class="glyphicon glyphicon-log-out"></span> ' . Language::linkLogout() . '</a></li> </ul> </li> </ul> '; $returnStr .= '</div><!--/.nav-collapse --> </div> </div>'; return $returnStr; }
function generateAnswer($var, $queryobject) { $variable = $var->getName(); if ($variable == VARIABLE_LANGUAGE) { if (getSurveyLanguageAllowChange() == LANGUAGE_CHANGE_PROGRAMMATIC_ALLOWED) { $allowed = explode("~", $this->survey->getAllowedLanguages(getSurveyMode())); if (sizeof($allowed) > 1) { $rand = mt_rand(0, sizeof($allowed)); return $allowed[$rand]; } } return getSurveyLanguage(); } if ($variable == VARIABLE_MODE) { if (getSurveyModeAllowChange() == MODE_CHANGE_PROGRAMMATIC_ALLOWED) { $allowed = explode("~", $this->survey->getAllowedModes()); if (sizeof($allowed) > 1) { $rand = mt_rand(0, sizeof($allowed)); return $allowed[$rand]; } } return getSurveyMode(); } if ($variable == VARIABLE_VERSION) { return getSurveyVersion(); } // check for error options $noanswer = array(); if ($var->getIfEmpty() != IF_EMPTY_NOTALLOW) { $noanswer[] = ""; } $allowerror = $var->getIfError() != IF_ERROR_NOTALLOW; // check for dk/rf/na if ($queryobject->getShowDKButton() == BUTTON_YES) { $noanswer[] = ANSWER_DK; } if ($queryobject->getShowRFButton() == BUTTON_YES) { $noanswer[] = ANSWER_RF; } if ($queryobject->getShowNAButton() == BUTTON_YES) { $noanswer[] = ANSWER_NA; } // no answer is an option, then do a random probe if (sizeof($noanswer) > 0) { // 1/50 chance for an empty answer if (mt_rand(1, 50) == 25) { return $noanswer[mt_rand(0, sizeof($noanswer))]; // return a no answer option } } // we return a non-empty answer $answertype = $var->getAnswerType(); switch ($answertype) { case ANSWER_TYPE_INTEGER: return mt_rand(0, PHP_INT_MAX); case ANSWER_TYPE_DOUBLE: return mt_rand(0, PHP_INT_MAX); case ANSWER_TYPE_RANGE: $min = $this->getFill($variable, $var, SETTING_MINIMUM_RANGE); if ($min == "") { $min = 0; } $max = $this->getFill($variable, $var, SETTING_MAXIMUM_RANGE); if ($max == "") { $max = PHP_INT_MAX; } $others = explode(",", $this->getFill($variable, $var, SETTING_OTHER_RANGE)); $r = mt_rand(1, 50); if (sizeof($others) > 0 && $r == 50) { $opt = array(); foreach ($others as $o) { if (is_numeric($o)) { $opt[] = $o; } } if (sizeof($opt) > 0) { return $opt[mt_rand(0, sizeof($opt))]; } else { return mt_rand($min, $max); } } else { return mt_rand($min, $max); } case ANSWER_TYPE_SLIDER: $min = $this->getFill($variable, $var, SETTING_MINIMUM_RANGE); if ($min == "") { $min = 0; } $max = $this->getFill($variable, $var, SETTING_MAXIMUM_RANGE); if ($max == "") { $max = PHP_INT_MAX; } return mt_rand($min, $max); case ANSWER_TYPE_STRING: $min = $this->getFill($variable, $var, SETTING_MINIMUM_LENGTH); if ($min == "") { $min = 5; } $max = $this->getFill($variable, $var, SETTING_MAXIMUM_LENGTH); if ($max == "") { $max = PHP_INT_MAX; } return $this->generateRandomText($min); case ANSWER_TYPE_OPEN: $min = $this->getFill($variable, $var, SETTING_MINIMUM_LENGTH); if ($min == "") { $min = 5; } $max = $this->getFill($variable, $var, SETTING_MAXIMUM_LENGTH); if ($max == "") { $max = PHP_INT_MAX; } return $this->generateRandomText($min); case ANSWER_TYPE_DROPDOWN: /* fall through */ /* fall through */ case ANSWER_TYPE_ENUMERATED: return $this->generateRandomEnumerated($variable, $var); case ANSWER_TYPE_MULTIDROPDOWN: /* fall through */ /* fall through */ case ANSWER_TYPE_SETOFENUMERATED: return $this->generateRandomSetOfEnumerated($variable, $var); case ANSWER_TYPE_DATE: return date("Y-m-d", $this->generateRandomDateTime($variable, $var)); case ANSWER_TYPE_TIME: return $this->generateRandomDateTime($variable, $var); case ANSWER_TYPE_DATETIME: return date("Y-m-d H:i:s", $this->generateRandomDateTime($variable, $var)); case ANSWER_TYPE_CUSTOM: return "1"; case ANSWER_TYPE_SECTION: /* fall through */ /* fall through */ case ANSWER_TYPE_NONE: return ""; // should not happen, but ok // should not happen, but ok default: return ""; } }
} return ""; } function getSettingValue($name, $default = true) { return $this->getSetting($name, $default)->getValue(); } function setSettingValue($name, $value) { /* determine index */ $index = strtoupper($name . getSurveyMode() . getSurveyLanguage() . $this->getObjectType()); /* don't store if follow generic/follow type (these are implicitly derived, * so no need to store them explicitly). Also don't store if empty (if something should be empty * like a text, then enter for example as value). * If we had a value stored before, then we remove it now. */ if (inArray($value, array("", SETTING_FOLLOW_GENERIC, SETTING_FOLLOW_TYPE))) { if (isset($this->settings[$index])) { $s = $this->settings[$index]; if ($s != null) { $s->remove(); } unset($this->settings[$index]); } return; } /* update */ if (isset($this->settings[$index])) { $this->settings[$index]->setValue($value); } else { /* create new */