From acfde37cf136f2081ea04073466452652dd9a169 Mon Sep 17 00:00:00 2001 From: Carsten Schmitz Date: Tue, 30 Jul 2013 13:48:18 +0200 Subject: [PATCH] Fixed issue #7923: INSERTANS SPAN problem in end URL when using then all-in-one page presentation setting --- application/helpers/SurveyRuntimeHelper.php | 2 +- application/helpers/replacements_helper.php | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/application/helpers/SurveyRuntimeHelper.php b/application/helpers/SurveyRuntimeHelper.php index 6beaf17f2b6..e6bf3c9beb6 100644 --- a/application/helpers/SurveyRuntimeHelper.php +++ b/application/helpers/SurveyRuntimeHelper.php @@ -368,7 +368,7 @@ function run($surveyid,$args) { //Before doing the "templatereplace()" function, check the $thissurvey['url'] //field for limereplace stuff, and do transformations! $thissurvey['surveyls_url'] = passthruReplace($thissurvey['surveyls_url'], $thissurvey); - $thissurvey['surveyls_url'] = templatereplace($thissurvey['surveyls_url'], array(), $redata); // to do INSERTANS substitutions + $thissurvey['surveyls_url'] = templatereplace($thissurvey['surveyls_url'], array(), $redata, 'Unspecified', false, NULL, array(), true ); // to do INSERTANS substitutions //END PAGE - COMMIT CHANGES TO DATABASE if ($thissurvey['active'] != "Y") //If survey is not active, don't really commit diff --git a/application/helpers/replacements_helper.php b/application/helpers/replacements_helper.php index 601da2e819f..b7500e443ef 100644 --- a/application/helpers/replacements_helper.php +++ b/application/helpers/replacements_helper.php @@ -10,7 +10,7 @@ * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. * -* $Id$ +* $Id$ */ /** * This function replaces keywords in a text and is mainly intended for templates @@ -23,9 +23,10 @@ * @param mixed $replacements Array of replacements: Array( => * @param boolean $anonymized Determines if token data is being used or just replaced with blanks * @param questionNum - needed to support dynamic JavaScript-based tailoring within questions +* @param bStaticReplacement - Default off, forces non-dynamic replacements without tags (e.g. for the Completed page) * @return string Text with replaced strings */ -function templatereplace($line, $replacements = array(), &$redata = array(), $debugSrc = 'Unspecified', $anonymized = false, $questionNum = NULL, $registerdata = array()) +function templatereplace($line, $replacements = array(), &$redata = array(), $debugSrc = 'Unspecified', $anonymized = false, $questionNum = NULL, $registerdata = array(), $bStaticReplacement = false) { /* global $clienttoken,$token,$sitename,$move,$showxquestions,$showqnumcode,$questioncode; @@ -788,7 +789,7 @@ function templatereplace($line, $replacements = array(), &$redata = array(), $de // Set the array of replacement variables here - don't include curly braces $coreReplacements = array(); - $coreReplacements['ACTIVE'] = (isset($thissurvey['active']) && !($thissurvey['active'] != "Y")); + $coreReplacements['ACTIVE'] = (isset($thissurvey['active']) && !($thissurvey['active'] != "Y")); $coreReplacements['AID'] = isset($questiondetails['aid']) ? $questiondetails['aid'] : ''; $coreReplacements['ANSWER'] = isset($answer) ? $answer : ''; // global $coreReplacements['ANSWERSCLEARED'] = $clang->gT("Answers cleared"); @@ -800,7 +801,7 @@ function templatereplace($line, $replacements = array(), &$redata = array(), $de $coreReplacements['CLOSEWINDOW'] = "".$clang->gT("Close this window").""; $coreReplacements['COMPLETED'] = isset($redata['completed']) ? $redata['completed'] : ''; // global $coreReplacements['DATESTAMP'] = $_datestamp; - $coreReplacements['ENDTEXT'] = $_endtext; + $coreReplacements['ENDTEXT'] = $_endtext; $coreReplacements['EXPIRY'] = $_dateoutput; $coreReplacements['GID'] = isset($questiondetails['gid']) ? $questiondetails['gid']: ''; $coreReplacements['GOOGLE_ANALYTICS_API_KEY'] = $_googleAnalyticsAPIKey; @@ -880,7 +881,8 @@ function templatereplace($line, $replacements = array(), &$redata = array(), $de } // 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); + $line = LimeExpressionManager::ProcessString($line, $questionNum, $doTheseReplacements, false, 3, 1, false, true, $bStaticReplacement); + return $line; }