View Issue Details

This bug affects 1 person(s).
 12
IDProjectCategoryView StatusLast Update
18401Bug reportsExpression Managerpublic2023-06-19 11:52
ReporterDenisChenu Assigned Togabrieljenik  
PrioritynormalSeveritypartial_block 
Status closedResolutionfixed 
Product Version3.28.x 
Summary18401: Unable to use checkdate function if debug set
Description

If you try to use checkdate function if debug is set : your have a PHP Warning exception

Steps To Reproduce

Steps to reproduce

Import included survey
Launch, move next : error
Try to edit question 1 : erro

Expected result

PHP warning
checkdate() expects parameter 1 to be int, string given

Actual result

return false without exception

TagsNo tags attached.
Attached Files
PHP warning.html (94,877 bytes)   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>PHP warning</title>

<style type="text/css">
/*<![CDATA[*/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;margin:0;padding:0;}
body{line-height:1;}
ol,ul{list-style:none;}
blockquote,q{quotes:none;}
blockquote:before,blockquote:after,q:before,q:after{content:none;}
:focus{outline:0;}
ins{text-decoration:none;}
del{text-decoration:line-through;}
table{border-collapse:collapse;border-spacing:0;}

body {
	font: normal 9pt "Verdana";
	color: #000;
	background: #fff;
}

h1 {
	font: normal 18pt "Verdana";
	color: #f00;
	margin-bottom: .5em;
}

h2 {
	font: normal 14pt "Verdana";
	color: #800000;
	margin-bottom: .5em;
}

h3 {
	font: bold 11pt "Verdana";
}

pre {
	font: normal 11pt Menlo, Consolas, "Lucida Console", Monospace;
}

pre span.error {
	display: block;
	background: #fce3e3;
}

pre span.ln {
	color: #999;
	padding-right: 0.5em;
	border-right: 1px solid #ccc;
}

pre span.error-ln {
	font-weight: bold;
}

.container {
	margin: 1em 4em;
}

.version {
	color: gray;
	font-size: 8pt;
	border-top: 1px solid #aaa;
	padding-top: 1em;
	margin-bottom: 1em;
}

.message {
	color: #000;
	padding: 1em;
	font-size: 11pt;
	background: #f3f3f3;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;
	border-radius: 10px;
	margin-bottom: 1em;
	line-height: 160%;
}

.source {
	margin-bottom: 1em;
}

.code pre {
	background-color: #ffe;
	margin: 0.5em 0;
	padding: 0.5em;
	line-height: 125%;
	border: 1px solid #eee;
}

.source .file {
	margin-bottom: 1em;
	font-weight: bold;
}

.traces {
	margin: 2em 0;
}

.trace {
	margin: 0.5em 0;
	padding: 0.5em;
}

.trace.app {
	border: 1px dashed #c00;
}

.trace .number {
	text-align: right;
	width: 2em;
	padding: 0.5em;
}

.trace .content {
	padding: 0.5em;
}

.trace .plus,
.trace .minus {
	display:inline;
	vertical-align:middle;
	text-align:center;
	border:1px solid #000;
	color:#000;
	font-size:10px;
	line-height:10px;
	margin:0;
	padding:0 1px;
	width:10px;
	height:10px;
}

.trace.collapsed .minus,
.trace.expanded .plus,
.trace.collapsed pre {
	display: none;
}

.trace-file {
	cursor: pointer;
	padding: 0.2em;
}

.trace-file:hover {
	background: #f0ffff;
}
/*]]>*/
</style>
</head>

<body>
<div class="container">
	<h1>PHP warning</h1>

	<p class="message">
		checkdate() expects parameter 1 to be int, string given	</p>

	<div class="source">
		<p class="file">/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(2064)</p>
		<div class="code"><pre><span class="ln">2052</span>                                         } else {
<span class="ln">2053</span>                                             $result = false;
<span class="ln">2054</span>                                         }
<span class="ln">2055</span>                                         break;
<span class="ln">2056</span>                                     default:
<span class="ln">2057</span>                                         $result = @$funcName($params[0], $params[1]);
<span class="ln">2058</span>                                         $result = $result ? $result : false;
<span class="ln">2059</span>                             }
<span class="ln">2060</span>                         }
<span class="ln">2061</span>                         break;
<span class="ln">2062</span>                         case 3:
<span class="ln">2063</span>                             if (!$this-&gt;RDP_onlyparse) {
<span class="error"><span class="ln error-ln">2064</span>                                 $result = $funcName($params[0], $params[1], $params[2]);
</span><span class="ln">2065</span>                             }
<span class="ln">2066</span>                             break;
<span class="ln">2067</span>                         case 4:
<span class="ln">2068</span>                             if (!$this-&gt;RDP_onlyparse) {
<span class="ln">2069</span>                                 $result = $funcName($params[0], $params[1], $params[2], $params[3]);
<span class="ln">2070</span>                             }
<span class="ln">2071</span>                             break;
<span class="ln">2072</span>                         case 5:
<span class="ln">2073</span>                             if (!$this-&gt;RDP_onlyparse) {
<span class="ln">2074</span>                                 $result = $funcName($params[0], $params[1], $params[2], $params[3], $params[4]);
<span class="ln">2075</span>                             }
<span class="ln">2076</span>                             break;
</pre></div>	</div>

	<div class="traces">
		<h2>Stack Trace</h2>
				<table style="width:100%;">
						<tbody><tr class="trace app expanded">
			<td class="number">
				#0			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(2064): <strong>checkdate</strong>("", "", "")				</div>

				<div class="code"><pre><span class="ln">2059</span>                             }
<span class="ln">2060</span>                         }
<span class="ln">2061</span>                         break;
<span class="ln">2062</span>                         case 3:
<span class="ln">2063</span>                             if (!$this-&gt;RDP_onlyparse) {
<span class="error"><span class="ln error-ln">2064</span>                                 $result = $funcName($params[0], $params[1], $params[2]);
</span><span class="ln">2065</span>                             }
<span class="ln">2066</span>                             break;
<span class="ln">2067</span>                         case 4:
<span class="ln">2068</span>                             if (!$this-&gt;RDP_onlyparse) {
<span class="ln">2069</span>                                 $result = $funcName($params[0], $params[1], $params[2], $params[3]);
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#1			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(823): <strong>ExpressionManager</strong>-&gt;<strong>RDP_RunFunction</strong>(array("checkdate", 95, "WORD"), array("", "", ""))				</div>

				<div class="code"><pre><span class="ln">818</span>                     }
<span class="ln">819</span>                 }
<span class="ln">820</span>             }
<span class="ln">821</span>             if ($token3[2] == 'RP') {
<span class="ln">822</span>                 ++$this-&gt;RDP_pos; // consume the token so can process next clause
<span class="error"><span class="ln error-ln">823</span>                 return $this-&gt;RDP_RunFunction($funcNameToken, $params);
</span><span class="ln">824</span>             } else {
<span class="ln">825</span>                 if ($this-&gt;RDP_EvaluateExpression()) {
<span class="ln">826</span>                     $value = $this-&gt;RDP_StackPop();
<span class="ln">827</span>                     if (is_null($value)) {
<span class="ln">828</span>                         return false;
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#2			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(630): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateFunction</strong>()				</div>

				<div class="code"><pre><span class="ln">625</span>                 return true;
<span class="ln">626</span>                 // NB: No break needed
<span class="ln">627</span>             case 'WORD':
<span class="ln">628</span>             case 'SGQA':
<span class="ln">629</span>                 if (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count and $this-&gt;RDP_tokens[($this-&gt;RDP_pos + 1)][2] == 'LP') {
<span class="error"><span class="ln error-ln">630</span>                     return $this-&gt;RDP_EvaluateFunction();
</span><span class="ln">631</span>                 } else {
<span class="ln">632</span>                     if ($this-&gt;RDP_isValidVariable($token[0])) {
<span class="ln">633</span>                         $this-&gt;varsUsed[] = $token[0]; // add this variable to list of those used in this equation
<span class="ln">634</span>                         if (preg_match("/\.(gid|grelevance|gseq|jsName|mandatory|qid|qseq|question|readWrite|relevance|rowdivid|sgqa|type)$/", $token[0])) {
<span class="ln">635</span>                             $relStatus = 1; // static, so always relevant
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#3			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(968): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateConstantVarOrFunction</strong>()				</div>

				<div class="code"><pre><span class="ln">963</span>                 $this-&gt;RDP_AddError(self::gT("Expected right parentheses"), $token);
<span class="ln">964</span>                 return false;
<span class="ln">965</span>             }
<span class="ln">966</span>         } else {
<span class="ln">967</span>             --$this-&gt;RDP_pos;
<span class="error"><span class="ln error-ln">968</span>             return $this-&gt;RDP_EvaluateConstantVarOrFunction();
</span><span class="ln">969</span>         }
<span class="ln">970</span>     }
<span class="ln">971</span> 
<span class="ln">972</span>     /**
<span class="ln">973</span>      * Process "a op b" where op in (lt, gt, le, ge, &lt;, &gt;, &lt;=, &gt;=)
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#4			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(1038): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluatePrimaryExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">1033</span>                     --$this-&gt;RDP_pos;
<span class="ln">1034</span>                     return $this-&gt;RDP_EvaluatePrimaryExpression();
<span class="ln">1035</span>             }
<span class="ln">1036</span>         } else {
<span class="ln">1037</span>             --$this-&gt;RDP_pos;
<span class="error"><span class="ln error-ln">1038</span>             return $this-&gt;RDP_EvaluatePrimaryExpression();
</span><span class="ln">1039</span>         }
<span class="ln">1040</span>     }
<span class="ln">1041</span> 
<span class="ln">1042</span>     /**
<span class="ln">1043</span>      * Returns array of all JavaScript-equivalent variable names used when parsing a string via sProcessStringContainingExpressions
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#5			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(912): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateUnaryExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">907</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">908</span>      */
<span class="ln">909</span> 
<span class="ln">910</span>     private function RDP_EvaluateMultiplicativeExpression()
<span class="ln">911</span>     {
<span class="error"><span class="ln error-ln">912</span>         if (!$this-&gt;RDP_EvaluateUnaryExpression()) {
</span><span class="ln">913</span>             return  false;
<span class="ln">914</span>         }
<span class="ln">915</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">916</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">917</span>             if ($token[2] == 'BINARYOP') {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#6			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(578): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateMultiplicativeExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">573</span>      * Process "a op b" where op in (+,-,concatenate)
<span class="ln">574</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">575</span>      */
<span class="ln">576</span>     private function RDP_EvaluateAdditiveExpression()
<span class="ln">577</span>     {
<span class="error"><span class="ln error-ln">578</span>         if (!$this-&gt;RDP_EvaluateMultiplicativeExpression()) {
</span><span class="ln">579</span>             return false;
<span class="ln">580</span>         }
<span class="ln">581</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">582</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">583</span>             if ($token[2] == 'BINARYOP') {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#7			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(978): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateAdditiveExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">973</span>      * Process "a op b" where op in (lt, gt, le, ge, &lt;, &gt;, &lt;=, &gt;=)
<span class="ln">974</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">975</span>      */
<span class="ln">976</span>     private function RDP_EvaluateRelationExpression()
<span class="ln">977</span>     {
<span class="error"><span class="ln error-ln">978</span>         if (!$this-&gt;RDP_EvaluateAdditiveExpression()) {
</span><span class="ln">979</span>             return false;
<span class="ln">980</span>         }
<span class="ln">981</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">982</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">983</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#8			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(670): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateRelationExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">665</span>      * Process "a == b", "a eq b", "a != b", "a ne b"
<span class="ln">666</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">667</span>      */
<span class="ln">668</span>     private function RDP_EvaluateEqualityExpression()
<span class="ln">669</span>     {
<span class="error"><span class="ln error-ln">670</span>         if (!$this-&gt;RDP_EvaluateRelationExpression()) {
</span><span class="ln">671</span>             return false;
<span class="ln">672</span>         }
<span class="ln">673</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">674</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">675</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#9			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(854): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateEqualityExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">849</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">850</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">851</span>             switch (strtolower($token[0])) {
<span class="ln">852</span>                 case '&amp;&amp;':
<span class="ln">853</span>                 case 'and':
<span class="error"><span class="ln error-ln">854</span>                     if ($this-&gt;RDP_EvaluateEqualityExpression()) {
</span><span class="ln">855</span>                         if (!$this-&gt;RDP_EvaluateBinary($token)) {
<span class="ln">856</span>                             return false;
<span class="ln">857</span>                         }
<span class="ln">858</span>                         // else continue
<span class="ln">859</span>                     } else {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#10			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(877): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateLogicalAndExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">872</span>      * Process "a || b" or "a or b"
<span class="ln">873</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">874</span>      */
<span class="ln">875</span>     private function RDP_EvaluateLogicalOrExpression()
<span class="ln">876</span>     {
<span class="error"><span class="ln error-ln">877</span>         if (!$this-&gt;RDP_EvaluateLogicalAndExpression()) {
</span><span class="ln">878</span>             return false;
<span class="ln">879</span>         }
<span class="ln">880</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">881</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">882</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#11			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(736): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateLogicalOrExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">731</span>                     return false;
<span class="ln">732</span>                 }
<span class="ln">733</span>             } else {
<span class="ln">734</span>                 // not an assignment expression, so try something else
<span class="ln">735</span>                 $this-&gt;RDP_pos -= 2;
<span class="error"><span class="ln error-ln">736</span>                 return $this-&gt;RDP_EvaluateLogicalOrExpression();
</span><span class="ln">737</span>             }
<span class="ln">738</span>         } else {
<span class="ln">739</span>             return $this-&gt;RDP_EvaluateLogicalOrExpression();
<span class="ln">740</span>         }
<span class="ln">741</span>     }
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#12			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(750): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">745</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">746</span>      */
<span class="ln">747</span> 
<span class="ln">748</span>     private function RDP_EvaluateExpressions()
<span class="ln">749</span>     {
<span class="error"><span class="ln error-ln">750</span>         $evalStatus = $this-&gt;RDP_EvaluateExpression();
</span><span class="ln">751</span>         if (!$evalStatus) {
<span class="ln">752</span>             return false;
<span class="ln">753</span>         }
<span class="ln">754</span> 
<span class="ln">755</span>         while (++$this-&gt;RDP_pos &lt; $this-&gt;RDP_count) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#13			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(956): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateExpressions</strong>()				</div>

				<div class="code"><pre><span class="ln">951</span>             $this-&gt;RDP_AddError(self::gT("Poorly terminated expression - expected a constant or variable"), null);
<span class="ln">952</span>             return false;
<span class="ln">953</span>         }
<span class="ln">954</span>         $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">955</span>         if ($token[2] == 'LP') {
<span class="error"><span class="ln error-ln">956</span>             if (!$this-&gt;RDP_EvaluateExpressions()) {
</span><span class="ln">957</span>                 return false;
<span class="ln">958</span>             }
<span class="ln">959</span>             $token = $this-&gt;RDP_tokens[$this-&gt;RDP_pos];
<span class="ln">960</span>             if ($token[2] == 'RP') {
<span class="ln">961</span>                 return true;
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#14			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(1027): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluatePrimaryExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">1022</span>         if ($token[2] == 'NOT' || $token[2] == 'BINARYOP') {
<span class="ln">1023</span>             switch ($token[0]) {
<span class="ln">1024</span>                 case '+':
<span class="ln">1025</span>                 case '-':
<span class="ln">1026</span>                 case '!':
<span class="error"><span class="ln error-ln">1027</span>                     if (!$this-&gt;RDP_EvaluatePrimaryExpression()) {
</span><span class="ln">1028</span>                         return false;
<span class="ln">1029</span>                     }
<span class="ln">1030</span>                     return $this-&gt;RDP_EvaluateUnary($token);
<span class="ln">1031</span>                     // NB: No break needed
<span class="ln">1032</span>                 default:
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#15			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(912): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateUnaryExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">907</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">908</span>      */
<span class="ln">909</span> 
<span class="ln">910</span>     private function RDP_EvaluateMultiplicativeExpression()
<span class="ln">911</span>     {
<span class="error"><span class="ln error-ln">912</span>         if (!$this-&gt;RDP_EvaluateUnaryExpression()) {
</span><span class="ln">913</span>             return  false;
<span class="ln">914</span>         }
<span class="ln">915</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">916</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">917</span>             if ($token[2] == 'BINARYOP') {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#16			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(578): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateMultiplicativeExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">573</span>      * Process "a op b" where op in (+,-,concatenate)
<span class="ln">574</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">575</span>      */
<span class="ln">576</span>     private function RDP_EvaluateAdditiveExpression()
<span class="ln">577</span>     {
<span class="error"><span class="ln error-ln">578</span>         if (!$this-&gt;RDP_EvaluateMultiplicativeExpression()) {
</span><span class="ln">579</span>             return false;
<span class="ln">580</span>         }
<span class="ln">581</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">582</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">583</span>             if ($token[2] == 'BINARYOP') {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#17			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(978): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateAdditiveExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">973</span>      * Process "a op b" where op in (lt, gt, le, ge, &lt;, &gt;, &lt;=, &gt;=)
<span class="ln">974</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">975</span>      */
<span class="ln">976</span>     private function RDP_EvaluateRelationExpression()
<span class="ln">977</span>     {
<span class="error"><span class="ln error-ln">978</span>         if (!$this-&gt;RDP_EvaluateAdditiveExpression()) {
</span><span class="ln">979</span>             return false;
<span class="ln">980</span>         }
<span class="ln">981</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">982</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">983</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#18			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(670): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateRelationExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">665</span>      * Process "a == b", "a eq b", "a != b", "a ne b"
<span class="ln">666</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">667</span>      */
<span class="ln">668</span>     private function RDP_EvaluateEqualityExpression()
<span class="ln">669</span>     {
<span class="error"><span class="ln error-ln">670</span>         if (!$this-&gt;RDP_EvaluateRelationExpression()) {
</span><span class="ln">671</span>             return false;
<span class="ln">672</span>         }
<span class="ln">673</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">674</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">675</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#19			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(846): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateEqualityExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">841</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">842</span>      */
<span class="ln">843</span> 
<span class="ln">844</span>     private function RDP_EvaluateLogicalAndExpression()
<span class="ln">845</span>     {
<span class="error"><span class="ln error-ln">846</span>         if (!$this-&gt;RDP_EvaluateEqualityExpression()) {
</span><span class="ln">847</span>             return false;
<span class="ln">848</span>         }
<span class="ln">849</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">850</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">851</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#20			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(877): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateLogicalAndExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">872</span>      * Process "a || b" or "a or b"
<span class="ln">873</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">874</span>      */
<span class="ln">875</span>     private function RDP_EvaluateLogicalOrExpression()
<span class="ln">876</span>     {
<span class="error"><span class="ln error-ln">877</span>         if (!$this-&gt;RDP_EvaluateLogicalAndExpression()) {
</span><span class="ln">878</span>             return false;
<span class="ln">879</span>         }
<span class="ln">880</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">881</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">882</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#21			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(736): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateLogicalOrExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">731</span>                     return false;
<span class="ln">732</span>                 }
<span class="ln">733</span>             } else {
<span class="ln">734</span>                 // not an assignment expression, so try something else
<span class="ln">735</span>                 $this-&gt;RDP_pos -= 2;
<span class="error"><span class="ln error-ln">736</span>                 return $this-&gt;RDP_EvaluateLogicalOrExpression();
</span><span class="ln">737</span>             }
<span class="ln">738</span>         } else {
<span class="ln">739</span>             return $this-&gt;RDP_EvaluateLogicalOrExpression();
<span class="ln">740</span>         }
<span class="ln">741</span>     }
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#22			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(825): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">820</span>             }
<span class="ln">821</span>             if ($token3[2] == 'RP') {
<span class="ln">822</span>                 ++$this-&gt;RDP_pos; // consume the token so can process next clause
<span class="ln">823</span>                 return $this-&gt;RDP_RunFunction($funcNameToken, $params);
<span class="ln">824</span>             } else {
<span class="error"><span class="ln error-ln">825</span>                 if ($this-&gt;RDP_EvaluateExpression()) {
</span><span class="ln">826</span>                     $value = $this-&gt;RDP_StackPop();
<span class="ln">827</span>                     if (is_null($value)) {
<span class="ln">828</span>                         return false;
<span class="ln">829</span>                     }
<span class="ln">830</span>                     $params[] = $value[0];
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#23			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(630): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateFunction</strong>()				</div>

				<div class="code"><pre><span class="ln">625</span>                 return true;
<span class="ln">626</span>                 // NB: No break needed
<span class="ln">627</span>             case 'WORD':
<span class="ln">628</span>             case 'SGQA':
<span class="ln">629</span>                 if (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count and $this-&gt;RDP_tokens[($this-&gt;RDP_pos + 1)][2] == 'LP') {
<span class="error"><span class="ln error-ln">630</span>                     return $this-&gt;RDP_EvaluateFunction();
</span><span class="ln">631</span>                 } else {
<span class="ln">632</span>                     if ($this-&gt;RDP_isValidVariable($token[0])) {
<span class="ln">633</span>                         $this-&gt;varsUsed[] = $token[0]; // add this variable to list of those used in this equation
<span class="ln">634</span>                         if (preg_match("/\.(gid|grelevance|gseq|jsName|mandatory|qid|qseq|question|readWrite|relevance|rowdivid|sgqa|type)$/", $token[0])) {
<span class="ln">635</span>                             $relStatus = 1; // static, so always relevant
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#24			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(968): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateConstantVarOrFunction</strong>()				</div>

				<div class="code"><pre><span class="ln">963</span>                 $this-&gt;RDP_AddError(self::gT("Expected right parentheses"), $token);
<span class="ln">964</span>                 return false;
<span class="ln">965</span>             }
<span class="ln">966</span>         } else {
<span class="ln">967</span>             --$this-&gt;RDP_pos;
<span class="error"><span class="ln error-ln">968</span>             return $this-&gt;RDP_EvaluateConstantVarOrFunction();
</span><span class="ln">969</span>         }
<span class="ln">970</span>     }
<span class="ln">971</span> 
<span class="ln">972</span>     /**
<span class="ln">973</span>      * Process "a op b" where op in (lt, gt, le, ge, &lt;, &gt;, &lt;=, &gt;=)
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#25			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(1038): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluatePrimaryExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">1033</span>                     --$this-&gt;RDP_pos;
<span class="ln">1034</span>                     return $this-&gt;RDP_EvaluatePrimaryExpression();
<span class="ln">1035</span>             }
<span class="ln">1036</span>         } else {
<span class="ln">1037</span>             --$this-&gt;RDP_pos;
<span class="error"><span class="ln error-ln">1038</span>             return $this-&gt;RDP_EvaluatePrimaryExpression();
</span><span class="ln">1039</span>         }
<span class="ln">1040</span>     }
<span class="ln">1041</span> 
<span class="ln">1042</span>     /**
<span class="ln">1043</span>      * Returns array of all JavaScript-equivalent variable names used when parsing a string via sProcessStringContainingExpressions
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#26			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(912): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateUnaryExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">907</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">908</span>      */
<span class="ln">909</span> 
<span class="ln">910</span>     private function RDP_EvaluateMultiplicativeExpression()
<span class="ln">911</span>     {
<span class="error"><span class="ln error-ln">912</span>         if (!$this-&gt;RDP_EvaluateUnaryExpression()) {
</span><span class="ln">913</span>             return  false;
<span class="ln">914</span>         }
<span class="ln">915</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">916</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">917</span>             if ($token[2] == 'BINARYOP') {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#27			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(578): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateMultiplicativeExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">573</span>      * Process "a op b" where op in (+,-,concatenate)
<span class="ln">574</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">575</span>      */
<span class="ln">576</span>     private function RDP_EvaluateAdditiveExpression()
<span class="ln">577</span>     {
<span class="error"><span class="ln error-ln">578</span>         if (!$this-&gt;RDP_EvaluateMultiplicativeExpression()) {
</span><span class="ln">579</span>             return false;
<span class="ln">580</span>         }
<span class="ln">581</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">582</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">583</span>             if ($token[2] == 'BINARYOP') {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#28			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(978): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateAdditiveExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">973</span>      * Process "a op b" where op in (lt, gt, le, ge, &lt;, &gt;, &lt;=, &gt;=)
<span class="ln">974</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">975</span>      */
<span class="ln">976</span>     private function RDP_EvaluateRelationExpression()
<span class="ln">977</span>     {
<span class="error"><span class="ln error-ln">978</span>         if (!$this-&gt;RDP_EvaluateAdditiveExpression()) {
</span><span class="ln">979</span>             return false;
<span class="ln">980</span>         }
<span class="ln">981</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">982</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">983</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#29			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(670): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateRelationExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">665</span>      * Process "a == b", "a eq b", "a != b", "a ne b"
<span class="ln">666</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">667</span>      */
<span class="ln">668</span>     private function RDP_EvaluateEqualityExpression()
<span class="ln">669</span>     {
<span class="error"><span class="ln error-ln">670</span>         if (!$this-&gt;RDP_EvaluateRelationExpression()) {
</span><span class="ln">671</span>             return false;
<span class="ln">672</span>         }
<span class="ln">673</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">674</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">675</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#30			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(846): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateEqualityExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">841</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">842</span>      */
<span class="ln">843</span> 
<span class="ln">844</span>     private function RDP_EvaluateLogicalAndExpression()
<span class="ln">845</span>     {
<span class="error"><span class="ln error-ln">846</span>         if (!$this-&gt;RDP_EvaluateEqualityExpression()) {
</span><span class="ln">847</span>             return false;
<span class="ln">848</span>         }
<span class="ln">849</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">850</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">851</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#31			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(877): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateLogicalAndExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">872</span>      * Process "a || b" or "a or b"
<span class="ln">873</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">874</span>      */
<span class="ln">875</span>     private function RDP_EvaluateLogicalOrExpression()
<span class="ln">876</span>     {
<span class="error"><span class="ln error-ln">877</span>         if (!$this-&gt;RDP_EvaluateLogicalAndExpression()) {
</span><span class="ln">878</span>             return false;
<span class="ln">879</span>         }
<span class="ln">880</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">881</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">882</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#32			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(736): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateLogicalOrExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">731</span>                     return false;
<span class="ln">732</span>                 }
<span class="ln">733</span>             } else {
<span class="ln">734</span>                 // not an assignment expression, so try something else
<span class="ln">735</span>                 $this-&gt;RDP_pos -= 2;
<span class="error"><span class="ln error-ln">736</span>                 return $this-&gt;RDP_EvaluateLogicalOrExpression();
</span><span class="ln">737</span>             }
<span class="ln">738</span>         } else {
<span class="ln">739</span>             return $this-&gt;RDP_EvaluateLogicalOrExpression();
<span class="ln">740</span>         }
<span class="ln">741</span>     }
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#33			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(750): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">745</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">746</span>      */
<span class="ln">747</span> 
<span class="ln">748</span>     private function RDP_EvaluateExpressions()
<span class="ln">749</span>     {
<span class="error"><span class="ln error-ln">750</span>         $evalStatus = $this-&gt;RDP_EvaluateExpression();
</span><span class="ln">751</span>         if (!$evalStatus) {
<span class="ln">752</span>             return false;
<span class="ln">753</span>         }
<span class="ln">754</span> 
<span class="ln">755</span>         while (++$this-&gt;RDP_pos &lt; $this-&gt;RDP_count) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#34			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(956): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateExpressions</strong>()				</div>

				<div class="code"><pre><span class="ln">951</span>             $this-&gt;RDP_AddError(self::gT("Poorly terminated expression - expected a constant or variable"), null);
<span class="ln">952</span>             return false;
<span class="ln">953</span>         }
<span class="ln">954</span>         $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">955</span>         if ($token[2] == 'LP') {
<span class="error"><span class="ln error-ln">956</span>             if (!$this-&gt;RDP_EvaluateExpressions()) {
</span><span class="ln">957</span>                 return false;
<span class="ln">958</span>             }
<span class="ln">959</span>             $token = $this-&gt;RDP_tokens[$this-&gt;RDP_pos];
<span class="ln">960</span>             if ($token[2] == 'RP') {
<span class="ln">961</span>                 return true;
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#35			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(1038): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluatePrimaryExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">1033</span>                     --$this-&gt;RDP_pos;
<span class="ln">1034</span>                     return $this-&gt;RDP_EvaluatePrimaryExpression();
<span class="ln">1035</span>             }
<span class="ln">1036</span>         } else {
<span class="ln">1037</span>             --$this-&gt;RDP_pos;
<span class="error"><span class="ln error-ln">1038</span>             return $this-&gt;RDP_EvaluatePrimaryExpression();
</span><span class="ln">1039</span>         }
<span class="ln">1040</span>     }
<span class="ln">1041</span> 
<span class="ln">1042</span>     /**
<span class="ln">1043</span>      * Returns array of all JavaScript-equivalent variable names used when parsing a string via sProcessStringContainingExpressions
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#36			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(912): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateUnaryExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">907</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">908</span>      */
<span class="ln">909</span> 
<span class="ln">910</span>     private function RDP_EvaluateMultiplicativeExpression()
<span class="ln">911</span>     {
<span class="error"><span class="ln error-ln">912</span>         if (!$this-&gt;RDP_EvaluateUnaryExpression()) {
</span><span class="ln">913</span>             return  false;
<span class="ln">914</span>         }
<span class="ln">915</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">916</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">917</span>             if ($token[2] == 'BINARYOP') {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#37			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(578): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateMultiplicativeExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">573</span>      * Process "a op b" where op in (+,-,concatenate)
<span class="ln">574</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">575</span>      */
<span class="ln">576</span>     private function RDP_EvaluateAdditiveExpression()
<span class="ln">577</span>     {
<span class="error"><span class="ln error-ln">578</span>         if (!$this-&gt;RDP_EvaluateMultiplicativeExpression()) {
</span><span class="ln">579</span>             return false;
<span class="ln">580</span>         }
<span class="ln">581</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">582</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">583</span>             if ($token[2] == 'BINARYOP') {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#38			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(978): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateAdditiveExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">973</span>      * Process "a op b" where op in (lt, gt, le, ge, &lt;, &gt;, &lt;=, &gt;=)
<span class="ln">974</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">975</span>      */
<span class="ln">976</span>     private function RDP_EvaluateRelationExpression()
<span class="ln">977</span>     {
<span class="error"><span class="ln error-ln">978</span>         if (!$this-&gt;RDP_EvaluateAdditiveExpression()) {
</span><span class="ln">979</span>             return false;
<span class="ln">980</span>         }
<span class="ln">981</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">982</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">983</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#39			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(670): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateRelationExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">665</span>      * Process "a == b", "a eq b", "a != b", "a ne b"
<span class="ln">666</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">667</span>      */
<span class="ln">668</span>     private function RDP_EvaluateEqualityExpression()
<span class="ln">669</span>     {
<span class="error"><span class="ln error-ln">670</span>         if (!$this-&gt;RDP_EvaluateRelationExpression()) {
</span><span class="ln">671</span>             return false;
<span class="ln">672</span>         }
<span class="ln">673</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">674</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">675</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#40			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(846): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateEqualityExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">841</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">842</span>      */
<span class="ln">843</span> 
<span class="ln">844</span>     private function RDP_EvaluateLogicalAndExpression()
<span class="ln">845</span>     {
<span class="error"><span class="ln error-ln">846</span>         if (!$this-&gt;RDP_EvaluateEqualityExpression()) {
</span><span class="ln">847</span>             return false;
<span class="ln">848</span>         }
<span class="ln">849</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">850</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">851</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#41			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(877): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateLogicalAndExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">872</span>      * Process "a || b" or "a or b"
<span class="ln">873</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">874</span>      */
<span class="ln">875</span>     private function RDP_EvaluateLogicalOrExpression()
<span class="ln">876</span>     {
<span class="error"><span class="ln error-ln">877</span>         if (!$this-&gt;RDP_EvaluateLogicalAndExpression()) {
</span><span class="ln">878</span>             return false;
<span class="ln">879</span>         }
<span class="ln">880</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">881</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">882</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#42			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(736): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateLogicalOrExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">731</span>                     return false;
<span class="ln">732</span>                 }
<span class="ln">733</span>             } else {
<span class="ln">734</span>                 // not an assignment expression, so try something else
<span class="ln">735</span>                 $this-&gt;RDP_pos -= 2;
<span class="error"><span class="ln error-ln">736</span>                 return $this-&gt;RDP_EvaluateLogicalOrExpression();
</span><span class="ln">737</span>             }
<span class="ln">738</span>         } else {
<span class="ln">739</span>             return $this-&gt;RDP_EvaluateLogicalOrExpression();
<span class="ln">740</span>         }
<span class="ln">741</span>     }
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#43			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(750): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">745</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">746</span>      */
<span class="ln">747</span> 
<span class="ln">748</span>     private function RDP_EvaluateExpressions()
<span class="ln">749</span>     {
<span class="error"><span class="ln error-ln">750</span>         $evalStatus = $this-&gt;RDP_EvaluateExpression();
</span><span class="ln">751</span>         if (!$evalStatus) {
<span class="ln">752</span>             return false;
<span class="ln">753</span>         }
<span class="ln">754</span> 
<span class="ln">755</span>         while (++$this-&gt;RDP_pos &lt; $this-&gt;RDP_count) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#44			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(956): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateExpressions</strong>()				</div>

				<div class="code"><pre><span class="ln">951</span>             $this-&gt;RDP_AddError(self::gT("Poorly terminated expression - expected a constant or variable"), null);
<span class="ln">952</span>             return false;
<span class="ln">953</span>         }
<span class="ln">954</span>         $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">955</span>         if ($token[2] == 'LP') {
<span class="error"><span class="ln error-ln">956</span>             if (!$this-&gt;RDP_EvaluateExpressions()) {
</span><span class="ln">957</span>                 return false;
<span class="ln">958</span>             }
<span class="ln">959</span>             $token = $this-&gt;RDP_tokens[$this-&gt;RDP_pos];
<span class="ln">960</span>             if ($token[2] == 'RP') {
<span class="ln">961</span>                 return true;
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#45			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(1038): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluatePrimaryExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">1033</span>                     --$this-&gt;RDP_pos;
<span class="ln">1034</span>                     return $this-&gt;RDP_EvaluatePrimaryExpression();
<span class="ln">1035</span>             }
<span class="ln">1036</span>         } else {
<span class="ln">1037</span>             --$this-&gt;RDP_pos;
<span class="error"><span class="ln error-ln">1038</span>             return $this-&gt;RDP_EvaluatePrimaryExpression();
</span><span class="ln">1039</span>         }
<span class="ln">1040</span>     }
<span class="ln">1041</span> 
<span class="ln">1042</span>     /**
<span class="ln">1043</span>      * Returns array of all JavaScript-equivalent variable names used when parsing a string via sProcessStringContainingExpressions
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#46			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(912): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateUnaryExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">907</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">908</span>      */
<span class="ln">909</span> 
<span class="ln">910</span>     private function RDP_EvaluateMultiplicativeExpression()
<span class="ln">911</span>     {
<span class="error"><span class="ln error-ln">912</span>         if (!$this-&gt;RDP_EvaluateUnaryExpression()) {
</span><span class="ln">913</span>             return  false;
<span class="ln">914</span>         }
<span class="ln">915</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">916</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">917</span>             if ($token[2] == 'BINARYOP') {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#47			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(578): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateMultiplicativeExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">573</span>      * Process "a op b" where op in (+,-,concatenate)
<span class="ln">574</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">575</span>      */
<span class="ln">576</span>     private function RDP_EvaluateAdditiveExpression()
<span class="ln">577</span>     {
<span class="error"><span class="ln error-ln">578</span>         if (!$this-&gt;RDP_EvaluateMultiplicativeExpression()) {
</span><span class="ln">579</span>             return false;
<span class="ln">580</span>         }
<span class="ln">581</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">582</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">583</span>             if ($token[2] == 'BINARYOP') {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#48			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(978): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateAdditiveExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">973</span>      * Process "a op b" where op in (lt, gt, le, ge, &lt;, &gt;, &lt;=, &gt;=)
<span class="ln">974</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">975</span>      */
<span class="ln">976</span>     private function RDP_EvaluateRelationExpression()
<span class="ln">977</span>     {
<span class="error"><span class="ln error-ln">978</span>         if (!$this-&gt;RDP_EvaluateAdditiveExpression()) {
</span><span class="ln">979</span>             return false;
<span class="ln">980</span>         }
<span class="ln">981</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">982</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">983</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#49			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(670): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateRelationExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">665</span>      * Process "a == b", "a eq b", "a != b", "a ne b"
<span class="ln">666</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">667</span>      */
<span class="ln">668</span>     private function RDP_EvaluateEqualityExpression()
<span class="ln">669</span>     {
<span class="error"><span class="ln error-ln">670</span>         if (!$this-&gt;RDP_EvaluateRelationExpression()) {
</span><span class="ln">671</span>             return false;
<span class="ln">672</span>         }
<span class="ln">673</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">674</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">675</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#50			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(846): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateEqualityExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">841</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">842</span>      */
<span class="ln">843</span> 
<span class="ln">844</span>     private function RDP_EvaluateLogicalAndExpression()
<span class="ln">845</span>     {
<span class="error"><span class="ln error-ln">846</span>         if (!$this-&gt;RDP_EvaluateEqualityExpression()) {
</span><span class="ln">847</span>             return false;
<span class="ln">848</span>         }
<span class="ln">849</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">850</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">851</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#51			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(877): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateLogicalAndExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">872</span>      * Process "a || b" or "a or b"
<span class="ln">873</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">874</span>      */
<span class="ln">875</span>     private function RDP_EvaluateLogicalOrExpression()
<span class="ln">876</span>     {
<span class="error"><span class="ln error-ln">877</span>         if (!$this-&gt;RDP_EvaluateLogicalAndExpression()) {
</span><span class="ln">878</span>             return false;
<span class="ln">879</span>         }
<span class="ln">880</span>         while (($this-&gt;RDP_pos + 1) &lt; $this-&gt;RDP_count) {
<span class="ln">881</span>             $token = $this-&gt;RDP_tokens[++$this-&gt;RDP_pos];
<span class="ln">882</span>             switch (strtolower($token[0])) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#52			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(736): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateLogicalOrExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">731</span>                     return false;
<span class="ln">732</span>                 }
<span class="ln">733</span>             } else {
<span class="ln">734</span>                 // not an assignment expression, so try something else
<span class="ln">735</span>                 $this-&gt;RDP_pos -= 2;
<span class="error"><span class="ln error-ln">736</span>                 return $this-&gt;RDP_EvaluateLogicalOrExpression();
</span><span class="ln">737</span>             }
<span class="ln">738</span>         } else {
<span class="ln">739</span>             return $this-&gt;RDP_EvaluateLogicalOrExpression();
<span class="ln">740</span>         }
<span class="ln">741</span>     }
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#53			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(750): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateExpression</strong>()				</div>

				<div class="code"><pre><span class="ln">745</span>      * @return boolean - true if success, false if any error occurred
<span class="ln">746</span>      */
<span class="ln">747</span> 
<span class="ln">748</span>     private function RDP_EvaluateExpressions()
<span class="ln">749</span>     {
<span class="error"><span class="ln error-ln">750</span>         $evalStatus = $this-&gt;RDP_EvaluateExpression();
</span><span class="ln">751</span>         if (!$evalStatus) {
<span class="ln">752</span>             return false;
<span class="ln">753</span>         }
<span class="ln">754</span> 
<span class="ln">755</span>         while (++$this-&gt;RDP_pos &lt; $this-&gt;RDP_count) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#54			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(549): <strong>ExpressionManager</strong>-&gt;<strong>RDP_EvaluateExpressions</strong>()				</div>

				<div class="code"><pre><span class="ln">544</span>         $this-&gt;varsUsed = array();
<span class="ln">545</span>         $this-&gt;jsExpression = null;
<span class="ln">546</span> 
<span class="ln">547</span>         if ($this-&gt;HasSyntaxErrors()) {
<span class="ln">548</span>             return false;
<span class="error"><span class="ln error-ln">549</span>         } elseif ($this-&gt;RDP_EvaluateExpressions()) {
</span><span class="ln">550</span>             if ($this-&gt;RDP_pos &lt; $this-&gt;RDP_count) {
<span class="ln">551</span>                 $this-&gt;RDP_AddError(self::gT("Extra tokens found"), $this-&gt;RDP_tokens[$this-&gt;RDP_pos]);
<span class="ln">552</span>                 return false;
<span class="ln">553</span>             }
<span class="ln">554</span>             $this-&gt;RDP_result = $this-&gt;RDP_StackPop();
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#55			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(1740): <strong>ExpressionManager</strong>-&gt;<strong>RDP_Evaluate</strong>("((sum(!(regexMatch("/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/", 769498X96...")				</div>

				<div class="code"><pre><span class="ln">1735</span>     {
<span class="ln">1736</span>         $this-&gt;groupSeq = $groupSeq;
<span class="ln">1737</span>         $this-&gt;questionSeq = $questionSeq;
<span class="ln">1738</span> 
<span class="ln">1739</span>         $expr = $this-&gt;ExpandThisVar($expr);
<span class="error"><span class="ln error-ln">1740</span>         $status = $this-&gt;RDP_Evaluate($expr);
</span><span class="ln">1741</span>         if (!$status) {
<span class="ln">1742</span>             return false; // if there are errors in the expression, hide it?
<span class="ln">1743</span>         }
<span class="ln">1744</span>         $result = $this-&gt;GetResult();
<span class="ln">1745</span>         if (is_null($result)) {
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#56			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_manager_helper.php(6741): <strong>ExpressionManager</strong>-&gt;<strong>ProcessBooleanExpression</strong>("((sum(!(regexMatch("/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/", 769498X96...", 0, 0)				</div>

				<div class="code"><pre><span class="ln">6736</span>                 // do this even is starts irrelevant, else will never show this information.
<span class="ln">6737</span>                 if (!$qhidden)
<span class="ln">6738</span>                 {
<span class="ln">6739</span>                     $validationEqns = $LEM-&gt;qid2validationEqn[$qid]['eqn'];
<span class="ln">6740</span>                     $validationEqn = implode(' and ', $validationEqns);
<span class="error"><span class="ln error-ln">6741</span>                     $qvalid = $LEM-&gt;em-&gt;ProcessBooleanExpression($validationEqn,$qInfo['gseq'], $qInfo['qseq']);
</span><span class="ln">6742</span>                     $hasErrors = $LEM-&gt;em-&gt;HasErrors();
<span class="ln">6743</span> 
<span class="ln">6744</span>                     if (!$hasErrors){
<span class="ln">6745</span>                         $validationJS = $LEM-&gt;em-&gt;GetJavaScriptEquivalentOfExpression();
<span class="ln">6746</span>                     }
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#57			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_manager_helper.php(6061): <strong>LimeExpressionManager</strong>-&gt;<strong>_ValidateQuestion</strong>(0, false)				</div>

				<div class="code"><pre><span class="ln">6056</span>             /////////////////////////////////////////////////////////
<span class="ln">6057</span>             // CHECK EACH QUESTION, AND SET GROUP-LEVEL PROPERTIES //
<span class="ln">6058</span>             /////////////////////////////////////////////////////////
<span class="ln">6059</span>             for ($i=$groupSeqInfo['qstart'];$i&lt;=$groupSeqInfo['qend']; ++$i)
<span class="ln">6060</span>             {
<span class="error"><span class="ln error-ln">6061</span>                 $qStatus = $LEM-&gt;_ValidateQuestion($i,$force);
</span><span class="ln">6062</span> 
<span class="ln">6063</span>                 $updatedValues = array_merge($updatedValues,$qStatus['updatedValues']);
<span class="ln">6064</span> 
<span class="ln">6065</span>                 if ($gRelInfo['result']==true &amp;&amp; $qStatus['relevant']==true) {
<span class="ln">6066</span>                     $grel = $gRelInfo['result'];    // true;   // at least one question relevant
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#58			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/expressions/em_manager_helper.php(5298): <strong>LimeExpressionManager</strong>-&gt;<strong>_ValidateGroup</strong>(0)				</div>

				<div class="code"><pre><span class="ln">5293</span>                                 'invalidSQs'=&gt;(isset($result['invalidSQs']) ? $result['invalidSQs'] : ''),
<span class="ln">5294</span>                             );
<span class="ln">5295</span>                             return $LEM-&gt;lastMoveResult;
<span class="ln">5296</span>                         }
<span class="ln">5297</span> 
<span class="error"><span class="ln error-ln">5298</span>                         $result = $LEM-&gt;_ValidateGroup($LEM-&gt;currentGroupSeq);
</span><span class="ln">5299</span>                         if (is_null($result)) {
<span class="ln">5300</span>                             continue;   // this is an invalid group - skip it
<span class="ln">5301</span>                         }
<span class="ln">5302</span>                         $message .= $result['message'];
<span class="ln">5303</span>                         $updatedValues = array_merge($updatedValues,$result['updatedValues']);
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#59			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/SurveyRuntimeHelper.php(842): <strong>LimeExpressionManager</strong>::<strong>NavigateForwards</strong>()				</div>

				<div class="code"><pre><span class="ln">837</span>                     $this-&gt;aMoveResult = false; // so display welcome page again
<span class="ln">838</span>                 }
<span class="ln">839</span>             }
<span class="ln">840</span> 
<span class="ln">841</span>             if ($this-&gt;sMove == "movenext") {
<span class="error"><span class="ln error-ln">842</span>                 $this-&gt;aMoveResult = LimeExpressionManager::NavigateForwards();
</span><span class="ln">843</span>             }
<span class="ln">844</span> 
<span class="ln">845</span>             if (($this-&gt;sMove == 'movesubmit')) {
<span class="ln">846</span>                 if ($this-&gt;sSurveyMode == 'survey') {
<span class="ln">847</span>                     $this-&gt;aMoveResult = LimeExpressionManager::NavigateForwards();
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#60			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/SurveyRuntimeHelper.php(545): <strong>SurveyRuntimeHelper</strong>-&gt;<strong>setMoveResult</strong>()				</div>

				<div class="code"><pre><span class="ln">540</span>         $this-&gt;initFirstStep(); // If it's the first time user load this survey, will init session and LEM
<span class="ln">541</span>         $this-&gt;initTotalAndMaxSteps();
<span class="ln">542</span>         $this-&gt;checkIfUseBrowserNav(); // Check if user used browser navigation, or relaoded page
<span class="ln">543</span>         if ($this-&gt;sMove != 'clearcancel' &amp;&amp; $this-&gt;sMove != 'confirmquota') {
<span class="ln">544</span>             $this-&gt;checkPrevStep(); // Check if prev step is set, else set it
<span class="error"><span class="ln error-ln">545</span>             $this-&gt;setMoveResult();
</span><span class="ln">546</span>             $this-&gt;checkClearCancel();
<span class="ln">547</span>             $this-&gt;setPrevStep();
<span class="ln">548</span>             $this-&gt;checkIfFinished();
<span class="ln">549</span>             $this-&gt;setStep();
<span class="ln">550</span> 
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#61			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/helpers/SurveyRuntimeHelper.php(104): <strong>SurveyRuntimeHelper</strong>-&gt;<strong>initMove</strong>()				</div>

				<div class="code"><pre><span class="ln">099</span>         if (!isset($_SESSION[$this-&gt;LEMsessid]['step'])) {
<span class="ln">100</span>             $this-&gt;showTokenOrCaptchaFormsIfNeeded();
<span class="ln">101</span>         }
<span class="ln">102</span> 
<span class="ln">103</span>         if (!$this-&gt;previewgrp &amp;&amp; !$this-&gt;previewquestion) {
<span class="error"><span class="ln error-ln">104</span>             $this-&gt;initMove(); // main methods to init session, LEM, moves, errors, etc
</span><span class="ln">105</span>             $this-&gt;checkForDataSecurityAccepted(); // must be called after initMove to allow LEM to be initialized
<span class="ln">106</span>             $this-&gt;checkQuotas(); // check quotas (then the process will stop here)
<span class="ln">107</span>             $this-&gt;displayFirstPageIfNeeded();
<span class="ln">108</span>             $this-&gt;saveAllIfNeeded();
<span class="ln">109</span>             $this-&gt;saveSubmitIfNeeded();
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#62			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/controllers/survey/index.php(606): <strong>SurveyRuntimeHelper</strong>-&gt;<strong>run</strong>("769498",
 array("surveyid" =&gt; "769498", "thissurvey" =&gt; array("htmlemail" 
=&gt; "Y", "format" =&gt; "G", "template" =&gt; "advantages", "language"
 =&gt; "fr", ...), "thisstep" =&gt; "0", "tokensexist" =&gt; 0, ...))			
	</div>

				<div class="code"><pre><span class="ln">601</span>         unset($redata);
<span class="ln">602</span>         $redata = compact(array_keys(get_defined_vars()));
<span class="ln">603</span>         Yii::import('application.helpers.SurveyRuntimeHelper');
<span class="ln">604</span>         $tmp = new SurveyRuntimeHelper();
<span class="ln">605</span>         // try {
<span class="error"><span class="ln error-ln">606</span>             $tmp-&gt;run($surveyid, $redata);
</span><span class="ln">607</span>         // } catch (WrongTemplateVersionException $ex) {
<span class="ln">608</span>         //     echo $ex-&gt;getMessage();
<span class="ln">609</span>         // }
<span class="ln">610</span>     }
<span class="ln">611</span> 
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#63			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/application/controllers/survey/index.php(24): <strong>index</strong>-&gt;<strong>action</strong>()				</div>

				<div class="code"><pre><span class="ln">19</span>     public $oTemplate;
<span class="ln">20</span> 
<span class="ln">21</span>     public function run()
<span class="ln">22</span>     {
<span class="ln">23</span>         useFirebug();
<span class="error"><span class="ln error-ln">24</span>         $this-&gt;action();
</span><span class="ln">25</span>     }
<span class="ln">26</span> 
<span class="ln">27</span>     public function action()
<span class="ln">28</span>     {
<span class="ln">29</span>         global $surveyid;
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#64			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/framework/web/actions/CAction.php(76): <strong>index</strong>-&gt;<strong>run</strong>()				</div>

				<div class="code"><pre><span class="ln">71</span>     {
<span class="ln">72</span>         $method=new ReflectionMethod($this, 'run');
<span class="ln">73</span>         if($method-&gt;getNumberOfParameters()&gt;0)
<span class="ln">74</span>             return $this-&gt;runWithParamsInternal($this, $method, $params);
<span class="ln">75</span> 
<span class="error"><span class="ln error-ln">76</span>         $this-&gt;run();
</span><span class="ln">77</span>         return true;
<span class="ln">78</span>     }
<span class="ln">79</span> 
<span class="ln">80</span>     /**
<span class="ln">81</span>      * Executes a method of an object with the supplied named parameters.
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#65			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/framework/web/CController.php(308): <strong>CAction</strong>-&gt;<strong>runWithParams</strong>(array("r" =&gt; "survey/index", "sid" =&gt; "769498"))				</div>

				<div class="code"><pre><span class="ln">303</span>     {
<span class="ln">304</span>         $priorAction=$this-&gt;_action;
<span class="ln">305</span>         $this-&gt;_action=$action;
<span class="ln">306</span>         if($this-&gt;beforeAction($action))
<span class="ln">307</span>         {
<span class="error"><span class="ln error-ln">308</span>             if($action-&gt;runWithParams($this-&gt;getActionParams())===false)
</span><span class="ln">309</span>                 $this-&gt;invalidActionParams($action);
<span class="ln">310</span>             else
<span class="ln">311</span>                 $this-&gt;afterAction($action);
<span class="ln">312</span>         }
<span class="ln">313</span>         $this-&gt;_action=$priorAction;
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#66			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/framework/web/CController.php(286): <strong>CController</strong>-&gt;<strong>runAction</strong>(index)				</div>

				<div class="code"><pre><span class="ln">281</span>      * @see runAction
<span class="ln">282</span>      */
<span class="ln">283</span>     public function runActionWithFilters($action,$filters)
<span class="ln">284</span>     {
<span class="ln">285</span>         if(empty($filters))
<span class="error"><span class="ln error-ln">286</span>             $this-&gt;runAction($action);
</span><span class="ln">287</span>         else
<span class="ln">288</span>         {
<span class="ln">289</span>             $priorAction=$this-&gt;_action;
<span class="ln">290</span>             $this-&gt;_action=$action;
<span class="ln">291</span>             CFilterChain::create($this,$action,$filters)-&gt;run();
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#67			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/framework/web/CController.php(265): <strong>CController</strong>-&gt;<strong>runActionWithFilters</strong>(index, array())				</div>

				<div class="code"><pre><span class="ln">260</span>         {
<span class="ln">261</span>             if(($parent=$this-&gt;getModule())===null)
<span class="ln">262</span>                 $parent=Yii::app();
<span class="ln">263</span>             if($parent-&gt;beforeControllerAction($this,$action))
<span class="ln">264</span>             {
<span class="error"><span class="ln error-ln">265</span>                 $this-&gt;runActionWithFilters($action,$this-&gt;filters());
</span><span class="ln">266</span>                 $parent-&gt;afterControllerAction($this,$action);
<span class="ln">267</span>             }
<span class="ln">268</span>         }
<span class="ln">269</span>         else
<span class="ln">270</span>             $this-&gt;missingAction($actionID);
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#68			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/framework/web/CWebApplication.php(282): <strong>CController</strong>-&gt;<strong>run</strong>("index")				</div>

				<div class="code"><pre><span class="ln">277</span>         {
<span class="ln">278</span>             list($controller,$actionID)=$ca;
<span class="ln">279</span>             $oldController=$this-&gt;_controller;
<span class="ln">280</span>             $this-&gt;_controller=$controller;
<span class="ln">281</span>             $controller-&gt;init();
<span class="error"><span class="ln error-ln">282</span>             $controller-&gt;run($actionID);
</span><span class="ln">283</span>             $this-&gt;_controller=$oldController;
<span class="ln">284</span>         }
<span class="ln">285</span>         else
<span class="ln">286</span>             throw new CHttpException(404,Yii::t('yii','Unable to resolve the request "{route}".',
<span class="ln">287</span>                 array('{route}'=&gt;$route===''?$this-&gt;defaultController:$route)));
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#69			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-&gt;<strong>runController</strong>("survey/index")				</div>

				<div class="code"><pre><span class="ln">136</span>             foreach(array_splice($this-&gt;catchAllRequest,1) as $name=&gt;$value)
<span class="ln">137</span>                 $_GET[$name]=$value;
<span class="ln">138</span>         }
<span class="ln">139</span>         else
<span class="ln">140</span>             $route=$this-&gt;getUrlManager()-&gt;parseUrl($this-&gt;getRequest());
<span class="error"><span class="ln error-ln">141</span>         $this-&gt;runController($route);
</span><span class="ln">142</span>     }
<span class="ln">143</span> 
<span class="ln">144</span>     /**
<span class="ln">145</span>      * Registers the core application components.
<span class="ln">146</span>      * This method overrides the parent implementation by registering additional core components.
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#70			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/framework/base/CApplication.php(185): <strong>CWebApplication</strong>-&gt;<strong>processRequest</strong>()				</div>

				<div class="code"><pre><span class="ln">180</span>     public function run()
<span class="ln">181</span>     {
<span class="ln">182</span>         if($this-&gt;hasEventHandler('onBeginRequest'))
<span class="ln">183</span>             $this-&gt;onBeginRequest(new CEvent($this));
<span class="ln">184</span>         register_shutdown_function(array($this,'end'),0,false);
<span class="error"><span class="ln error-ln">185</span>         $this-&gt;processRequest();
</span><span class="ln">186</span>         if($this-&gt;hasEventHandler('onEndRequest'))
<span class="ln">187</span>             $this-&gt;onEndRequest(new CEvent($this));
<span class="ln">188</span>     }
<span class="ln">189</span> 
<span class="ln">190</span>     /**
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#71			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/3LTS/index.php(194): <strong>CApplication</strong>-&gt;<strong>run</strong>()				</div>

				<div class="code"><pre><span class="ln">189</span> require_once APPPATH . 'core/LSYii_Application' . EXT;
<span class="ln">190</span> 
<span class="ln">191</span> $config = require_once(APPPATH . 'config/internal' . EXT);
<span class="ln">192</span> 
<span class="ln">193</span> Yii::$enableIncludePath = false;
<span class="error"><span class="ln error-ln">194</span> Yii::createApplication('LSYii_Application', $config)-&gt;run();
</span><span class="ln">195</span> 
<span class="ln">196</span> /* End of file index.php */
<span class="ln">197</span> /* Location: ./index.php */
</pre></div>			</td>
		</tr>
				</tbody></table>
	</div>

	<div class="version">
		2022-10-05 17:12:28 nginx/1.18.0 <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.24-dev	</div>
</div>

<script type="text/javascript">
/*<![CDATA[*/
var traceReg = new RegExp("(^|\\s)trace-file(\\s|$)");
var collapsedReg = new RegExp("(^|\\s)collapsed(\\s|$)");

var e = document.getElementsByTagName("div");
for(var j=0,len=e.length;j<len;j++){
	if(traceReg.test(e[j].className)){
		e[j].onclick = function(){
			var trace = this.parentNode.parentNode;
			if(collapsedReg.test(trace.className))
				trace.className = trace.className.replace("collapsed", "expanded");
			else
				trace.className = trace.className.replace("expanded", "collapsed");
		}
	}
}
/*]]>*/
</script>



<div id="grammalecte_menu_main_button_shadow_host" style="width: 0px; height: 0px;"></div></body><script src="PHP%20warning_fichiers/api.js"></script></html>
PHP warning.html (94,877 bytes)   
limesurvey_survey_CheckDate.lss (24,205 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<document>
 <LimeSurveyDocType>Survey</LimeSurveyDocType>
 <DBVersion>366</DBVersion>
 <languages>
  <language>fr</language>
 </languages>
 <groups>
  <fields>
   <fieldname>gid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>group_name</fieldname>
   <fieldname>group_order</fieldname>
   <fieldname>description</fieldname>
   <fieldname>language</fieldname>
   <fieldname>randomization_group</fieldname>
   <fieldname>grelevance</fieldname>
  </fields>
  <rows>
   <row>
    <gid><![CDATA[966]]></gid>
    <sid><![CDATA[769498]]></sid>
    <group_name><![CDATA[Mon premier groupe de question]]></group_name>
    <group_order><![CDATA[1]]></group_order>
    <description/>
    <language><![CDATA[fr]]></language>
    <randomization_group/>
    <grelevance><![CDATA[1]]></grelevance>
   </row>
  </rows>
 </groups>
 <questions>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>parent_qid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>type</fieldname>
   <fieldname>title</fieldname>
   <fieldname>question</fieldname>
   <fieldname>preg</fieldname>
   <fieldname>help</fieldname>
   <fieldname>other</fieldname>
   <fieldname>mandatory</fieldname>
   <fieldname>question_order</fieldname>
   <fieldname>language</fieldname>
   <fieldname>scale_id</fieldname>
   <fieldname>same_default</fieldname>
   <fieldname>relevance</fieldname>
   <fieldname>modulename</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[17576]]></qid>
    <parent_qid><![CDATA[0]]></parent_qid>
    <sid><![CDATA[769498]]></sid>
    <gid><![CDATA[966]]></gid>
    <type><![CDATA[;]]></type>
    <title><![CDATA[Q00]]></title>
    <question><![CDATA[Une première question comme exemple. Veuillez répondre à cette question :

]]></question>
    <preg/>
    <help><![CDATA[Ceci est un texte d’aide pour la question.]]></help>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <question_order><![CDATA[1]]></question_order>
    <language><![CDATA[fr]]></language>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <modulename/>
   </row>
  </rows>
 </questions>
 <subquestions>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>parent_qid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>type</fieldname>
   <fieldname>title</fieldname>
   <fieldname>question</fieldname>
   <fieldname>preg</fieldname>
   <fieldname>help</fieldname>
   <fieldname>other</fieldname>
   <fieldname>mandatory</fieldname>
   <fieldname>question_order</fieldname>
   <fieldname>language</fieldname>
   <fieldname>scale_id</fieldname>
   <fieldname>same_default</fieldname>
   <fieldname>relevance</fieldname>
   <fieldname>modulename</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[17577]]></qid>
    <parent_qid><![CDATA[17576]]></parent_qid>
    <sid><![CDATA[769498]]></sid>
    <gid><![CDATA[966]]></gid>
    <type><![CDATA[T]]></type>
    <title><![CDATA[SY001]]></title>
    <question><![CDATA[SY001]]></question>
    <other><![CDATA[N]]></other>
    <question_order><![CDATA[1]]></question_order>
    <language><![CDATA[fr]]></language>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <modulename/>
   </row>
   <row>
    <qid><![CDATA[17578]]></qid>
    <parent_qid><![CDATA[17576]]></parent_qid>
    <sid><![CDATA[769498]]></sid>
    <gid><![CDATA[966]]></gid>
    <type><![CDATA[T]]></type>
    <title><![CDATA[SX001]]></title>
    <question><![CDATA[SX001]]></question>
    <other><![CDATA[N]]></other>
    <question_order><![CDATA[1]]></question_order>
    <language><![CDATA[fr]]></language>
    <scale_id><![CDATA[1]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance/>
    <modulename/>
   </row>
  </rows>
 </subquestions>
 <question_attributes>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>attribute</fieldname>
   <fieldname>value</fieldname>
   <fieldname>language</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[17576]]></qid>
    <attribute><![CDATA[em_validation_sq]]></attribute>
    <value><![CDATA[regexMatch("/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/", this.NAOK)
and
checkdate(substr(this.NAOK,3,2),substr(this.NAOK,0,2),substr(this.NAOK,6,4))]]></value>
   </row>
   <row>
    <qid><![CDATA[17576]]></qid>
    <attribute><![CDATA[em_validation_sq_tip]]></attribute>
    <value><![CDATA[La date semble invalide.]]></value>
    <language><![CDATA[fr]]></language>
   </row>
   <row>
    <qid><![CDATA[17576]]></qid>
    <attribute><![CDATA[jquerySimpleMask_mask]]></attribute>
    <value><![CDATA[00/00/0000]]></value>
   </row>
   <row>
    <qid><![CDATA[17576]]></qid>
    <attribute><![CDATA[jquerySimpleMask_placeholder]]></attribute>
    <value><![CDATA[00/00/0000]]></value>
   </row>
   <row>
    <qid><![CDATA[17576]]></qid>
    <attribute><![CDATA[jquerySimpleMask_reverse]]></attribute>
    <value><![CDATA[0]]></value>
   </row>
  </rows>
 </question_attributes>
 <surveys>
  <fields>
   <fieldname>sid</fieldname>
   <fieldname>gsid</fieldname>
   <fieldname>admin</fieldname>
   <fieldname>expires</fieldname>
   <fieldname>startdate</fieldname>
   <fieldname>adminemail</fieldname>
   <fieldname>anonymized</fieldname>
   <fieldname>faxto</fieldname>
   <fieldname>format</fieldname>
   <fieldname>savetimings</fieldname>
   <fieldname>template</fieldname>
   <fieldname>language</fieldname>
   <fieldname>additional_languages</fieldname>
   <fieldname>datestamp</fieldname>
   <fieldname>usecookie</fieldname>
   <fieldname>allowregister</fieldname>
   <fieldname>allowsave</fieldname>
   <fieldname>autonumber_start</fieldname>
   <fieldname>autoredirect</fieldname>
   <fieldname>allowprev</fieldname>
   <fieldname>printanswers</fieldname>
   <fieldname>ipaddr</fieldname>
   <fieldname>refurl</fieldname>
   <fieldname>showsurveypolicynotice</fieldname>
   <fieldname>publicstatistics</fieldname>
   <fieldname>publicgraphs</fieldname>
   <fieldname>listpublic</fieldname>
   <fieldname>htmlemail</fieldname>
   <fieldname>sendconfirmation</fieldname>
   <fieldname>tokenanswerspersistence</fieldname>
   <fieldname>assessments</fieldname>
   <fieldname>usecaptcha</fieldname>
   <fieldname>usetokens</fieldname>
   <fieldname>bounce_email</fieldname>
   <fieldname>attributedescriptions</fieldname>
   <fieldname>emailresponseto</fieldname>
   <fieldname>emailnotificationto</fieldname>
   <fieldname>tokenlength</fieldname>
   <fieldname>showxquestions</fieldname>
   <fieldname>showgroupinfo</fieldname>
   <fieldname>shownoanswer</fieldname>
   <fieldname>showqnumcode</fieldname>
   <fieldname>bouncetime</fieldname>
   <fieldname>bounceprocessing</fieldname>
   <fieldname>bounceaccounttype</fieldname>
   <fieldname>bounceaccounthost</fieldname>
   <fieldname>bounceaccountpass</fieldname>
   <fieldname>bounceaccountencryption</fieldname>
   <fieldname>bounceaccountuser</fieldname>
   <fieldname>showwelcome</fieldname>
   <fieldname>showprogress</fieldname>
   <fieldname>questionindex</fieldname>
   <fieldname>navigationdelay</fieldname>
   <fieldname>nokeyboard</fieldname>
   <fieldname>alloweditaftercompletion</fieldname>
   <fieldname>googleanalyticsstyle</fieldname>
   <fieldname>googleanalyticsapikey</fieldname>
  </fields>
  <rows>
   <row>
    <sid><![CDATA[769498]]></sid>
    <gsid><![CDATA[1]]></gsid>
    <admin><![CDATA[Denis Chenu]]></admin>
    <adminemail><![CDATA[denis@shnoulle.net]]></adminemail>
    <anonymized><![CDATA[N]]></anonymized>
    <faxto/>
    <format><![CDATA[G]]></format>
    <savetimings><![CDATA[N]]></savetimings>
    <template><![CDATA[advantages]]></template>
    <language><![CDATA[fr]]></language>
    <additional_languages/>
    <datestamp><![CDATA[N]]></datestamp>
    <usecookie><![CDATA[N]]></usecookie>
    <allowregister><![CDATA[N]]></allowregister>
    <allowsave><![CDATA[Y]]></allowsave>
    <autonumber_start><![CDATA[0]]></autonumber_start>
    <autoredirect><![CDATA[N]]></autoredirect>
    <allowprev><![CDATA[N]]></allowprev>
    <printanswers><![CDATA[N]]></printanswers>
    <ipaddr><![CDATA[N]]></ipaddr>
    <refurl><![CDATA[N]]></refurl>
    <showsurveypolicynotice><![CDATA[0]]></showsurveypolicynotice>
    <publicstatistics><![CDATA[N]]></publicstatistics>
    <publicgraphs><![CDATA[N]]></publicgraphs>
    <listpublic><![CDATA[N]]></listpublic>
    <htmlemail><![CDATA[Y]]></htmlemail>
    <sendconfirmation><![CDATA[Y]]></sendconfirmation>
    <tokenanswerspersistence><![CDATA[N]]></tokenanswerspersistence>
    <assessments><![CDATA[N]]></assessments>
    <usecaptcha><![CDATA[N]]></usecaptcha>
    <usetokens><![CDATA[N]]></usetokens>
    <bounce_email><![CDATA[denis@shnoulle.net]]></bounce_email>
    <emailresponseto/>
    <emailnotificationto/>
    <tokenlength><![CDATA[15]]></tokenlength>
    <showxquestions><![CDATA[Y]]></showxquestions>
    <showgroupinfo><![CDATA[B]]></showgroupinfo>
    <shownoanswer><![CDATA[N]]></shownoanswer>
    <showqnumcode><![CDATA[X]]></showqnumcode>
    <bounceprocessing><![CDATA[N]]></bounceprocessing>
    <showwelcome><![CDATA[Y]]></showwelcome>
    <showprogress><![CDATA[Y]]></showprogress>
    <questionindex><![CDATA[0]]></questionindex>
    <navigationdelay><![CDATA[0]]></navigationdelay>
    <nokeyboard><![CDATA[N]]></nokeyboard>
    <alloweditaftercompletion><![CDATA[N]]></alloweditaftercompletion>
   </row>
  </rows>
 </surveys>
 <surveys_languagesettings>
  <fields>
   <fieldname>surveyls_survey_id</fieldname>
   <fieldname>surveyls_language</fieldname>
   <fieldname>surveyls_title</fieldname>
   <fieldname>surveyls_description</fieldname>
   <fieldname>surveyls_welcometext</fieldname>
   <fieldname>surveyls_endtext</fieldname>
   <fieldname>surveyls_policy_notice</fieldname>
   <fieldname>surveyls_policy_error</fieldname>
   <fieldname>surveyls_policy_notice_label</fieldname>
   <fieldname>surveyls_url</fieldname>
   <fieldname>surveyls_urldescription</fieldname>
   <fieldname>surveyls_email_invite_subj</fieldname>
   <fieldname>surveyls_email_invite</fieldname>
   <fieldname>surveyls_email_remind_subj</fieldname>
   <fieldname>surveyls_email_remind</fieldname>
   <fieldname>surveyls_email_register_subj</fieldname>
   <fieldname>surveyls_email_register</fieldname>
   <fieldname>surveyls_email_confirm_subj</fieldname>
   <fieldname>surveyls_email_confirm</fieldname>
   <fieldname>surveyls_dateformat</fieldname>
   <fieldname>surveyls_attributecaptions</fieldname>
   <fieldname>email_admin_notification_subj</fieldname>
   <fieldname>email_admin_notification</fieldname>
   <fieldname>email_admin_responses_subj</fieldname>
   <fieldname>email_admin_responses</fieldname>
   <fieldname>surveyls_numberformat</fieldname>
   <fieldname>attachments</fieldname>
  </fields>
  <rows>
   <row>
    <surveyls_survey_id><![CDATA[769498]]></surveyls_survey_id>
    <surveyls_language><![CDATA[fr]]></surveyls_language>
    <surveyls_title><![CDATA[Test checkdate]]></surveyls_title>
    <surveyls_description/>
    <surveyls_welcometext/>
    <surveyls_endtext/>
    <surveyls_url/>
    <surveyls_urldescription/>
    <surveyls_email_invite_subj><![CDATA[Invitation à participer à un questionnaire]]></surveyls_email_invite_subj>
    <surveyls_email_invite><![CDATA[Dear {FIRSTNAME},<br />
<br />
You have been invited to participate in a survey.<br />
<br />
The survey is titled:<br />
"{SURVEYNAME}"<br />
<br />
"{SURVEYDESCRIPTION}"<br />
<br />
To participate, please click on the link below.<br />
<br />
Sincerely,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Click here to do the survey:<br />
{SURVEYURL}<br />
<br />
Si vous ne souhaitez pas participer à ce questionnaire et ne souhaitez plus recevoir aucune invitation, veuillez cliquer sur le lien suivant :<br />
{OPTOUTURL}<br />
<br />
Si vous êtes sur liste noire mais que vous voulez participer à ce questionnaire et recevoir les invitations, merci de cliquer sur le lien suivant :<br />
{OPTINURL}]]></surveyls_email_invite>
    <surveyls_email_remind_subj><![CDATA[Rappel pour participer à un questionnaire]]></surveyls_email_remind_subj>
    <surveyls_email_remind><![CDATA[Cher(e) {FIRSTNAME},<br />
<br />
Vous avez été invité(e) à participer à un questionnaire récemment.<br />
<br />
Nous avons pris en compte que vous n’avez pas encore complété le questionnaire, et nous vous rappelons que celui-ci est toujours disponible si vous souhaitez participer.<br />
<br />
Le questionnaire est intitulé :<br />
"{SURVEYNAME}"<br />
<br />
"{SURVEYDESCRIPTION}"<br />
<br />
Pour participer, veuillez cliquer sur le lien ci-dessous.<br />
<br />
Cordialement,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Cliquez ici pour faire le questionnaire :<br />
{SURVEYURL}<br />
<br />
Si vous ne souhaitez pas participer à ce questionnaire et ne souhaitez plus recevoir aucune invitation, veuillez cliquer sur le lien suivant :<br />
{OPTOUTURL}]]></surveyls_email_remind>
    <surveyls_email_register_subj><![CDATA[Confirmation d’enregistrement pour le questionnaire]]></surveyls_email_register_subj>
    <surveyls_email_register><![CDATA[Bonjour {FIRSTNAME},<br />
<br />
Vous (ou quelqu’un utilisant votre adresse électronique) vous êtes enregistré pour participer à un questionnaire en ligne intitulé {SURVEYNAME}.<br />
<br />
Pour compléter ce questionnaire, cliquez sur le lien suivant :<br />
{SURVEYURL}<br />
<br />
Si vous avez des questions à propos de ce questionnaire, ou si vous ne vous êtes pas enregistré pour participer à celui-ci et croyez que ce message est une erreur, veuillez contacter {ADMINNAME} à l’adresse {ADMINEMAIL}]]></surveyls_email_register>
    <surveyls_email_confirm_subj><![CDATA[Confirmation de votre participation à notre questionnaire]]></surveyls_email_confirm_subj>
    <surveyls_email_confirm><![CDATA[Dear {FIRSTNAME},<br />
<br />
This email is to confirm that you have completed the survey titled {SURVEYNAME} and your response has been saved. Thank you for participating.<br />
<br />
If you have any further questions about this email, please contact {ADMINNAME} on {ADMINEMAIL}.<br />
<br />
Sincerely,<br />
<br />
{ADMINNAME}]]></surveyls_email_confirm>
    <surveyls_dateformat><![CDATA[5]]></surveyls_dateformat>
    <email_admin_notification_subj><![CDATA[Soumission de réponse pour le questionnaire {SURVEYNAME}]]></email_admin_notification_subj>
    <email_admin_notification><![CDATA[Bonjour,<br />
<br />
Une nouvelle réponse a été soumise pour votre questionnaire '{SURVEYNAME}'.<br />
<br />
Cliquez sur le lien suivant pour voir la réponse :<br />
{VIEWRESPONSEURL}<br />
<br />
Cliquez sur le lien suivant pour éditer la réponse :<br />
{EDITRESPONSEURL}<br />
<br />
Visualisez les statistiques en cliquant ici :<br />
{STATISTICSURL}]]></email_admin_notification>
    <email_admin_responses_subj><![CDATA[Soumission de réponse pour le questionnaire {SURVEYNAME} avec résultats]]></email_admin_responses_subj>
    <email_admin_responses><![CDATA[Bonjour,<br />
<br />
Une nouvelle réponse a été soumise pour votre questionnaire '{SURVEYNAME}'.<br />
<br />
Cliquez sur le lien suivant pour voir cette réponse :<br />
{VIEWRESPONSEURL}<br />
<br />
Cliquez sur le lien suivant pour éditer cette réponse individuelle :<br />
{EDITRESPONSEURL}<br />
<br />
Visualisez les statistiques en cliquant ici :<br />
{STATISTICSURL}<br />
<br />
<br />
Les réponses suivantes ont été données par le participant :<br />
{ANSWERTABLE}]]></email_admin_responses>
    <surveyls_numberformat><![CDATA[0]]></surveyls_numberformat>
   </row>
  </rows>
 </surveys_languagesettings>
 <themes>
  <theme>
   <sid>769498</sid>
   <template_name>advantages</template_name>
   <config>
    <options>inherit</options>
   </config>
  </theme>
 </themes>
 <themes_inherited>
  <theme>
   <sid>769498</sid>
   <template_name>advantages</template_name>
   <config>
    <options>
     <hideprivacyinfo>off</hideprivacyinfo>
     <container>on</container>
     <questionhtag>off</questionhtag>
     <brandlogo>off</brandlogo>
     <brandlogofile>./files/logo.png</brandlogofile>
     <brandlogobylang>off</brandlogobylang>
     <brandlogoalt>&quot;&quot;</brandlogoalt>
     <brandlogoasbanner>off</brandlogoasbanner>
     <surveylistlogo>on</surveylistlogo>
     <surveylistlogofile>./files/survey_list_header.png</surveylistlogofile>
     <poweredlogo>on</poweredlogo>
     <poweredlogofile>./files/poweredby.png</poweredlogofile>
     <poweredlink>https://advantages.fr/</poweredlink>
     <poweredtext>La performance de l'IT via la satisfaction des utilisateurs</poweredtext>
     <mandatoryposition>astip</mandatoryposition>
     <errorattop>on</errorattop>
     <questioncolor>primary</questioncolor>
     <dangercolor>on</dangercolor>
     <questionwrap>none</questionwrap>
     <questionsize>h4</questionsize>
     <helpcolor>text-info</helpcolor>
     <validitycolor>text-info</validitycolor>
     <fixedheader>off</fixedheader>
     <headercontainer>off</headercontainer>
     <titlelocation>header</titlelocation>
     <theme>off</theme>
     <bodyloaded>on</bodyloaded>
     <removeback>on</removeback>
     <fixnumauto>disable</fixnumauto>
     <dynamicvalidity>off</dynamicvalidity>
     <savelink>on</savelink>
     <clearalllink>on</clearalllink>
     <indexlink>on</indexlink>
     <languagelink>on</languagelink>
     <previouslink>off</previouslink>
     <nextsubmitlink>off</nextsubmitlink>
     <showclearall>on</showclearall>
     <tableheader>on</tableheader>
     <availablevariations>{
  &quot;advantages&quot;: {
    &quot;name&quot;: &quot;Advantages&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;contrast&quot;: {
    &quot;name&quot;: &quot;Contrast&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;bootstrap&quot;: {
    &quot;name&quot;: &quot;Bootstrap&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;cerulean&quot;: {
    &quot;name&quot;: &quot;Cerulean&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;cosmo&quot;: {
    &quot;name&quot;: &quot;Cosmo&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;cyborg&quot;: {
    &quot;name&quot;: &quot;Cyborg&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;darkly&quot;: {
    &quot;name&quot;: &quot;Darkly&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;flatly&quot;: {
    &quot;name&quot;: &quot;Flatly&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;journal&quot;: {
    &quot;name&quot;: &quot;Journal&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;lumen&quot;: {
    &quot;name&quot;: &quot;Lumen&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;paper&quot;: {
    &quot;name&quot;: &quot;Paper&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;readable&quot;: {
    &quot;name&quot;: &quot;Readable&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;sandstone&quot;: {
    &quot;name&quot;: &quot;Sandstone&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;simplex&quot;: {
    &quot;name&quot;: &quot;Simplex&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;slate&quot;: {
    &quot;name&quot;: &quot;Slate&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;spacelab&quot;: {
    &quot;name&quot;: &quot;Spacelab&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;superhero&quot;: {
    &quot;name&quot;: &quot;Superhero&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;united&quot;: {
    &quot;name&quot;: &quot;United&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;yeti&quot;: {
    &quot;name&quot;: &quot;Yeti&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-apple_blossom&quot;: {
    &quot;name&quot;: &quot;(Fruity) Apple Blossom&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-black_pearl&quot;: {
    &quot;name&quot;: &quot;(Fruity) Black Pearl&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-free_magenta&quot;: {
    &quot;name&quot;: &quot;(Fruity) Free magenta&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-purple_tentacle&quot;: {
    &quot;name&quot;: &quot;(Fruity) Purple Tentacle&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-sea_green&quot;: {
    &quot;name&quot;: &quot;(Fruity) Sea Green&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-skyline_blue&quot;: {
    &quot;name&quot;: &quot;(Fruity) Skyline Blue&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-sunset_orange&quot;: {
    &quot;name&quot;: &quot;(Fruity) Sunset Orange&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  }
}</availablevariations>
    </options>
   </config>
  </theme>
 </themes_inherited>
</document>
limesurvey_survey_CheckDate.lss (24,205 bytes)   
Bug heat12
Complete LimeSurvey version number (& build) 3.28.29
I will donate to the project if issue is resolvedNo
Browsernot relevant
Database type & versionnot relevant
Server OS (if known)debian
Webserver software & version (if known)not relevant
PHP Versionn

Relationships

related to 18494 closedtibor.pacalat TypeError during demo survey "ls205_em_tailoring" 

Users monitoring this issue

There are no users monitoring this issue.

Activities

ollehar

ollehar

2022-10-06 10:49

administrator   ~72142

Type-cast enough here?

DenisChenu

DenisChenu

2022-10-06 11:05

developer   ~72148

No : need an extra function

And you can NOT type cast for all function … you are not sure they all need integer … some need or use string.
https://github.com/LimeSurvey/LimeSurvey/blob/b634379e6f02565b6f2101ee3b0625d35110baec/application/helpers/expressions/em_core_helper.php#L2211

The current way for other function https://github.com/LimeSurvey/LimeSurvey/blob/b634379e6f02565b6f2101ee3b0625d35110baec/application/helpers/expressions/em_core_helper.php#L202 LEMcheckdate

DenisChenu

DenisChenu

2022-10-06 11:06

developer   ~72149

Assign it to me if it's needed (it's not a major issuse : seems we never test it with debug set)

gabrieljenik

gabrieljenik

2022-10-17 15:34

manager   ~72289

From what I see in the warning, the function is getting called with empty parameters

/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(823): ExpressionManager->RDP_RunFunction(array("checkdate", 95, "WORD"), array("", "", ""))

Being empy, is not part of the problem?

DenisChenu

DenisChenu

2022-10-17 16:00

developer   ~72291

Being empy, is not part of the problem?

Yes, BUT : it's the case when you don't have value in expression.

You can not in expression manager do this
if(!empty($value)) {callfunction($value))

Then : you need a php wrapper to avoid such situation (with devug set)

gabrieljenik

gabrieljenik

2022-10-17 16:28

manager   ~72300

it's the case when you don't have value in expression.

What use case would that be?

DenisChenu

DenisChenu

2022-10-17 16:30

developer   ~72301

But :

  • value is not set (because question is not answered for example)
  • in question summary : it's always string …

Can you just try the «Steps to reproduce» please …

DenisChenu

DenisChenu

2022-10-17 16:33

developer   ~72302

You want LimeSurvey user always use {checkdate(intval(Q01.NAOK),intval(Q02.NAOK),intval(Q03.NAOK))}

Really ?

DenisChenu

DenisChenu

2022-10-17 16:35

developer   ~72303

Why we create a https://github.com/LimeSurvey/LimeSurvey/blob/b634379e6f02565b6f2101ee3b0625d35110baec/application/helpers/expressions/em_core_helper.php#L207
?
exprmgr_date ?

Exactly same purpose : a wrapper to check if timestamp is number

gabrieljenik

gabrieljenik

2022-10-17 16:37

manager   ~72304

Can you just try the «Steps to reproduce» please …

You were analyzing the issue. I was just trying to help, being a partner on which you can discuss the issue.
2 people analyzing deeply the same problem it is worth only if it is a big problem.

You want LimeSurvey user always use {checkdate(intval(Q01.NAOK),intval(Q02.NAOK),intval(Q03.NAOK))}

Why not a .NAOKIntpostfix? could be called .NA0 or for more differentiation .NAZ (for NAZero)

DenisChenu

DenisChenu

2022-10-17 16:59

developer   ~72305

You were analyzing the issue. I was just trying to help, being a partner on which you can discuss the issue.

Yes, but create an issue + a survey etc … take time … then for discussuion : best is to really check the issue …

Why not a .NAOKIntpostfix? could be called .NA0 or for more differentiation .NAZ (for NAZero)

You think simple LimeSurvey user want to have again new suffix and understans why they have to use it ? Even .NAOK is not used a lot …

Have a wrapper is easy,

And here : checkdate("","STRING","A1") return false is what user think they have, no ?

I really don't understand your point here …

gabrieljenik

gabrieljenik

2022-10-17 17:04

manager   ~72306

And here : checkdate("","STRING","A1") return false is what user think they have, no ?

Sorry not following here.

Still is OK. I will leave the discussion.
I guess no need for having 2 people spending deep time on this.
You have it under control.

Thanks!

DenisChenu

DenisChenu

2022-10-17 17:17

developer   ~72307

Sorry not following here.

See the sample survey : checking date on value entered by user
Another one : try to check date on multipe text quetsion

{if(is_int(Multi_month.NAOK) and is_int(Multi_day.NAOK) and is_int(Multi_year.NAOK),
    if(checkdate(Multi_month.NAOK,Multi_day.NAOK,Multi_year.NAOK),&quot;Valid date&quot;,&quot;Not a valid date&quot;)
   , &quot;No a valid date&quot;
)}

import and set debug …

limesurvey_survey_checkDataMultiText.lss (23,615 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<document>
 <LimeSurveyDocType>Survey</LimeSurveyDocType>
 <DBVersion>366</DBVersion>
 <languages>
  <language>fr</language>
 </languages>
 <groups>
  <fields>
   <fieldname>gid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>group_name</fieldname>
   <fieldname>group_order</fieldname>
   <fieldname>description</fieldname>
   <fieldname>language</fieldname>
   <fieldname>randomization_group</fieldname>
   <fieldname>grelevance</fieldname>
  </fields>
  <rows>
   <row>
    <gid><![CDATA[983]]></gid>
    <sid><![CDATA[679412]]></sid>
    <group_name><![CDATA[Another]]></group_name>
    <group_order><![CDATA[0]]></group_order>
    <description/>
    <language><![CDATA[fr]]></language>
    <randomization_group/>
    <grelevance/>
   </row>
  </rows>
 </groups>
 <questions>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>parent_qid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>type</fieldname>
   <fieldname>title</fieldname>
   <fieldname>question</fieldname>
   <fieldname>preg</fieldname>
   <fieldname>help</fieldname>
   <fieldname>other</fieldname>
   <fieldname>mandatory</fieldname>
   <fieldname>question_order</fieldname>
   <fieldname>language</fieldname>
   <fieldname>scale_id</fieldname>
   <fieldname>same_default</fieldname>
   <fieldname>relevance</fieldname>
   <fieldname>modulename</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[17736]]></qid>
    <parent_qid><![CDATA[0]]></parent_qid>
    <sid><![CDATA[679412]]></sid>
    <gid><![CDATA[983]]></gid>
    <type><![CDATA[Q]]></type>
    <title><![CDATA[Multi]]></title>
    <question><![CDATA[{if(is_int(Multi_month.NAOK) and is_int(Multi_day.NAOK) and is_int(Multi_year.NAOK),
    if(checkdate(Multi_month.NAOK,Multi_day.NAOK,Multi_year.NAOK),"Valid date","Not a valid date")
   , "No a valid date"
)}]]></question>
    <preg/>
    <help/>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <question_order><![CDATA[1]]></question_order>
    <language><![CDATA[fr]]></language>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <modulename/>
   </row>
  </rows>
 </questions>
 <subquestions>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>parent_qid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>type</fieldname>
   <fieldname>title</fieldname>
   <fieldname>question</fieldname>
   <fieldname>preg</fieldname>
   <fieldname>help</fieldname>
   <fieldname>other</fieldname>
   <fieldname>mandatory</fieldname>
   <fieldname>question_order</fieldname>
   <fieldname>language</fieldname>
   <fieldname>scale_id</fieldname>
   <fieldname>same_default</fieldname>
   <fieldname>relevance</fieldname>
   <fieldname>modulename</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[17737]]></qid>
    <parent_qid><![CDATA[17736]]></parent_qid>
    <sid><![CDATA[679412]]></sid>
    <gid><![CDATA[983]]></gid>
    <type><![CDATA[T]]></type>
    <title><![CDATA[month]]></title>
    <question><![CDATA[month]]></question>
    <other><![CDATA[N]]></other>
    <question_order><![CDATA[1]]></question_order>
    <language><![CDATA[fr]]></language>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <modulename/>
   </row>
   <row>
    <qid><![CDATA[17738]]></qid>
    <parent_qid><![CDATA[17736]]></parent_qid>
    <sid><![CDATA[679412]]></sid>
    <gid><![CDATA[983]]></gid>
    <type><![CDATA[T]]></type>
    <title><![CDATA[day]]></title>
    <question><![CDATA[day]]></question>
    <other><![CDATA[N]]></other>
    <question_order><![CDATA[2]]></question_order>
    <language><![CDATA[fr]]></language>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <modulename/>
   </row>
   <row>
    <qid><![CDATA[17739]]></qid>
    <parent_qid><![CDATA[17736]]></parent_qid>
    <sid><![CDATA[679412]]></sid>
    <gid><![CDATA[983]]></gid>
    <type><![CDATA[T]]></type>
    <title><![CDATA[year]]></title>
    <question><![CDATA[year]]></question>
    <other><![CDATA[N]]></other>
    <question_order><![CDATA[3]]></question_order>
    <language><![CDATA[fr]]></language>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <modulename/>
   </row>
  </rows>
 </subquestions>
 <surveys>
  <fields>
   <fieldname>sid</fieldname>
   <fieldname>gsid</fieldname>
   <fieldname>admin</fieldname>
   <fieldname>expires</fieldname>
   <fieldname>startdate</fieldname>
   <fieldname>adminemail</fieldname>
   <fieldname>anonymized</fieldname>
   <fieldname>faxto</fieldname>
   <fieldname>format</fieldname>
   <fieldname>savetimings</fieldname>
   <fieldname>template</fieldname>
   <fieldname>language</fieldname>
   <fieldname>additional_languages</fieldname>
   <fieldname>datestamp</fieldname>
   <fieldname>usecookie</fieldname>
   <fieldname>allowregister</fieldname>
   <fieldname>allowsave</fieldname>
   <fieldname>autonumber_start</fieldname>
   <fieldname>autoredirect</fieldname>
   <fieldname>allowprev</fieldname>
   <fieldname>printanswers</fieldname>
   <fieldname>ipaddr</fieldname>
   <fieldname>refurl</fieldname>
   <fieldname>showsurveypolicynotice</fieldname>
   <fieldname>publicstatistics</fieldname>
   <fieldname>publicgraphs</fieldname>
   <fieldname>listpublic</fieldname>
   <fieldname>htmlemail</fieldname>
   <fieldname>sendconfirmation</fieldname>
   <fieldname>tokenanswerspersistence</fieldname>
   <fieldname>assessments</fieldname>
   <fieldname>usecaptcha</fieldname>
   <fieldname>usetokens</fieldname>
   <fieldname>bounce_email</fieldname>
   <fieldname>attributedescriptions</fieldname>
   <fieldname>emailresponseto</fieldname>
   <fieldname>emailnotificationto</fieldname>
   <fieldname>tokenlength</fieldname>
   <fieldname>showxquestions</fieldname>
   <fieldname>showgroupinfo</fieldname>
   <fieldname>shownoanswer</fieldname>
   <fieldname>showqnumcode</fieldname>
   <fieldname>bouncetime</fieldname>
   <fieldname>bounceprocessing</fieldname>
   <fieldname>bounceaccounttype</fieldname>
   <fieldname>bounceaccounthost</fieldname>
   <fieldname>bounceaccountpass</fieldname>
   <fieldname>bounceaccountencryption</fieldname>
   <fieldname>bounceaccountuser</fieldname>
   <fieldname>showwelcome</fieldname>
   <fieldname>showprogress</fieldname>
   <fieldname>questionindex</fieldname>
   <fieldname>navigationdelay</fieldname>
   <fieldname>nokeyboard</fieldname>
   <fieldname>alloweditaftercompletion</fieldname>
   <fieldname>googleanalyticsstyle</fieldname>
   <fieldname>googleanalyticsapikey</fieldname>
  </fields>
  <rows>
   <row>
    <sid><![CDATA[679412]]></sid>
    <gsid><![CDATA[1]]></gsid>
    <admin><![CDATA[Denis Chenu]]></admin>
    <adminemail><![CDATA[denis@shnoulle.net]]></adminemail>
    <anonymized><![CDATA[N]]></anonymized>
    <faxto/>
    <format><![CDATA[G]]></format>
    <savetimings><![CDATA[N]]></savetimings>
    <template><![CDATA[advantages]]></template>
    <language><![CDATA[fr]]></language>
    <additional_languages/>
    <datestamp><![CDATA[N]]></datestamp>
    <usecookie><![CDATA[N]]></usecookie>
    <allowregister><![CDATA[N]]></allowregister>
    <allowsave><![CDATA[Y]]></allowsave>
    <autonumber_start><![CDATA[0]]></autonumber_start>
    <autoredirect><![CDATA[N]]></autoredirect>
    <allowprev><![CDATA[N]]></allowprev>
    <printanswers><![CDATA[N]]></printanswers>
    <ipaddr><![CDATA[N]]></ipaddr>
    <refurl><![CDATA[N]]></refurl>
    <showsurveypolicynotice><![CDATA[0]]></showsurveypolicynotice>
    <publicstatistics><![CDATA[N]]></publicstatistics>
    <publicgraphs><![CDATA[N]]></publicgraphs>
    <listpublic><![CDATA[N]]></listpublic>
    <htmlemail><![CDATA[Y]]></htmlemail>
    <sendconfirmation><![CDATA[Y]]></sendconfirmation>
    <tokenanswerspersistence><![CDATA[N]]></tokenanswerspersistence>
    <assessments><![CDATA[N]]></assessments>
    <usecaptcha><![CDATA[N]]></usecaptcha>
    <usetokens><![CDATA[N]]></usetokens>
    <bounce_email><![CDATA[denis@shnoulle.net]]></bounce_email>
    <emailresponseto/>
    <emailnotificationto/>
    <tokenlength><![CDATA[15]]></tokenlength>
    <showxquestions><![CDATA[Y]]></showxquestions>
    <showgroupinfo><![CDATA[B]]></showgroupinfo>
    <shownoanswer><![CDATA[N]]></shownoanswer>
    <showqnumcode><![CDATA[X]]></showqnumcode>
    <bounceprocessing><![CDATA[N]]></bounceprocessing>
    <showwelcome><![CDATA[Y]]></showwelcome>
    <showprogress><![CDATA[Y]]></showprogress>
    <questionindex><![CDATA[0]]></questionindex>
    <navigationdelay><![CDATA[0]]></navigationdelay>
    <nokeyboard><![CDATA[N]]></nokeyboard>
    <alloweditaftercompletion><![CDATA[N]]></alloweditaftercompletion>
   </row>
  </rows>
 </surveys>
 <surveys_languagesettings>
  <fields>
   <fieldname>surveyls_survey_id</fieldname>
   <fieldname>surveyls_language</fieldname>
   <fieldname>surveyls_title</fieldname>
   <fieldname>surveyls_description</fieldname>
   <fieldname>surveyls_welcometext</fieldname>
   <fieldname>surveyls_endtext</fieldname>
   <fieldname>surveyls_policy_notice</fieldname>
   <fieldname>surveyls_policy_error</fieldname>
   <fieldname>surveyls_policy_notice_label</fieldname>
   <fieldname>surveyls_url</fieldname>
   <fieldname>surveyls_urldescription</fieldname>
   <fieldname>surveyls_email_invite_subj</fieldname>
   <fieldname>surveyls_email_invite</fieldname>
   <fieldname>surveyls_email_remind_subj</fieldname>
   <fieldname>surveyls_email_remind</fieldname>
   <fieldname>surveyls_email_register_subj</fieldname>
   <fieldname>surveyls_email_register</fieldname>
   <fieldname>surveyls_email_confirm_subj</fieldname>
   <fieldname>surveyls_email_confirm</fieldname>
   <fieldname>surveyls_dateformat</fieldname>
   <fieldname>surveyls_attributecaptions</fieldname>
   <fieldname>email_admin_notification_subj</fieldname>
   <fieldname>email_admin_notification</fieldname>
   <fieldname>email_admin_responses_subj</fieldname>
   <fieldname>email_admin_responses</fieldname>
   <fieldname>surveyls_numberformat</fieldname>
   <fieldname>attachments</fieldname>
  </fields>
  <rows>
   <row>
    <surveyls_survey_id><![CDATA[679412]]></surveyls_survey_id>
    <surveyls_language><![CDATA[fr]]></surveyls_language>
    <surveyls_title><![CDATA[Test checkdate]]></surveyls_title>
    <surveyls_description/>
    <surveyls_welcometext/>
    <surveyls_endtext/>
    <surveyls_url/>
    <surveyls_urldescription/>
    <surveyls_email_invite_subj><![CDATA[Invitation à participer à un questionnaire]]></surveyls_email_invite_subj>
    <surveyls_email_invite><![CDATA[Dear {FIRSTNAME},<br />
<br />
You have been invited to participate in a survey.<br />
<br />
The survey is titled:<br />
"{SURVEYNAME}"<br />
<br />
"{SURVEYDESCRIPTION}"<br />
<br />
To participate, please click on the link below.<br />
<br />
Sincerely,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Click here to do the survey:<br />
{SURVEYURL}<br />
<br />
Si vous ne souhaitez pas participer à ce questionnaire et ne souhaitez plus recevoir aucune invitation, veuillez cliquer sur le lien suivant :<br />
{OPTOUTURL}<br />
<br />
Si vous êtes sur liste noire mais que vous voulez participer à ce questionnaire et recevoir les invitations, merci de cliquer sur le lien suivant :<br />
{OPTINURL}]]></surveyls_email_invite>
    <surveyls_email_remind_subj><![CDATA[Rappel pour participer à un questionnaire]]></surveyls_email_remind_subj>
    <surveyls_email_remind><![CDATA[Cher(e) {FIRSTNAME},<br />
<br />
Vous avez été invité(e) à participer à un questionnaire récemment.<br />
<br />
Nous avons pris en compte que vous n’avez pas encore complété le questionnaire, et nous vous rappelons que celui-ci est toujours disponible si vous souhaitez participer.<br />
<br />
Le questionnaire est intitulé :<br />
"{SURVEYNAME}"<br />
<br />
"{SURVEYDESCRIPTION}"<br />
<br />
Pour participer, veuillez cliquer sur le lien ci-dessous.<br />
<br />
Cordialement,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Cliquez ici pour faire le questionnaire :<br />
{SURVEYURL}<br />
<br />
Si vous ne souhaitez pas participer à ce questionnaire et ne souhaitez plus recevoir aucune invitation, veuillez cliquer sur le lien suivant :<br />
{OPTOUTURL}]]></surveyls_email_remind>
    <surveyls_email_register_subj><![CDATA[Confirmation d’enregistrement pour le questionnaire]]></surveyls_email_register_subj>
    <surveyls_email_register><![CDATA[Bonjour {FIRSTNAME},<br />
<br />
Vous (ou quelqu’un utilisant votre adresse électronique) vous êtes enregistré pour participer à un questionnaire en ligne intitulé {SURVEYNAME}.<br />
<br />
Pour compléter ce questionnaire, cliquez sur le lien suivant :<br />
{SURVEYURL}<br />
<br />
Si vous avez des questions à propos de ce questionnaire, ou si vous ne vous êtes pas enregistré pour participer à celui-ci et croyez que ce message est une erreur, veuillez contacter {ADMINNAME} à l’adresse {ADMINEMAIL}]]></surveyls_email_register>
    <surveyls_email_confirm_subj><![CDATA[Confirmation de votre participation à notre questionnaire]]></surveyls_email_confirm_subj>
    <surveyls_email_confirm><![CDATA[Dear {FIRSTNAME},<br />
<br />
This email is to confirm that you have completed the survey titled {SURVEYNAME} and your response has been saved. Thank you for participating.<br />
<br />
If you have any further questions about this email, please contact {ADMINNAME} on {ADMINEMAIL}.<br />
<br />
Sincerely,<br />
<br />
{ADMINNAME}]]></surveyls_email_confirm>
    <surveyls_dateformat><![CDATA[5]]></surveyls_dateformat>
    <email_admin_notification_subj><![CDATA[Soumission de réponse pour le questionnaire {SURVEYNAME}]]></email_admin_notification_subj>
    <email_admin_notification><![CDATA[Bonjour,<br />
<br />
Une nouvelle réponse a été soumise pour votre questionnaire '{SURVEYNAME}'.<br />
<br />
Cliquez sur le lien suivant pour voir la réponse :<br />
{VIEWRESPONSEURL}<br />
<br />
Cliquez sur le lien suivant pour éditer la réponse :<br />
{EDITRESPONSEURL}<br />
<br />
Visualisez les statistiques en cliquant ici :<br />
{STATISTICSURL}]]></email_admin_notification>
    <email_admin_responses_subj><![CDATA[Soumission de réponse pour le questionnaire {SURVEYNAME} avec résultats]]></email_admin_responses_subj>
    <email_admin_responses><![CDATA[Bonjour,<br />
<br />
Une nouvelle réponse a été soumise pour votre questionnaire '{SURVEYNAME}'.<br />
<br />
Cliquez sur le lien suivant pour voir cette réponse :<br />
{VIEWRESPONSEURL}<br />
<br />
Cliquez sur le lien suivant pour éditer cette réponse individuelle :<br />
{EDITRESPONSEURL}<br />
<br />
Visualisez les statistiques en cliquant ici :<br />
{STATISTICSURL}<br />
<br />
<br />
Les réponses suivantes ont été données par le participant :<br />
{ANSWERTABLE}]]></email_admin_responses>
    <surveyls_numberformat><![CDATA[0]]></surveyls_numberformat>
   </row>
  </rows>
 </surveys_languagesettings>
 <themes>
  <theme>
   <sid>679412</sid>
   <template_name>advantages</template_name>
   <config>
    <options>inherit</options>
   </config>
  </theme>
 </themes>
 <themes_inherited>
  <theme>
   <sid>679412</sid>
   <template_name>advantages</template_name>
   <config>
    <options>
     <hideprivacyinfo>off</hideprivacyinfo>
     <container>on</container>
     <questionhtag>off</questionhtag>
     <brandlogo>off</brandlogo>
     <brandlogofile>./files/logo.png</brandlogofile>
     <brandlogobylang>off</brandlogobylang>
     <brandlogoalt>&quot;&quot;</brandlogoalt>
     <brandlogoasbanner>off</brandlogoasbanner>
     <surveylistlogo>on</surveylistlogo>
     <surveylistlogofile>./files/survey_list_header.png</surveylistlogofile>
     <poweredlogo>on</poweredlogo>
     <poweredlogofile>./files/poweredby.png</poweredlogofile>
     <poweredlink>https://advantages.fr/</poweredlink>
     <poweredtext>La performance de l'IT via la satisfaction des utilisateurs</poweredtext>
     <mandatoryposition>astip</mandatoryposition>
     <errorattop>on</errorattop>
     <questioncolor>primary</questioncolor>
     <dangercolor>on</dangercolor>
     <questionwrap>none</questionwrap>
     <questionsize>h4</questionsize>
     <helpcolor>text-info</helpcolor>
     <validitycolor>text-info</validitycolor>
     <fixedheader>off</fixedheader>
     <headercontainer>off</headercontainer>
     <titlelocation>header</titlelocation>
     <theme>off</theme>
     <bodyloaded>on</bodyloaded>
     <removeback>on</removeback>
     <fixnumauto>disable</fixnumauto>
     <dynamicvalidity>off</dynamicvalidity>
     <savelink>on</savelink>
     <clearalllink>on</clearalllink>
     <indexlink>on</indexlink>
     <languagelink>on</languagelink>
     <previouslink>off</previouslink>
     <nextsubmitlink>off</nextsubmitlink>
     <showclearall>on</showclearall>
     <tableheader>on</tableheader>
     <availablevariations>{
  &quot;advantages&quot;: {
    &quot;name&quot;: &quot;Advantages&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;contrast&quot;: {
    &quot;name&quot;: &quot;Contrast&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;bootstrap&quot;: {
    &quot;name&quot;: &quot;Bootstrap&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;cerulean&quot;: {
    &quot;name&quot;: &quot;Cerulean&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;cosmo&quot;: {
    &quot;name&quot;: &quot;Cosmo&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;cyborg&quot;: {
    &quot;name&quot;: &quot;Cyborg&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;darkly&quot;: {
    &quot;name&quot;: &quot;Darkly&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;flatly&quot;: {
    &quot;name&quot;: &quot;Flatly&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;journal&quot;: {
    &quot;name&quot;: &quot;Journal&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;lumen&quot;: {
    &quot;name&quot;: &quot;Lumen&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;paper&quot;: {
    &quot;name&quot;: &quot;Paper&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;readable&quot;: {
    &quot;name&quot;: &quot;Readable&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;sandstone&quot;: {
    &quot;name&quot;: &quot;Sandstone&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;simplex&quot;: {
    &quot;name&quot;: &quot;Simplex&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;slate&quot;: {
    &quot;name&quot;: &quot;Slate&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;spacelab&quot;: {
    &quot;name&quot;: &quot;Spacelab&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;superhero&quot;: {
    &quot;name&quot;: &quot;Superhero&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;united&quot;: {
    &quot;name&quot;: &quot;United&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;yeti&quot;: {
    &quot;name&quot;: &quot;Yeti&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-apple_blossom&quot;: {
    &quot;name&quot;: &quot;(Fruity) Apple Blossom&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-black_pearl&quot;: {
    &quot;name&quot;: &quot;(Fruity) Black Pearl&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-free_magenta&quot;: {
    &quot;name&quot;: &quot;(Fruity) Free magenta&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-purple_tentacle&quot;: {
    &quot;name&quot;: &quot;(Fruity) Purple Tentacle&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-sea_green&quot;: {
    &quot;name&quot;: &quot;(Fruity) Sea Green&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-skyline_blue&quot;: {
    &quot;name&quot;: &quot;(Fruity) Skyline Blue&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-sunset_orange&quot;: {
    &quot;name&quot;: &quot;(Fruity) Sunset Orange&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  }
}</availablevariations>
    </options>
   </config>
  </theme>
 </themes_inherited>
</document>
DenisChenu

DenisChenu

2022-10-18 14:40

developer   ~72325

Fix for master only.
https://github.com/LimeSurvey/LimeSurvey/pull/2675

gabrieljenik

gabrieljenik

2022-11-16 14:46

manager   ~72772

@DenisChenu I left some comments on the PR

DenisChenu

DenisChenu

2022-11-16 15:10

developer   ~72775

@DenisChenu I left some comments on the PR

I don't see it ?
https://github.com/LimeSurvey/LimeSurvey/pull/2675

DenisChenu

DenisChenu

2022-11-16 19:46

developer   ~72778

limesurvey_survey_CheckDateBis.lss (29,717 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<document>
 <LimeSurveyDocType>Survey</LimeSurveyDocType>
 <DBVersion>493</DBVersion>
 <languages>
  <language>fr</language>
 </languages>
 <groups>
  <fields>
   <fieldname>gid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>group_order</fieldname>
   <fieldname>randomization_group</fieldname>
   <fieldname>grelevance</fieldname>
  </fields>
  <rows>
   <row>
    <gid><![CDATA[1156]]></gid>
    <sid><![CDATA[769498]]></sid>
    <group_order><![CDATA[1]]></group_order>
    <randomization_group/>
    <grelevance><![CDATA[1]]></grelevance>
   </row>
  </rows>
 </groups>
 <group_l10ns>
  <fields>
   <fieldname>id</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>group_name</fieldname>
   <fieldname>description</fieldname>
   <fieldname>language</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>group_order</fieldname>
   <fieldname>randomization_group</fieldname>
   <fieldname>grelevance</fieldname>
  </fields>
  <rows>
   <row>
    <id><![CDATA[1304]]></id>
    <gid><![CDATA[1156]]></gid>
    <group_name><![CDATA[Mon premier groupe de question]]></group_name>
    <description/>
    <language><![CDATA[fr]]></language>
    <sid><![CDATA[769498]]></sid>
    <group_order><![CDATA[1]]></group_order>
    <randomization_group/>
    <grelevance><![CDATA[1]]></grelevance>
   </row>
  </rows>
 </group_l10ns>
 <questions>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>parent_qid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>type</fieldname>
   <fieldname>title</fieldname>
   <fieldname>preg</fieldname>
   <fieldname>other</fieldname>
   <fieldname>mandatory</fieldname>
   <fieldname>encrypted</fieldname>
   <fieldname>question_order</fieldname>
   <fieldname>scale_id</fieldname>
   <fieldname>same_default</fieldname>
   <fieldname>relevance</fieldname>
   <fieldname>modulename</fieldname>
   <fieldname>question_theme_name</fieldname>
   <fieldname>same_script</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[11408]]></qid>
    <parent_qid><![CDATA[0]]></parent_qid>
    <sid><![CDATA[769498]]></sid>
    <gid><![CDATA[1156]]></gid>
    <type><![CDATA[;]]></type>
    <title><![CDATA[Q00]]></title>
    <preg/>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[1]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <modulename/>
    <question_theme_name><![CDATA[arrays/texts]]></question_theme_name>
    <same_script><![CDATA[0]]></same_script>
   </row>
  </rows>
 </questions>
 <subquestions>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>parent_qid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>type</fieldname>
   <fieldname>title</fieldname>
   <fieldname>preg</fieldname>
   <fieldname>other</fieldname>
   <fieldname>mandatory</fieldname>
   <fieldname>encrypted</fieldname>
   <fieldname>question_order</fieldname>
   <fieldname>scale_id</fieldname>
   <fieldname>same_default</fieldname>
   <fieldname>relevance</fieldname>
   <fieldname>modulename</fieldname>
   <fieldname>question_theme_name</fieldname>
   <fieldname>same_script</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[11413]]></qid>
    <parent_qid><![CDATA[11408]]></parent_qid>
    <sid><![CDATA[769498]]></sid>
    <gid><![CDATA[1156]]></gid>
    <type><![CDATA[T]]></type>
    <title><![CDATA[SY001]]></title>
    <other><![CDATA[N]]></other>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[0]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <question_theme_name><![CDATA[longfreetext]]></question_theme_name>
    <same_script><![CDATA[0]]></same_script>
   </row>
   <row>
    <qid><![CDATA[11414]]></qid>
    <parent_qid><![CDATA[11408]]></parent_qid>
    <sid><![CDATA[769498]]></sid>
    <gid><![CDATA[1156]]></gid>
    <type><![CDATA[T]]></type>
    <title><![CDATA[SX001]]></title>
    <other><![CDATA[N]]></other>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[1]]></question_order>
    <scale_id><![CDATA[1]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance/>
    <question_theme_name><![CDATA[longfreetext]]></question_theme_name>
    <same_script><![CDATA[0]]></same_script>
   </row>
  </rows>
 </subquestions>
 <question_l10ns>
  <fields>
   <fieldname>id</fieldname>
   <fieldname>qid</fieldname>
   <fieldname>question</fieldname>
   <fieldname>help</fieldname>
   <fieldname>script</fieldname>
   <fieldname>language</fieldname>
  </fields>
  <rows>
   <row>
    <id><![CDATA[14668]]></id>
    <qid><![CDATA[11408]]></qid>
    <question><![CDATA[Une première question comme exemple. Veuillez répondre à cette question :
<br>
checkdate('12','12','2022') = {checkdate('12','12','2022')} ]]></question>
    <help><![CDATA[Put date as dd/mm/YYYY]]></help>
    <script/>
    <language><![CDATA[fr]]></language>
   </row>
   <row>
    <id><![CDATA[14673]]></id>
    <qid><![CDATA[11413]]></qid>
    <question><![CDATA[SY001]]></question>
    <language><![CDATA[fr]]></language>
   </row>
   <row>
    <id><![CDATA[14674]]></id>
    <qid><![CDATA[11414]]></qid>
    <question><![CDATA[SX001]]></question>
    <language><![CDATA[fr]]></language>
   </row>
  </rows>
 </question_l10ns>
 <question_attributes>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>attribute</fieldname>
   <fieldname>value</fieldname>
   <fieldname>language</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[answer_width]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[array_filter]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[array_filter_exclude]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[array_filter_style]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[clear_default]]></attribute>
    <value><![CDATA[N]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[cssclass]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[em_validation_q]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[em_validation_q_tip]]></attribute>
    <value/>
    <language><![CDATA[fr]]></language>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[em_validation_sq]]></attribute>
    <value><![CDATA[regexMatch("/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/", this.NAOK)
and
checkdate(substr(this.NAOK,3,2),substr(this.NAOK,0,2),substr(this.NAOK,6,4))]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[em_validation_sq_tip]]></attribute>
    <value><![CDATA[La date semble invalide.]]></value>
    <language><![CDATA[fr]]></language>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[hidden]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[hide_tip]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[input_size]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[javascript]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[jquerySimpleMask_mask]]></attribute>
    <value><![CDATA[00/00/0000]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[jquerySimpleMask_placeholder]]></attribute>
    <value><![CDATA[00/00/0000]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[jquerySimpleMask_reverse]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[max_answers]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[maximum_chars]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[min_answers]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[numbers_only]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[page_break]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[placeholder]]></attribute>
    <value/>
    <language><![CDATA[fr]]></language>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[random_group]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[random_order]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[repeat_headings]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[save_as_default]]></attribute>
    <value><![CDATA[N]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[scriptActivate]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[show_grand_total]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[show_totals]]></attribute>
    <value><![CDATA[X]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[statistics_graphtype]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[11408]]></qid>
    <attribute><![CDATA[statistics_showgraph]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
  </rows>
 </question_attributes>
 <surveys>
  <fields>
   <fieldname>sid</fieldname>
   <fieldname>gsid</fieldname>
   <fieldname>admin</fieldname>
   <fieldname>expires</fieldname>
   <fieldname>startdate</fieldname>
   <fieldname>adminemail</fieldname>
   <fieldname>anonymized</fieldname>
   <fieldname>faxto</fieldname>
   <fieldname>format</fieldname>
   <fieldname>savetimings</fieldname>
   <fieldname>template</fieldname>
   <fieldname>language</fieldname>
   <fieldname>additional_languages</fieldname>
   <fieldname>datestamp</fieldname>
   <fieldname>usecookie</fieldname>
   <fieldname>allowregister</fieldname>
   <fieldname>allowsave</fieldname>
   <fieldname>autonumber_start</fieldname>
   <fieldname>autoredirect</fieldname>
   <fieldname>allowprev</fieldname>
   <fieldname>printanswers</fieldname>
   <fieldname>ipaddr</fieldname>
   <fieldname>ipanonymize</fieldname>
   <fieldname>refurl</fieldname>
   <fieldname>showsurveypolicynotice</fieldname>
   <fieldname>publicstatistics</fieldname>
   <fieldname>publicgraphs</fieldname>
   <fieldname>listpublic</fieldname>
   <fieldname>htmlemail</fieldname>
   <fieldname>sendconfirmation</fieldname>
   <fieldname>tokenanswerspersistence</fieldname>
   <fieldname>assessments</fieldname>
   <fieldname>usecaptcha</fieldname>
   <fieldname>usetokens</fieldname>
   <fieldname>bounce_email</fieldname>
   <fieldname>attributedescriptions</fieldname>
   <fieldname>emailresponseto</fieldname>
   <fieldname>emailnotificationto</fieldname>
   <fieldname>tokenlength</fieldname>
   <fieldname>showxquestions</fieldname>
   <fieldname>showgroupinfo</fieldname>
   <fieldname>shownoanswer</fieldname>
   <fieldname>showqnumcode</fieldname>
   <fieldname>bouncetime</fieldname>
   <fieldname>bounceprocessing</fieldname>
   <fieldname>bounceaccounttype</fieldname>
   <fieldname>bounceaccounthost</fieldname>
   <fieldname>bounceaccountpass</fieldname>
   <fieldname>bounceaccountencryption</fieldname>
   <fieldname>bounceaccountuser</fieldname>
   <fieldname>showwelcome</fieldname>
   <fieldname>showprogress</fieldname>
   <fieldname>questionindex</fieldname>
   <fieldname>navigationdelay</fieldname>
   <fieldname>nokeyboard</fieldname>
   <fieldname>alloweditaftercompletion</fieldname>
   <fieldname>googleanalyticsstyle</fieldname>
   <fieldname>googleanalyticsapikey</fieldname>
   <fieldname>tokenencryptionoptions</fieldname>
  </fields>
  <rows>
   <row>
    <sid><![CDATA[769498]]></sid>
    <gsid><![CDATA[1]]></gsid>
    <admin><![CDATA[Denis Chenu]]></admin>
    <adminemail><![CDATA[denis@shnoulle.net]]></adminemail>
    <anonymized><![CDATA[N]]></anonymized>
    <faxto/>
    <format><![CDATA[G]]></format>
    <savetimings><![CDATA[N]]></savetimings>
    <template><![CDATA[skelvanilla]]></template>
    <language><![CDATA[fr]]></language>
    <additional_languages/>
    <datestamp><![CDATA[N]]></datestamp>
    <usecookie><![CDATA[N]]></usecookie>
    <allowregister><![CDATA[N]]></allowregister>
    <allowsave><![CDATA[Y]]></allowsave>
    <autonumber_start><![CDATA[0]]></autonumber_start>
    <autoredirect><![CDATA[N]]></autoredirect>
    <allowprev><![CDATA[N]]></allowprev>
    <printanswers><![CDATA[N]]></printanswers>
    <ipaddr><![CDATA[N]]></ipaddr>
    <ipanonymize><![CDATA[N]]></ipanonymize>
    <refurl><![CDATA[N]]></refurl>
    <showsurveypolicynotice><![CDATA[0]]></showsurveypolicynotice>
    <publicstatistics><![CDATA[N]]></publicstatistics>
    <publicgraphs><![CDATA[N]]></publicgraphs>
    <listpublic><![CDATA[N]]></listpublic>
    <htmlemail><![CDATA[Y]]></htmlemail>
    <sendconfirmation><![CDATA[Y]]></sendconfirmation>
    <tokenanswerspersistence><![CDATA[N]]></tokenanswerspersistence>
    <assessments><![CDATA[N]]></assessments>
    <usecaptcha><![CDATA[N]]></usecaptcha>
    <usetokens><![CDATA[N]]></usetokens>
    <bounce_email><![CDATA[denis@shnoulle.net]]></bounce_email>
    <emailresponseto/>
    <emailnotificationto/>
    <tokenlength><![CDATA[15]]></tokenlength>
    <showxquestions><![CDATA[Y]]></showxquestions>
    <showgroupinfo><![CDATA[B]]></showgroupinfo>
    <shownoanswer><![CDATA[N]]></shownoanswer>
    <showqnumcode><![CDATA[X]]></showqnumcode>
    <bounceprocessing><![CDATA[N]]></bounceprocessing>
    <showwelcome><![CDATA[Y]]></showwelcome>
    <showprogress><![CDATA[Y]]></showprogress>
    <questionindex><![CDATA[0]]></questionindex>
    <navigationdelay><![CDATA[0]]></navigationdelay>
    <nokeyboard><![CDATA[N]]></nokeyboard>
    <alloweditaftercompletion><![CDATA[N]]></alloweditaftercompletion>
    <tokenencryptionoptions/>
   </row>
  </rows>
 </surveys>
 <surveys_languagesettings>
  <fields>
   <fieldname>surveyls_survey_id</fieldname>
   <fieldname>surveyls_language</fieldname>
   <fieldname>surveyls_title</fieldname>
   <fieldname>surveyls_description</fieldname>
   <fieldname>surveyls_welcometext</fieldname>
   <fieldname>surveyls_endtext</fieldname>
   <fieldname>surveyls_policy_notice</fieldname>
   <fieldname>surveyls_policy_error</fieldname>
   <fieldname>surveyls_policy_notice_label</fieldname>
   <fieldname>surveyls_url</fieldname>
   <fieldname>surveyls_urldescription</fieldname>
   <fieldname>surveyls_email_invite_subj</fieldname>
   <fieldname>surveyls_email_invite</fieldname>
   <fieldname>surveyls_email_remind_subj</fieldname>
   <fieldname>surveyls_email_remind</fieldname>
   <fieldname>surveyls_email_register_subj</fieldname>
   <fieldname>surveyls_email_register</fieldname>
   <fieldname>surveyls_email_confirm_subj</fieldname>
   <fieldname>surveyls_email_confirm</fieldname>
   <fieldname>surveyls_dateformat</fieldname>
   <fieldname>surveyls_attributecaptions</fieldname>
   <fieldname>email_admin_notification_subj</fieldname>
   <fieldname>email_admin_notification</fieldname>
   <fieldname>email_admin_responses_subj</fieldname>
   <fieldname>email_admin_responses</fieldname>
   <fieldname>surveyls_numberformat</fieldname>
   <fieldname>attachments</fieldname>
   <fieldname>surveyls_alias</fieldname>
  </fields>
  <rows>
   <row>
    <surveyls_survey_id><![CDATA[769498]]></surveyls_survey_id>
    <surveyls_language><![CDATA[fr]]></surveyls_language>
    <surveyls_title><![CDATA[Test checkdate]]></surveyls_title>
    <surveyls_description/>
    <surveyls_welcometext/>
    <surveyls_endtext/>
    <surveyls_url/>
    <surveyls_urldescription/>
    <surveyls_email_invite_subj><![CDATA[Invitation à participer à un questionnaire]]></surveyls_email_invite_subj>
    <surveyls_email_invite><![CDATA[Dear {FIRSTNAME},<br />
<br />
You have been invited to participate in a survey.<br />
<br />
The survey is titled:<br />
"{SURVEYNAME}"<br />
<br />
"{SURVEYDESCRIPTION}"<br />
<br />
To participate, please click on the link below.<br />
<br />
Sincerely,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Click here to do the survey:<br />
{SURVEYURL}<br />
<br />
Si vous ne souhaitez pas participer à ce questionnaire et ne souhaitez plus recevoir aucune invitation, veuillez cliquer sur le lien suivant :<br />
{OPTOUTURL}<br />
<br />
Si vous êtes sur liste noire mais que vous voulez participer à ce questionnaire et recevoir les invitations, merci de cliquer sur le lien suivant :<br />
{OPTINURL}]]></surveyls_email_invite>
    <surveyls_email_remind_subj><![CDATA[Rappel pour participer à un questionnaire]]></surveyls_email_remind_subj>
    <surveyls_email_remind><![CDATA[Cher(e) {FIRSTNAME},<br />
<br />
Vous avez été invité(e) à participer à un questionnaire récemment.<br />
<br />
Nous avons pris en compte que vous n’avez pas encore complété le questionnaire, et nous vous rappelons que celui-ci est toujours disponible si vous souhaitez participer.<br />
<br />
Le questionnaire est intitulé :<br />
"{SURVEYNAME}"<br />
<br />
"{SURVEYDESCRIPTION}"<br />
<br />
Pour participer, veuillez cliquer sur le lien ci-dessous.<br />
<br />
Cordialement,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Cliquez ici pour faire le questionnaire :<br />
{SURVEYURL}<br />
<br />
Si vous ne souhaitez pas participer à ce questionnaire et ne souhaitez plus recevoir aucune invitation, veuillez cliquer sur le lien suivant :<br />
{OPTOUTURL}]]></surveyls_email_remind>
    <surveyls_email_register_subj><![CDATA[Confirmation d’enregistrement pour le questionnaire]]></surveyls_email_register_subj>
    <surveyls_email_register><![CDATA[Bonjour {FIRSTNAME},<br />
<br />
Vous (ou quelqu’un utilisant votre adresse électronique) vous êtes enregistré pour participer à un questionnaire en ligne intitulé {SURVEYNAME}.<br />
<br />
Pour compléter ce questionnaire, cliquez sur le lien suivant :<br />
{SURVEYURL}<br />
<br />
Si vous avez des questions à propos de ce questionnaire, ou si vous ne vous êtes pas enregistré pour participer à celui-ci et croyez que ce message est une erreur, veuillez contacter {ADMINNAME} à l’adresse {ADMINEMAIL}]]></surveyls_email_register>
    <surveyls_email_confirm_subj><![CDATA[Confirmation de votre participation à notre questionnaire]]></surveyls_email_confirm_subj>
    <surveyls_email_confirm><![CDATA[Dear {FIRSTNAME},<br />
<br />
This email is to confirm that you have completed the survey titled {SURVEYNAME} and your response has been saved. Thank you for participating.<br />
<br />
If you have any further questions about this email, please contact {ADMINNAME} on {ADMINEMAIL}.<br />
<br />
Sincerely,<br />
<br />
{ADMINNAME}]]></surveyls_email_confirm>
    <surveyls_dateformat><![CDATA[5]]></surveyls_dateformat>
    <email_admin_notification_subj><![CDATA[Soumission de réponse pour le questionnaire {SURVEYNAME}]]></email_admin_notification_subj>
    <email_admin_notification><![CDATA[Bonjour,<br />
<br />
Une nouvelle réponse a été soumise pour votre questionnaire '{SURVEYNAME}'.<br />
<br />
Cliquez sur le lien suivant pour voir la réponse :<br />
{VIEWRESPONSEURL}<br />
<br />
Cliquez sur le lien suivant pour éditer la réponse :<br />
{EDITRESPONSEURL}<br />
<br />
Visualisez les statistiques en cliquant ici :<br />
{STATISTICSURL}]]></email_admin_notification>
    <email_admin_responses_subj><![CDATA[Soumission de réponse pour le questionnaire {SURVEYNAME} avec résultats]]></email_admin_responses_subj>
    <email_admin_responses><![CDATA[Bonjour,<br />
<br />
Une nouvelle réponse a été soumise pour votre questionnaire '{SURVEYNAME}'.<br />
<br />
Cliquez sur le lien suivant pour voir cette réponse :<br />
{VIEWRESPONSEURL}<br />
<br />
Cliquez sur le lien suivant pour éditer cette réponse individuelle :<br />
{EDITRESPONSEURL}<br />
<br />
Visualisez les statistiques en cliquant ici :<br />
{STATISTICSURL}<br />
<br />
<br />
Les réponses suivantes ont été données par le participant :<br />
{ANSWERTABLE}]]></email_admin_responses>
    <surveyls_numberformat><![CDATA[0]]></surveyls_numberformat>
   </row>
  </rows>
 </surveys_languagesettings>
 <themes>
  <theme>
   <sid>769498</sid>
   <template_name>skelvanilla</template_name>
   <config>
    <options>inherit</options>
   </config>
  </theme>
 </themes>
 <themes_inherited>
  <theme>
   <sid>769498</sid>
   <template_name>skelvanilla</template_name>
   <config>
    <options>
     <hideprivacyinfo>off</hideprivacyinfo>
     <container>on</container>
     <questionhtag>off</questionhtag>
     <brandlogo>off</brandlogo>
     <brandlogofile>image::theme::files/logo.png</brandlogofile>
     <brandlogobylang>off</brandlogobylang>
     <brandlogoalt>&quot;&quot;</brandlogoalt>
     <brandlogoasbanner>off</brandlogoasbanner>
     <surveylistlogo>on</surveylistlogo>
     <surveylistlogofile>./files/survey_list_header.png</surveylistlogofile>
     <poweredlogo>on</poweredlogo>
     <poweredlogofile>image::theme::files/poweredby.png</poweredlogofile>
     <poweredlink>https://sondages.pro</poweredlink>
     <poweredtext>Theme by Sondages Pro</poweredtext>
     <mandatoryposition>astip</mandatoryposition>
     <errorattop>on</errorattop>
     <questioncolor>primary</questioncolor>
     <dangercolor>on</dangercolor>
     <questionwrap>none</questionwrap>
     <questionsize>h4</questionsize>
     <helpcolor>text-info</helpcolor>
     <validitycolor>text-info</validitycolor>
     <fixedheader>off</fixedheader>
     <headercontainer>off</headercontainer>
     <titlelocation>header</titlelocation>
     <theme>off</theme>
     <bodyloaded>on</bodyloaded>
     <removeback>on</removeback>
     <fixnumauto>disable</fixnumauto>
     <dynamicvalidity>off</dynamicvalidity>
     <savelink>on</savelink>
     <clearalllink>on</clearalllink>
     <indexlink>on</indexlink>
     <languagelink>on</languagelink>
     <previouslink>off</previouslink>
     <nextsubmitlink>off</nextsubmitlink>
     <showclearall>on</showclearall>
     <tableheader>on</tableheader>
     <availablevariations>{
  &quot;contrast&quot;: {
    &quot;name&quot;: &quot;Contrast&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;bootstrap&quot;: {
    &quot;name&quot;: &quot;Bootstrap&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;cerulean&quot;: {
    &quot;name&quot;: &quot;Cerulean&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;cosmo&quot;: {
    &quot;name&quot;: &quot;Cosmo&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;cyborg&quot;: {
    &quot;name&quot;: &quot;Cyborg&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;darkly&quot;: {
    &quot;name&quot;: &quot;Darkly&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;flatly&quot;: {
    &quot;name&quot;: &quot;Flatly&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;journal&quot;: {
    &quot;name&quot;: &quot;Journal&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;lumen&quot;: {
    &quot;name&quot;: &quot;Lumen&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;paper&quot;: {
    &quot;name&quot;: &quot;Paper&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;readable&quot;: {
    &quot;name&quot;: &quot;Readable&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;sandstone&quot;: {
    &quot;name&quot;: &quot;Sandstone&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;simplex&quot;: {
    &quot;name&quot;: &quot;Simplex&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;slate&quot;: {
    &quot;name&quot;: &quot;Slate&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;spacelab&quot;: {
    &quot;name&quot;: &quot;Spacelab&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;superhero&quot;: {
    &quot;name&quot;: &quot;Superhero&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;united&quot;: {
    &quot;name&quot;: &quot;United&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;yeti&quot;: {
    &quot;name&quot;: &quot;Yeti&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-apple_blossom&quot;: {
    &quot;name&quot;: &quot;(Fruity) Apple Blossom&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-black_pearl&quot;: {
    &quot;name&quot;: &quot;(Fruity) Black Pearl&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-free_magenta&quot;: {
    &quot;name&quot;: &quot;(Fruity) Free magenta&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-purple_tentacle&quot;: {
    &quot;name&quot;: &quot;(Fruity) Purple Tentacle&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-sea_green&quot;: {
    &quot;name&quot;: &quot;(Fruity) Sea Green&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-skyline_blue&quot;: {
    &quot;name&quot;: &quot;(Fruity) Skyline Blue&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  },
  &quot;fruity-sunset_orange&quot;: {
    &quot;name&quot;: &quot;(Fruity) Sunset Orange&quot;,
    &quot;base&quot;: &quot;1&quot;,
    &quot;button&quot;: &quot;1&quot;,
    &quot;awesome&quot;: &quot;1&quot;,
    &quot;button_awesome&quot;: &quot;1&quot;
  }
}</availablevariations>
    </options>
   </config>
  </theme>
 </themes_inherited>
</document>
DenisChenu

DenisChenu

2022-11-17 15:46

developer   ~72802

@twilllig : maybe you can test ?
Since it's near same issue than https://bugs.limesurvey.org/view.php?id=18494 ?

tibor.pacalat

tibor.pacalat

2023-06-06 15:49

administrator   ~75440

@DenisChenu currently the PR is for master, but the PR is not up to date with master.
This bug was originally reported for 3.x, I tested with the survey provided and it errors out.
So, I think we need 3 PRs, for 3.x, 5.x and master.

DenisChenu

DenisChenu

2023-06-06 16:12

developer   ~75441

Old PR.

DenisChenu

DenisChenu

2023-06-08 19:23

developer   ~75497

I don't care of this issue

Ask to @gabrieljenik to take it.

gabrieljenik

gabrieljenik

2023-06-12 15:05

manager   ~75548

PR for master: https://github.com/LimeSurvey/LimeSurvey/pull/3214

gabrieljenik

gabrieljenik

2023-06-12 15:18

manager   ~75549

Quick question: Shouldn't these kind of call be enclosed in try/catch?
https://github.com/LimeSurvey/LimeSurvey/blob/master/application/helpers/expressions/em_core_helper.php#L2237

That way we could handle a bit better warnings / errors?
Am I missing something?

gabrieljenik

gabrieljenik

2023-06-12 15:19

manager   ~75550

I think this could be merged...

DenisChenu

DenisChenu

2023-06-12 16:02

developer   ~75554

That way we could handle a bit better warnings / errors?

We really not need to fix warnings/error

Because : Expession script don't have real way to do this {if(is_integer(Q00.NAOK), checkdate(1,1,Q00.NAOK)} the checkdate action happen in all condition.

And more : when test, do the expression validation : the Q00 can be null or string with Q00 as numeric question.

See : https://forums.limesurvey.org/index.php/forum/installation-a-update-issues/135120-error-500-round-argument-1-$num-must-be-of-type-int-float,-string-given#244158

We MUST fix it transparently : because there are no way for user to check/test the value before the function.

DenisChenu

DenisChenu

2023-06-12 17:16

developer   ~75562

Sorry , didn't look at the link.

Quick question: Shouldn't these kind of call be enclosed in try/catch?

Unsure … why not, i tryto find some reason to not try/catch for us.

Is something like hiding issue, i think it's best if Function developper do it himself, unsure …

Else : https://github.com/LimeSurvey/LimeSurvey/blob/de071e01d299b41cc79cc4067f06760ef351da31/application/helpers/expressions/em_core_helper.php#L2213
we need a exprmng_atan2 …

guest

guest

2023-06-13 12:07

viewer   ~75592

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&amp;id=34803

guest

guest

2023-06-13 12:07

viewer   ~75593

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&amp;id=34804

LimeBot

LimeBot

2023-06-19 11:52

administrator   ~75709

Fixed in Release 6.1.4+230620

Related Changesets

LimeSurvey: master b80eb910

2023-06-13 12:07:39

Gabriel Jenik


Committer: GitHub Details Diff
Fixed issue 18401: Unable to use checkdate function if debug set (#3214)

Co-authored-by: Lapiu Dev <devgit@lapiu.biz>
Affected Issues
18401
mod - application/helpers/expressions/em_core_helper.php Diff File
add - tests/unit/helpers/CheckDateWrapTest.php Diff File

LimeSurvey: master b80eb910

2023-06-13 12:07:39

Gabriel Jenik


Committer: GitHub Details Diff
Fixed issue 18401: Unable to use checkdate function if debug set (#3214)

Co-authored-by: Lapiu Dev <devgit@lapiu.biz>
Affected Issues
18401
mod - application/helpers/expressions/em_core_helper.php Diff File
add - tests/unit/helpers/CheckDateWrapTest.php Diff File

Issue History

Date Modified Username Field Change
2022-10-05 17:14 DenisChenu New Issue
2022-10-05 17:14 DenisChenu File Added: PHP warning.html
2022-10-05 17:14 DenisChenu File Added: limesurvey_survey_CheckDate.lss
2022-10-06 10:49 ollehar Note Added: 72142
2022-10-06 10:49 ollehar Bug heat 0 => 2
2022-10-06 10:49 ollehar Priority none => normal
2022-10-06 11:05 DenisChenu Note Added: 72148
2022-10-06 11:05 DenisChenu Bug heat 2 => 4
2022-10-06 11:05 DenisChenu Assigned To => DenisChenu
2022-10-06 11:05 DenisChenu Status new => assigned
2022-10-06 11:06 DenisChenu Assigned To DenisChenu =>
2022-10-06 11:06 DenisChenu Status assigned => new
2022-10-06 11:06 DenisChenu Note Added: 72149
2022-10-17 15:34 gabrieljenik Note Added: 72289
2022-10-17 15:34 gabrieljenik Bug heat 4 => 6
2022-10-17 15:34 gabrieljenik Assigned To => DenisChenu
2022-10-17 15:34 gabrieljenik Status new => assigned
2022-10-17 16:00 DenisChenu Note Added: 72291
2022-10-17 16:28 gabrieljenik Note Added: 72300
2022-10-17 16:30 DenisChenu Note Added: 72301
2022-10-17 16:33 DenisChenu Note Added: 72302
2022-10-17 16:35 DenisChenu Note Added: 72303
2022-10-17 16:37 gabrieljenik Note Added: 72304
2022-10-17 16:59 DenisChenu Note Added: 72305
2022-10-17 17:04 gabrieljenik Note Added: 72306
2022-10-17 17:17 DenisChenu Note Added: 72307
2022-10-17 17:17 DenisChenu File Added: limesurvey_survey_checkDataMultiText.lss
2022-10-18 14:40 DenisChenu Assigned To DenisChenu => gabrieljenik
2022-10-18 14:40 DenisChenu Status assigned => ready for code review
2022-10-18 14:40 DenisChenu Note Added: 72325
2022-11-16 14:46 gabrieljenik Note Added: 72772
2022-11-16 15:10 DenisChenu Note Added: 72775
2022-11-16 19:46 DenisChenu Note Added: 72778
2022-11-16 19:46 DenisChenu File Added: limesurvey_survey_CheckDateBis.lss
2022-11-16 19:46 DenisChenu File Added: Capture d’écran du 2022-11-16 19-46-01.png
2022-11-17 14:40 DenisChenu Relationship added related to 18494
2022-11-17 15:45 gabrieljenik Assigned To gabrieljenik => DenisChenu
2022-11-17 15:45 gabrieljenik Status ready for code review => ready for testing
2022-11-17 15:46 DenisChenu Note Added: 72802
2022-11-17 15:46 DenisChenu Assigned To DenisChenu =>
2023-06-06 15:49 tibor.pacalat Note Added: 75440
2023-06-06 15:49 tibor.pacalat Bug heat 6 => 8
2023-06-06 16:12 DenisChenu Note Added: 75441
2023-06-08 19:22 DenisChenu Assigned To => gabrieljenik
2023-06-08 19:23 DenisChenu Note Added: 75497
2023-06-08 19:23 DenisChenu Status ready for testing => new
2023-06-08 19:23 DenisChenu Status new => assigned
2023-06-12 15:05 gabrieljenik Note Added: 75548
2023-06-12 15:06 gabrieljenik Assigned To gabrieljenik => DenisChenu
2023-06-12 15:06 gabrieljenik Status assigned => ready for code review
2023-06-12 15:18 gabrieljenik Note Added: 75549
2023-06-12 15:19 gabrieljenik Assigned To DenisChenu => tibor.pacalat
2023-06-12 15:19 gabrieljenik Status ready for code review => ready for merge
2023-06-12 15:19 gabrieljenik Note Added: 75550
2023-06-12 15:22 gabrieljenik Assigned To tibor.pacalat => gabrieljenik
2023-06-12 15:22 gabrieljenik Status ready for merge => assigned
2023-06-12 16:02 DenisChenu Note Added: 75554
2023-06-12 17:16 DenisChenu Note Added: 75562
2023-06-13 12:07 Changeset attached => LimeSurvey master b80eb910
2023-06-13 12:07 Changeset attached => LimeSurvey master b80eb910
2023-06-13 12:07 guest Note Added: 75592
2023-06-13 12:07 guest Note Added: 75593
2023-06-13 12:07 guest Bug heat 8 => 10
2023-06-13 12:07 guest Bug heat 8 => 10
2023-06-19 11:52 LimeBot Note Added: 75709
2023-06-19 11:52 LimeBot Status assigned => closed
2023-06-19 11:52 LimeBot Resolution open => fixed
2023-06-19 11:52 LimeBot Bug heat 10 => 12