=>, where is NOT surrounded with curly braces * @param boolean $anonymized Determines if token data is being used or just replaced with blanks * @return string Text with replaced strings */ function templatereplace($line, $replacements=array(), $anonymized=false, $questionNum=NULL) { global $surveylist, $sitename, $clienttoken, $rooturl; global $thissurvey, $imageurl, $defaulttemplate; global $percentcomplete, $move; global $groupname, $groupdescription; global $question; global $showxquestions, $showgroupinfo, $showqnumcode; global $answer, $navigator; global $help, $surveyformat; global $completed, $register_errormsg; global $privacy, $surveyid; global $publicurl, $templatedir, $token; global $assessments, $s_lang; global $errormsg, $clang; global $saved_id; global $totalBoilerplatequestions, $relativeurl; global $languagechanger; global $captchapath, $loadname; // lets sanitize the survey template if (isset($thissurvey['templatedir'])) { $_templatename = $thissurvey['templatedir']; } else { $_templatename = $defaulttemplate; } # $_templatename = validate_templatedir($_templatename); // Not needed: sGetTemplateURL and sgetTemplatePath do validation // create absolute template URL and template dir vars $_templateurl = sGetTemplateURL($_templatename) . '/'; $templatedir = sgetTemplatePath($_templatename); $interviewer=returnglobal('interviewer'); if (empty($interviewer)) { $interviewer = false; } if (!isset($_SESSION['interviewer'])) { $_SESSION['interviewer'] = $interviewer; } if (stripos($line, "")) { //queXS Addition $textfocus = ""; if ($_SESSION['interviewer']) { $textfocus = ''; } $line = str_ireplace("", "\n" . "$textfocus\n" . use_firebug() . "\t", $line); } // Get some vars : move elsewhere ? // surveyformat if (isset($thissurvey['format'])) { $surveyformat = str_replace(array("A", "S", "G"), array("allinone", "questionbyquestion", "groupbygroup"), $thissurvey['format']); } else { $surveyformat = ""; } /*if (isset($thissurvey['allowjumps']) && $thissurvey['allowjumps']=="Y" && $surveyformat!="allinone" && (isset($_SESSION['step']) && $_SESSION['step']>0)){ $surveyformat .= " withindex"; }*/ if (isset($thissurvey['showprogress']) && $thissurvey['showprogress']=="Y"){ $surveyformat .= " showprogress"; } if (isset($thissurvey['showqnumcode'])){ $surveyformat .= " showqnumcode-".$thissurvey['showqnumcode']; } // real survey contact if (isset($surveylist['contact'])) { $_surveycontact = $surveylist['contact']; } elseif (isset($thissurvey['admin']) && $thissurvey['admin'] != "") { $_surveycontact = sprintf($clang->gT("Please contact %s ( %s ) for further assistance."), $thissurvey['admin'], $thissurvey['adminemail']); } else { $_surveycontact = ""; } // If there are non-bracketed replacements to be made do so above this line. // Only continue in this routine if there are bracketed items to replace {} if (strpos($line, "{") === false) { return LimeExpressionManager::ProcessString($line, $questionNum, NULL, false, 1, 1, true); } if ( $showgroupinfo == 'both' || $showgroupinfo == 'name' || ($showgroupinfo == 'choose' && !isset($thissurvey['showgroupinfo'])) || ($showgroupinfo == 'choose' && $thissurvey['showgroupinfo'] == 'B') || ($showgroupinfo == 'choose' && $thissurvey['showgroupinfo'] == 'N') ) { $_groupname = $groupname; } else { $_groupname = ''; }; if ( $showgroupinfo == 'both' || $showgroupinfo == 'description' || ($showgroupinfo == 'choose' && !isset($thissurvey['showgroupinfo'])) || ($showgroupinfo == 'choose' && $thissurvey['showgroupinfo'] == 'B') || ($showgroupinfo == 'choose' && $thissurvey['showgroupinfo'] == 'D') ) { $_groupdescription = $groupdescription; } else { $_groupdescription = ''; }; if (is_array($question)) { $_question = $question['all']; $_question_text = $question['text']; $_question_help = $question['help']; $_question_mandatory = $question['mandatory']; $_question_man_message = $question['man_message']; $_question_valid_message = $question['valid_message']; $_question_file_valid_message = $question['file_valid_message']; if (isset($question['sgq'])) { $_question_sgq = $question['sgq']; $_parts = explode('X',$_question_sgq); $_question_gid = $_parts[1]; } else { $_question_sgq = ''; $_question_gid = ''; } $_question_essentials = $question['essentials']; $_question_class = $question['class']; $_question_man_class = $question['man_class']; $_question_input_error_class = $question['input_error_class']; $_aid = (isset($question['aid']) ? $question['aid'] : ''); $_sqid = (isset($question['sqid']) ? $question['sqid'] : ''); $_question_type = (isset($question['type']) ? $question['type'] : ''); } else { $_question = $question; $_question_text = ''; $_question_help = ''; $_question_mandatory = ''; $_question_man_message = ''; $_question_valid_message = ''; $_question_file_valid_message = ''; $_question_gid = ''; $_question_sgq = ''; $_question_essentials = ''; $_question_class = ''; $_question_man_class = ''; $_question_input_error_class = ''; $_aid = ''; $_sqid = ''; $_question_type = ''; }; global $answer_id; if ($_question_type == '*') { $_question_text = '
' .$_question_text. '
'; } if ( $showqnumcode == 'both' || $showqnumcode == 'number' || ($showqnumcode == 'choose' && !isset($thissurvey['showqnumcode'])) || ($showqnumcode == 'choose' && $thissurvey['showqnumcode'] == 'B') || ($showqnumcode == 'choose' && $thissurvey['showqnumcode'] == 'N') ) { $_question_number = $question['number']; } else { $_question_number = ''; }; if ( $showqnumcode == 'both' || $showqnumcode == 'code' || ($showqnumcode == 'choose' && !isset($thissurvey['showqnumcode'])) || ($showqnumcode == 'choose' && $thissurvey['showqnumcode'] == 'B') || ($showqnumcode == 'choose' && $thissurvey['showqnumcode'] == 'C') ) { $_question_code = $question['code']; } else { $_question_code = ''; } if (isset($_SESSION['therearexquestions'])) { $_totalquestionsAsked = $_SESSION['therearexquestions'] - $totalBoilerplatequestions; } else { $_totalquestionsAsked = 0; } if ( $showxquestions == 'show' || ($showxquestions == 'choose' && !isset($thissurvey['showxquestions'])) || ($showxquestions == 'choose' && $thissurvey['showxquestions'] == 'Y') ) { if ($_totalquestionsAsked < 1) { $_therearexquestions = $clang->gT("There are no questions in this survey"); // Singular } elseif ($_totalquestionsAsked == 1) { $_therearexquestions = $clang->gT("There is 1 question in this survey"); //Singular } else { $_therearexquestions = $clang->gT("There are {NUMBEROFQUESTIONS} questions in this survey."); //Note this line MUST be before {NUMBEROFQUESTIONS} }; } else { $_therearexquestions = ''; }; if (isset($token)) { $_token = $token; } elseif (isset($clienttoken)) { $_token = htmlentities($clienttoken, ENT_QUOTES, 'UTF-8'); } else { $_token = ''; } if (isset($thissurvey['surveyls_dateformat'])) { $dateformatdetails = getDateFormatData($thissurvey['surveyls_dateformat']); } else { $dateformatdetails = getDateFormatData(); } if (isset($thissurvey['expiry'])) { $_datetimeobj = new Date_Time_Converter($thissurvey['expiry'], "Y-m-d"); $_dateoutput = $_datetimeobj->convert($dateformatdetails['phpdate']); } else { $_dateoutput = '-'; } $_submitbutton = ""; if (isset($thissurvey['surveyls_url']) and $thissurvey['surveyls_url'] != "") { if (trim($thissurvey['surveyls_urldescription']) != '') { $_linkreplace = "{$thissurvey['surveyls_urldescription']}"; } else { $_linkreplace = "{$thissurvey['surveyls_url']}"; } } else { $_linkreplace=''; } if (isset($clienttoken)) { $token = $clienttoken; } else { $token = ''; } if (!isset($_SESSION['s_lang'])) { $_s_lang = 'en'; } else { $_s_lang = $_SESSION['s_lang']; } // CLEARALL if( $surveyid && !isCompleted($surveyid,$saved_id)) { $_clearall = "gT("Are you sure you want to clear all your responses?", 'js') . "')) {\nwindow.open('{$publicurl}/index.php?sid=$surveyid&move=clearall&lang=" . $_s_lang; if (returnglobal('token')) { $_clearall .= "&token={$_token}"; } $_clearall .= "', '_self')}\" />"; } else { $_clearall=""; // This survey are already completed or surveyid not set, then don't have access to clearallbtn } if (isset($_SESSION['datestamp'])) { $_datestamp = $_SESSION['datestamp']; } else { $_datestamp = '-'; } //Set up save/load feature if (isset($thissurvey['allowsave']) and $thissurvey['allowsave'] == "Y") { // Find out if the user has any saved data if ($thissurvey['format'] == 'A') { if ($thissurvey['tokenanswerspersistence'] != 'Y' || !tableExists('tokens_'.$surveyid)) { $_saveall = "\t\t\t" . "\n\t\t\t"; // Show Save So Far button } else { $_saveall = "\t\t\t"; // Show Save So Far button }; } elseif (!isset($_SESSION['step']) || !$_SESSION['step']) { //First page, show LOAD if ($thissurvey['tokenanswerspersistence'] != 'Y' || !tableExists('tokens_'.$surveyid)) { $_saveall = "\t\t\t"; } else { $_saveall = ''; }; } elseif (isset($_SESSION['scid']) && (isset($move) && $move == "movelast")) { //Already saved and on Submit Page, dont show Save So Far button $_saveall = ''; } else { $_saveall = ""; // Show Save So Far button } } else { $_saveall = ""; } $_templatecss = "\n"; if (getLanguageRTL($clang->langcode)) { $_templatecss.="\n"; } if (FlattenText($help, true) != '') { If (!isset($helpicon)) { if (file_exists($templatedir . '/help.gif')) { $helpicon = $_templateurl . 'help.gif'; } elseif (file_exists($templatedir . '/help.png')) { $helpicon = $_templateurl . 'help.png'; } else { $helpicon = $imageurl . "/help.gif"; } } $_questionhelp = "Help".$help; } else { $_questionhelp = $help; } if (isset($thissurvey['allowprev']) && $thissurvey['allowprev'] == "N") { $_strreview = ""; } else { $_strreview = $clang->gT("If you want to check any of the answers you have made, and/or change them, you can do that now by clicking on the [<< prev] button and browsing through your responses."); } if (isset($thissurvey['active']) and $thissurvey['active'] == "N") { $_restart = "gT("Restart this Survey") . ""; } else { $restart_extra = ""; $restart_token = returnglobal('token'); if (!empty($restart_token)) $restart_extra .= "&token=" . urlencode($restart_token); else $restart_extra = "&newtest=Y"; if (!empty($_GET['lang'])) $restart_extra .= "&lang=" . returnglobal('lang'); $_restart = "" . $clang->gT("Restart this Survey") . ""; } if (isset($thissurvey['anonymized']) && $thissurvey['anonymized'] == 'Y') { $_savealert = $clang->gT("To remain anonymous please use a pseudonym as your username, also an email address is not required."); } else { $_savealert = ""; } $_return_to_survey = "gT("Return To Survey") . ""; $_saveform = "\n"; } $_saveform .= "\n" . "\n" . "
" . $clang->gT("Name") . ":" . $clang->gT("Password") . ":" . $clang->gT("Repeat Password") . ":" . $clang->gT("Your Email") . ":gT("Security Question") . ":
"; $_loadform = "\n" . "\n"; if (isset($thissurvey['usecaptcha']) && function_exists("ImageCreate") && captcha_enabled('saveandloadscreen', $thissurvey['usecaptcha'])) { $_loadform .="\n"; } $_loadform .="\n" . "
" . $clang->gT("Saved name") . ":
" . $clang->gT("Password") . ":
" . $clang->gT("Security Question") . ":
\n"; $_registerform = "
\n"; if (!isset($_REQUEST['lang'])) { $_reglang = GetBaseLanguageFromSurveyID($surveyid); } else { $_reglang = returnglobal('lang'); } $_registerform .= "\n"; $_registerform .= "\n"; $_registerform.="\n" . "" . "\n" . "\n" . "\n"; } /* if(isset($thissurvey['attribute1']) && $thissurvey['attribute1']) { $_registerform .= "\n" ."\n" . "
" . $clang->gT("First name") . ":" . $clang->gT("Last name") . ":" . $clang->gT("Email address") . ":gT("Security Question") . ":
".$thissurvey['attribute1'].":\n" ."gT("Continue") . "' />" . "
\n" . "
\n"; if (!is_null($surveyid) && function_exists('doAssessment')) { $assessmentdata = doAssessment($surveyid, true); $_assessment_current_total = $assessmentdata['total']; } else { $_assessment_current_total = ''; } if (isset($thissurvey['googleanalyticsapikey']) && trim($thissurvey['googleanalyticsapikey']) != '') { $_googleAnalyticsAPIKey = trim($thissurvey['googleanalyticsapikey']); } else { $_googleAnalyticsAPIKey = trim(getGlobalSetting('googleanalyticsapikey')); } $_googleAnalyticsStyle = (isset($thissurvey['googleanalyticsstyle']) ? $thissurvey['googleanalyticsstyle'] : '0'); $_googleAnalyticsJavaScript = ''; if ($_googleAnalyticsStyle != '' && $_googleAnalyticsStyle != 0 && $_googleAnalyticsAPIKey != '') { switch ($_googleAnalyticsStyle) { case '1': // Default Google Tracking $_googleAnalyticsJavaScript = << var _gaq = _gaq || []; _gaq.push(['_setAccount', '$_googleAnalyticsAPIKey']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); EOD; break; case '2': // SurveyName-[SID]/[GSEQ]-GroupName - create custom GSEQ based upon page step $moveInfo = LimeExpressionManager::GetLastMoveResult(); if (is_null($moveInfo)) { $gseq='welcome'; } else if ($moveInfo['finished']) { $gseq='finished'; } else if (isset($moveInfo['at_start']) && $moveInfo['at_start']) { $gseq='welcome'; } else if (is_null($_groupname)) { $gseq='printanswers'; } else { $gseq=$moveInfo['gseq']+1; } $_trackURL = htmlentities($thissurvey['name'] . '-[' . $surveyid . ']/[' . $gseq . ']-' . $_groupname, ENT_QUOTES); $_googleAnalyticsJavaScript = << var _gaq = _gaq || []; _gaq.push(['_setAccount', '$_googleAnalyticsAPIKey']); _gaq.push(['_trackPageview','$_trackURL']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); EOD; break; } } $_endtext = ''; if (isset($thissurvey['surveyls_endtext']) && trim($thissurvey['surveyls_endtext'])!='') { $_endtext = $thissurvey['surveyls_endtext']; } // Set the array of replacement variables here - don't include curly braces // Please put any conditional logic above this section. Here below should just be an alphabetical list of replacement values with no embedded logic. $coreReplacements = array(); $coreReplacements['ACTIVE'] = (isset($thissurvey['active']) && !($thissurvey['active'] != "Y")); $coreReplacements['AID'] = $_aid; // global $coreReplacements['ANSWER'] = $answer; // global $coreReplacements['ANSWERSCLEARED'] = $clang->gT("Answers Cleared"); $coreReplacements['ASSESSMENTS'] = $assessments; // global $coreReplacements['ASSESSMENT_CURRENT_TOTAL'] = $_assessment_current_total; $coreReplacements['ASSESSMENT_HEADING'] = $clang->gT("Your Assessment"); $coreReplacements['CHECKJAVASCRIPT'] = ""; $coreReplacements['CLEARALL'] = $_clearall; $coreReplacements['CLOSEWINDOW'] = "".$clang->gT("Close this window").""; $coreReplacements['COMPLETED'] = $completed; // global $coreReplacements['DATESTAMP'] = $_datestamp; $coreReplacements['ENDTEXT'] = $_endtext; $coreReplacements['EXPIRY'] = $_dateoutput; $coreReplacements['GID'] = $_question_gid; $coreReplacements['GOOGLE_ANALYTICS_API_KEY'] = $_googleAnalyticsAPIKey; $coreReplacements['GOOGLE_ANALYTICS_JAVASCRIPT'] = $_googleAnalyticsJavaScript; $coreReplacements['GROUPDESCRIPTION'] = $_groupdescription; $coreReplacements['GROUPNAME'] = $_groupname; $coreReplacements['LANG'] = $clang->getlangcode(); $coreReplacements['LANGUAGECHANGER'] = $languagechanger; // global $coreReplacements['LOADERROR'] = $errormsg; // global $coreReplacements['LOADFORM'] = $_loadform; $coreReplacements['LOADHEADING'] = $clang->gT("Load A Previously Saved Survey"); $coreReplacements['LOADMESSAGE'] = $clang->gT("You can load a survey that you have previously saved from this screen.")."
".$clang->gT("Type in the 'name' you used to save the survey, and the password.")."
"; $coreReplacements['NAVIGATOR'] = $navigator; // global $coreReplacements['NOSURVEYID'] = $surveylist['nosid']; // global $coreReplacements['NUMBEROFQUESTIONS'] = $_totalquestionsAsked; $coreReplacements['PASSTHRULABEL'] = ''; $coreReplacements['PASSTHRUVALUE'] = ''; $coreReplacements['PERCENTCOMPLETE'] = $percentcomplete; // global $coreReplacements['PRIVACY'] = $privacy; // global $coreReplacements['PRIVACYMESSAGE'] = "".$clang->gT("A Note On Privacy")."
".$clang->gT("This survey is anonymous.")."
".$clang->gT("The record kept of your survey responses does not contain any identifying information about you unless a specific question in the survey has asked for this. If you have responded to a survey that used an identifying token to allow you to access the survey, you can rest assured that the identifying token is not kept with your responses. It is managed in a separate database, and will only be updated to indicate that you have (or haven't) completed this survey. There is no way of matching identification tokens with survey responses in this survey."); $coreReplacements['QID'] = isset($questionNum) ? $questionNum : ''; $coreReplacements['QUESTION'] = $_question; $coreReplacements['QUESTIONHELP'] = $_questionhelp; $coreReplacements['QUESTIONHELPPLAINTEXT'] = strip_tags(addslashes($help)); // global $coreReplacements['QUESTION_CLASS'] = $_question_class; $coreReplacements['QUESTION_CODE'] = $_question_code; $coreReplacements['QUESTION_ESSENTIALS'] = $_question_essentials; $coreReplacements['QUESTION_FILE_VALID_MESSAGE'] = $_question_file_valid_message; $coreReplacements['QUESTION_HELP'] = $_question_help; $coreReplacements['QUESTION_INPUT_ERROR_CLASS'] = $_question_input_error_class; $coreReplacements['QUESTION_MANDATORY'] = $_question_mandatory; $coreReplacements['QUESTION_MAN_CLASS'] = $_question_man_class; $coreReplacements['QUESTION_MAN_MESSAGE'] = $_question_man_message; $coreReplacements['QUESTION_NUMBER'] = $_question_number; $coreReplacements['QUESTION_TEXT'] = $_question_text; $coreReplacements['QUESTION_VALID_MESSAGE'] = $_question_valid_message; $coreReplacements['REGISTERERROR'] = $register_errormsg; // global $coreReplacements['REGISTERFORM'] = $_registerform; $coreReplacements['REGISTERMESSAGE1'] = $clang->gT("You must be registered to complete this survey"); $coreReplacements['REGISTERMESSAGE2'] = $clang->gT("You may register for this survey if you wish to take part.")."
\n".$clang->gT("Enter your details below, and an email containing the link to participate in this survey will be sent immediately."); $coreReplacements['RESTART'] = $_restart; $coreReplacements['RETURNTOSURVEY'] = $_return_to_survey; $coreReplacements['SAVE'] = $_saveall; $coreReplacements['SAVEALERT'] = $_savealert; $coreReplacements['SAVEDID'] = $saved_id; // global $coreReplacements['SAVEERROR'] = $errormsg; // global - same as LOADERROR $coreReplacements['SAVEFORM'] = $_saveform; $coreReplacements['SAVEHEADING'] = $clang->gT("Save Your Unfinished Survey"); $coreReplacements['SAVEMESSAGE'] = $clang->gT("Enter a name and password for this survey and click save below.")."
\n".$clang->gT("Your survey will be saved using that name and password, and can be completed later by logging in with the same name and password.")."

\n".$clang->gT("If you give an email address, an email containing the details will be sent to you.")."

\n".$clang->gT("After having clicked the save button you can either close this browser window or continue filling out the survey."); $coreReplacements['SGQ'] = $_question_sgq; $coreReplacements['SID'] = $surveyid; // global $coreReplacements['SITENAME'] = $sitename; // global $coreReplacements['SQID'] = $_sqid; // global $coreReplacements['SUBMITBUTTON'] = $_submitbutton; $coreReplacements['SUBMITCOMPLETE'] = "".$clang->gT("Thank you!")."

".$clang->gT("You have completed answering the questions in this survey.")."


".$clang->gT("Click on 'Submit' now to complete the process and save your answers."); $coreReplacements['SUBMITREVIEW'] = $_strreview; $coreReplacements['SURVEYCONTACT'] = $_surveycontact; $coreReplacements['SURVEYDESCRIPTION'] = (isset($thissurvey['description']) ? $thissurvey['description'] : ''); $coreReplacements['SURVEYFORMAT'] = $surveyformat; // global $coreReplacements['SURVEYLANGAGE'] = $clang->langcode; // this misspelling is kept for legacy reasons $coreReplacements['SURVEYLANGUAGE'] = $clang->langcode; $coreReplacements['SURVEYLIST'] = $surveylist['list']; // global $coreReplacements['SURVEYLISTHEADING'] = $surveylist['listheading']; // global $coreReplacements['SURVEYNAME'] = $thissurvey['name']; // global $coreReplacements['TEMPLATECSS'] = $_templatecss; $coreReplacements['TEMPLATEURL'] = $_templateurl; $coreReplacements['THEREAREXQUESTIONS'] = $_therearexquestions; if (!$anonymized) $coreReplacements['TOKEN'] = $_token; $coreReplacements['URL'] = $_linkreplace; $coreReplacements['WELCOME'] = (isset($thissurvey['welcome']) ? $thissurvey['welcome'] : ''); //queXS Addition include_once("quexs.php"); $coreReplacements['IS_INTERVIEWER'] = $_SESSION['interviewer']; $coreReplacements = array_merge($coreReplacements,quexs_core_replace()); if (!is_null($replacements) && is_array($replacements)) { $doTheseReplacements = array_merge($coreReplacements, $replacements); // so $replacements overrides core values } else { $doTheseReplacements = $coreReplacements; } // Now do all of the replacements - In rare cases, need to do 3 deep recursion, that that is default $line = LimeExpressionManager::ProcessString($line, $questionNum, $doTheseReplacements, false, 3, 1); return $line; } /** * insertAnsReplace() takes a string and looks for any {INSERTANS:xxxx} variables * which it then, one by one, substitutes the SGQA code with the relevant answer * from the session array containing responses * * The operations of this function were previously in the templatereplace function * but have been moved to a function of their own to make it available * to other areas of the script. * * @param mixed $line string - the string to iterate, and then return * * @return string This string is returned containing the substituted responses * */ function insertansReplace($line) { return $line; } /** * tokenReplace() takes a string and looks for any {TOKEN:xxxx} variables * which it then, one by one, substitutes the TOKEN code with the relevant token * from the session array containing token information * * The operations of this function were previously in the templatereplace function * but have been moved to a function of their own to make it available * to other areas of the script. * * @param string $line the string to iterate, and then return * @param boolean $anynomized Sets if the underlying token data should be not used * * @return string This string is returned containing the substituted responses * */ function tokenReplace($line, $anonymized=false) { return $line; } /** * passthruReplace() takes a string and looks for {PASSTHRULABEL}, {PASSTHRUVALUE} and {PASSTHRU:myarg} variables * which it then substitutes for passthru data sent in the initial URL and stored * in the session array containing responses * * @param mixed $line string - the string to iterate, and then return * @param mixed $thissurvey string - the string containing the surveyinformation * @return string This string is returned containing the substituted responses * */ function PassthruReplace($line, $thissurvey) { $line=str_replace("{PASSTHRULABEL}", $thissurvey['passthrulabel'], $line); $line=str_replace("{PASSTHRUVALUE}", $thissurvey['passthruvalue'], $line); if (!isset($_SESSION['ls_initialquerystr'])) return $line; // Replacement for variable passthru argument like {PASSTHRU:myarg} while (strpos($line,"{PASSTHRU:") !== false) { $p1 = strpos($line,"{PASSTHRU:"); // startposition $p2 = $p1 + 10; // position of the first arg char $p3 = strpos($line,"}",10); // position of the last arg char $cmd=substr($line,$p1,$p3-$p1+1); // extract the complete passthru like "{PASSTHRU:myarg}" $arg=substr($line,$p2,$p3-$p2); // extract the arg to passthru (like "myarg") // lookup for the fitting arg $qstring = $_SESSION['ls_initialquerystr']; // get initial query_string parse_str($qstring, $keyvalue); // split into key and value $match = 0; // prevent an endless loop if there is no arg in url foreach ($keyvalue as $key=>$value) // lookup loop { if ($key == $arg) // if match { $line=str_replace($cmd, $arg . "=" . $value, $line); // replace $match = 1; break; } } if ($match == 0) { $line=str_replace($cmd, $arg . "=", $line); // clears "{PASSTHRU:myarg} to "myarg=" if there was no myarg in calling url } } return $line; } /** * Replacement of old dTexts::run for compatibility issue * To be removed from other scriptq * replace by ReplaceFields function OR * LimeExpressionManager::ProcessString($text,$questionNum); * */ function dTexts__run($text,$questionNum=NULL) { //return LimeExpressionManager::ProcessString($text,$questionNum); return $text; }