View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 18401 | Bug reports | Expression Manager | public | 2022-10-05 17:14 | 2023-06-19 11:52 |
| Reporter | DenisChenu | Assigned To | gabrieljenik | ||
| Priority | normal | Severity | partial_block | ||
| Status | closed | Resolution | fixed | ||
| Product Version | 3.28.x | ||||
| Summary | 18401: 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 reproduceImport included survey Expected resultPHP warning Actual resultreturn false without exception | ||||
| Tags | No 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->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->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->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>
/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->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->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(823): <strong>ExpressionManager</strong>-><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->RDP_pos; // consume the token so can process next clause
<span class="error"><span class="ln error-ln">823</span> return $this->RDP_RunFunction($funcNameToken, $params);
</span><span class="ln">824</span> } else {
<span class="ln">825</span> if ($this->RDP_EvaluateExpression()) {
<span class="ln">826</span> $value = $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(630): <strong>ExpressionManager</strong>-><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->RDP_pos + 1) < $this->RDP_count and $this->RDP_tokens[($this->RDP_pos + 1)][2] == 'LP') {
<span class="error"><span class="ln error-ln">630</span> return $this->RDP_EvaluateFunction();
</span><span class="ln">631</span> } else {
<span class="ln">632</span> if ($this->RDP_isValidVariable($token[0])) {
<span class="ln">633</span> $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(968): <strong>ExpressionManager</strong>-><strong>RDP_EvaluateConstantVarOrFunction</strong>() </div>
<div class="code"><pre><span class="ln">963</span> $this->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->RDP_pos;
<span class="error"><span class="ln error-ln">968</span> return $this->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, <, >, <=, >=)
</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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(1038): <strong>ExpressionManager</strong>-><strong>RDP_EvaluatePrimaryExpression</strong>() </div>
<div class="code"><pre><span class="ln">1033</span> --$this->RDP_pos;
<span class="ln">1034</span> return $this->RDP_EvaluatePrimaryExpression();
<span class="ln">1035</span> }
<span class="ln">1036</span> } else {
<span class="ln">1037</span> --$this->RDP_pos;
<span class="error"><span class="ln error-ln">1038</span> return $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(912): <strong>ExpressionManager</strong>-><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->RDP_EvaluateUnaryExpression()) {
</span><span class="ln">913</span> return false;
<span class="ln">914</span> }
<span class="ln">915</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">916</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(578): <strong>ExpressionManager</strong>-><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->RDP_EvaluateMultiplicativeExpression()) {
</span><span class="ln">579</span> return false;
<span class="ln">580</span> }
<span class="ln">581</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">582</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(978): <strong>ExpressionManager</strong>-><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, <, >, <=, >=)
<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->RDP_EvaluateAdditiveExpression()) {
</span><span class="ln">979</span> return false;
<span class="ln">980</span> }
<span class="ln">981</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">982</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(670): <strong>ExpressionManager</strong>-><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->RDP_EvaluateRelationExpression()) {
</span><span class="ln">671</span> return false;
<span class="ln">672</span> }
<span class="ln">673</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">674</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(854): <strong>ExpressionManager</strong>-><strong>RDP_EvaluateEqualityExpression</strong>() </div>
<div class="code"><pre><span class="ln">849</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">850</span> $token = $this->RDP_tokens[++$this->RDP_pos];
<span class="ln">851</span> switch (strtolower($token[0])) {
<span class="ln">852</span> case '&&':
<span class="ln">853</span> case 'and':
<span class="error"><span class="ln error-ln">854</span> if ($this->RDP_EvaluateEqualityExpression()) {
</span><span class="ln">855</span> if (!$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(877): <strong>ExpressionManager</strong>-><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->RDP_EvaluateLogicalAndExpression()) {
</span><span class="ln">878</span> return false;
<span class="ln">879</span> }
<span class="ln">880</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">881</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(736): <strong>ExpressionManager</strong>-><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->RDP_pos -= 2;
<span class="error"><span class="ln error-ln">736</span> return $this->RDP_EvaluateLogicalOrExpression();
</span><span class="ln">737</span> }
<span class="ln">738</span> } else {
<span class="ln">739</span> return $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(750): <strong>ExpressionManager</strong>-><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->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->RDP_pos < $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(956): <strong>ExpressionManager</strong>-><strong>RDP_EvaluateExpressions</strong>() </div>
<div class="code"><pre><span class="ln">951</span> $this->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->RDP_tokens[++$this->RDP_pos];
<span class="ln">955</span> if ($token[2] == 'LP') {
<span class="error"><span class="ln error-ln">956</span> if (!$this->RDP_EvaluateExpressions()) {
</span><span class="ln">957</span> return false;
<span class="ln">958</span> }
<span class="ln">959</span> $token = $this->RDP_tokens[$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(1027): <strong>ExpressionManager</strong>-><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->RDP_EvaluatePrimaryExpression()) {
</span><span class="ln">1028</span> return false;
<span class="ln">1029</span> }
<span class="ln">1030</span> return $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(912): <strong>ExpressionManager</strong>-><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->RDP_EvaluateUnaryExpression()) {
</span><span class="ln">913</span> return false;
<span class="ln">914</span> }
<span class="ln">915</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">916</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(578): <strong>ExpressionManager</strong>-><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->RDP_EvaluateMultiplicativeExpression()) {
</span><span class="ln">579</span> return false;
<span class="ln">580</span> }
<span class="ln">581</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">582</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(978): <strong>ExpressionManager</strong>-><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, <, >, <=, >=)
<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->RDP_EvaluateAdditiveExpression()) {
</span><span class="ln">979</span> return false;
<span class="ln">980</span> }
<span class="ln">981</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">982</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(670): <strong>ExpressionManager</strong>-><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->RDP_EvaluateRelationExpression()) {
</span><span class="ln">671</span> return false;
<span class="ln">672</span> }
<span class="ln">673</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">674</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(846): <strong>ExpressionManager</strong>-><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->RDP_EvaluateEqualityExpression()) {
</span><span class="ln">847</span> return false;
<span class="ln">848</span> }
<span class="ln">849</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">850</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(877): <strong>ExpressionManager</strong>-><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->RDP_EvaluateLogicalAndExpression()) {
</span><span class="ln">878</span> return false;
<span class="ln">879</span> }
<span class="ln">880</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">881</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(736): <strong>ExpressionManager</strong>-><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->RDP_pos -= 2;
<span class="error"><span class="ln error-ln">736</span> return $this->RDP_EvaluateLogicalOrExpression();
</span><span class="ln">737</span> }
<span class="ln">738</span> } else {
<span class="ln">739</span> return $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(825): <strong>ExpressionManager</strong>-><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->RDP_pos; // consume the token so can process next clause
<span class="ln">823</span> return $this->RDP_RunFunction($funcNameToken, $params);
<span class="ln">824</span> } else {
<span class="error"><span class="ln error-ln">825</span> if ($this->RDP_EvaluateExpression()) {
</span><span class="ln">826</span> $value = $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(630): <strong>ExpressionManager</strong>-><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->RDP_pos + 1) < $this->RDP_count and $this->RDP_tokens[($this->RDP_pos + 1)][2] == 'LP') {
<span class="error"><span class="ln error-ln">630</span> return $this->RDP_EvaluateFunction();
</span><span class="ln">631</span> } else {
<span class="ln">632</span> if ($this->RDP_isValidVariable($token[0])) {
<span class="ln">633</span> $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(968): <strong>ExpressionManager</strong>-><strong>RDP_EvaluateConstantVarOrFunction</strong>() </div>
<div class="code"><pre><span class="ln">963</span> $this->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->RDP_pos;
<span class="error"><span class="ln error-ln">968</span> return $this->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, <, >, <=, >=)
</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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(1038): <strong>ExpressionManager</strong>-><strong>RDP_EvaluatePrimaryExpression</strong>() </div>
<div class="code"><pre><span class="ln">1033</span> --$this->RDP_pos;
<span class="ln">1034</span> return $this->RDP_EvaluatePrimaryExpression();
<span class="ln">1035</span> }
<span class="ln">1036</span> } else {
<span class="ln">1037</span> --$this->RDP_pos;
<span class="error"><span class="ln error-ln">1038</span> return $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(912): <strong>ExpressionManager</strong>-><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->RDP_EvaluateUnaryExpression()) {
</span><span class="ln">913</span> return false;
<span class="ln">914</span> }
<span class="ln">915</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">916</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(578): <strong>ExpressionManager</strong>-><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->RDP_EvaluateMultiplicativeExpression()) {
</span><span class="ln">579</span> return false;
<span class="ln">580</span> }
<span class="ln">581</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">582</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(978): <strong>ExpressionManager</strong>-><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, <, >, <=, >=)
<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->RDP_EvaluateAdditiveExpression()) {
</span><span class="ln">979</span> return false;
<span class="ln">980</span> }
<span class="ln">981</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">982</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(670): <strong>ExpressionManager</strong>-><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->RDP_EvaluateRelationExpression()) {
</span><span class="ln">671</span> return false;
<span class="ln">672</span> }
<span class="ln">673</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">674</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(846): <strong>ExpressionManager</strong>-><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->RDP_EvaluateEqualityExpression()) {
</span><span class="ln">847</span> return false;
<span class="ln">848</span> }
<span class="ln">849</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">850</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(877): <strong>ExpressionManager</strong>-><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->RDP_EvaluateLogicalAndExpression()) {
</span><span class="ln">878</span> return false;
<span class="ln">879</span> }
<span class="ln">880</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">881</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(736): <strong>ExpressionManager</strong>-><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->RDP_pos -= 2;
<span class="error"><span class="ln error-ln">736</span> return $this->RDP_EvaluateLogicalOrExpression();
</span><span class="ln">737</span> }
<span class="ln">738</span> } else {
<span class="ln">739</span> return $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(750): <strong>ExpressionManager</strong>-><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->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->RDP_pos < $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(956): <strong>ExpressionManager</strong>-><strong>RDP_EvaluateExpressions</strong>() </div>
<div class="code"><pre><span class="ln">951</span> $this->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->RDP_tokens[++$this->RDP_pos];
<span class="ln">955</span> if ($token[2] == 'LP') {
<span class="error"><span class="ln error-ln">956</span> if (!$this->RDP_EvaluateExpressions()) {
</span><span class="ln">957</span> return false;
<span class="ln">958</span> }
<span class="ln">959</span> $token = $this->RDP_tokens[$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(1038): <strong>ExpressionManager</strong>-><strong>RDP_EvaluatePrimaryExpression</strong>() </div>
<div class="code"><pre><span class="ln">1033</span> --$this->RDP_pos;
<span class="ln">1034</span> return $this->RDP_EvaluatePrimaryExpression();
<span class="ln">1035</span> }
<span class="ln">1036</span> } else {
<span class="ln">1037</span> --$this->RDP_pos;
<span class="error"><span class="ln error-ln">1038</span> return $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(912): <strong>ExpressionManager</strong>-><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->RDP_EvaluateUnaryExpression()) {
</span><span class="ln">913</span> return false;
<span class="ln">914</span> }
<span class="ln">915</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">916</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(578): <strong>ExpressionManager</strong>-><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->RDP_EvaluateMultiplicativeExpression()) {
</span><span class="ln">579</span> return false;
<span class="ln">580</span> }
<span class="ln">581</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">582</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(978): <strong>ExpressionManager</strong>-><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, <, >, <=, >=)
<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->RDP_EvaluateAdditiveExpression()) {
</span><span class="ln">979</span> return false;
<span class="ln">980</span> }
<span class="ln">981</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">982</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(670): <strong>ExpressionManager</strong>-><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->RDP_EvaluateRelationExpression()) {
</span><span class="ln">671</span> return false;
<span class="ln">672</span> }
<span class="ln">673</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">674</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(846): <strong>ExpressionManager</strong>-><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->RDP_EvaluateEqualityExpression()) {
</span><span class="ln">847</span> return false;
<span class="ln">848</span> }
<span class="ln">849</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">850</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(877): <strong>ExpressionManager</strong>-><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->RDP_EvaluateLogicalAndExpression()) {
</span><span class="ln">878</span> return false;
<span class="ln">879</span> }
<span class="ln">880</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">881</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(736): <strong>ExpressionManager</strong>-><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->RDP_pos -= 2;
<span class="error"><span class="ln error-ln">736</span> return $this->RDP_EvaluateLogicalOrExpression();
</span><span class="ln">737</span> }
<span class="ln">738</span> } else {
<span class="ln">739</span> return $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(750): <strong>ExpressionManager</strong>-><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->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->RDP_pos < $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(956): <strong>ExpressionManager</strong>-><strong>RDP_EvaluateExpressions</strong>() </div>
<div class="code"><pre><span class="ln">951</span> $this->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->RDP_tokens[++$this->RDP_pos];
<span class="ln">955</span> if ($token[2] == 'LP') {
<span class="error"><span class="ln error-ln">956</span> if (!$this->RDP_EvaluateExpressions()) {
</span><span class="ln">957</span> return false;
<span class="ln">958</span> }
<span class="ln">959</span> $token = $this->RDP_tokens[$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(1038): <strong>ExpressionManager</strong>-><strong>RDP_EvaluatePrimaryExpression</strong>() </div>
<div class="code"><pre><span class="ln">1033</span> --$this->RDP_pos;
<span class="ln">1034</span> return $this->RDP_EvaluatePrimaryExpression();
<span class="ln">1035</span> }
<span class="ln">1036</span> } else {
<span class="ln">1037</span> --$this->RDP_pos;
<span class="error"><span class="ln error-ln">1038</span> return $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(912): <strong>ExpressionManager</strong>-><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->RDP_EvaluateUnaryExpression()) {
</span><span class="ln">913</span> return false;
<span class="ln">914</span> }
<span class="ln">915</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">916</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(578): <strong>ExpressionManager</strong>-><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->RDP_EvaluateMultiplicativeExpression()) {
</span><span class="ln">579</span> return false;
<span class="ln">580</span> }
<span class="ln">581</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">582</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(978): <strong>ExpressionManager</strong>-><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, <, >, <=, >=)
<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->RDP_EvaluateAdditiveExpression()) {
</span><span class="ln">979</span> return false;
<span class="ln">980</span> }
<span class="ln">981</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">982</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(670): <strong>ExpressionManager</strong>-><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->RDP_EvaluateRelationExpression()) {
</span><span class="ln">671</span> return false;
<span class="ln">672</span> }
<span class="ln">673</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">674</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(846): <strong>ExpressionManager</strong>-><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->RDP_EvaluateEqualityExpression()) {
</span><span class="ln">847</span> return false;
<span class="ln">848</span> }
<span class="ln">849</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">850</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(877): <strong>ExpressionManager</strong>-><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->RDP_EvaluateLogicalAndExpression()) {
</span><span class="ln">878</span> return false;
<span class="ln">879</span> }
<span class="ln">880</span> while (($this->RDP_pos + 1) < $this->RDP_count) {
<span class="ln">881</span> $token = $this->RDP_tokens[++$this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(736): <strong>ExpressionManager</strong>-><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->RDP_pos -= 2;
<span class="error"><span class="ln error-ln">736</span> return $this->RDP_EvaluateLogicalOrExpression();
</span><span class="ln">737</span> }
<span class="ln">738</span> } else {
<span class="ln">739</span> return $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(750): <strong>ExpressionManager</strong>-><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->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->RDP_pos < $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(549): <strong>ExpressionManager</strong>-><strong>RDP_EvaluateExpressions</strong>() </div>
<div class="code"><pre><span class="ln">544</span> $this->varsUsed = array();
<span class="ln">545</span> $this->jsExpression = null;
<span class="ln">546</span>
<span class="ln">547</span> if ($this->HasSyntaxErrors()) {
<span class="ln">548</span> return false;
<span class="error"><span class="ln error-ln">549</span> } elseif ($this->RDP_EvaluateExpressions()) {
</span><span class="ln">550</span> if ($this->RDP_pos < $this->RDP_count) {
<span class="ln">551</span> $this->RDP_AddError(self::gT("Extra tokens found"), $this->RDP_tokens[$this->RDP_pos]);
<span class="ln">552</span> return false;
<span class="ln">553</span> }
<span class="ln">554</span> $this->RDP_result = $this->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>
/data/webdev/3LTS/application/helpers/expressions/em_core_helper.php(1740): <strong>ExpressionManager</strong>-><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->groupSeq = $groupSeq;
<span class="ln">1737</span> $this->questionSeq = $questionSeq;
<span class="ln">1738</span>
<span class="ln">1739</span> $expr = $this->ExpandThisVar($expr);
<span class="error"><span class="ln error-ln">1740</span> $status = $this->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->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>
/data/webdev/3LTS/application/helpers/expressions/em_manager_helper.php(6741): <strong>ExpressionManager</strong>-><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->qid2validationEqn[$qid]['eqn'];
<span class="ln">6740</span> $validationEqn = implode(' and ', $validationEqns);
<span class="error"><span class="ln error-ln">6741</span> $qvalid = $LEM->em->ProcessBooleanExpression($validationEqn,$qInfo['gseq'], $qInfo['qseq']);
</span><span class="ln">6742</span> $hasErrors = $LEM->em->HasErrors();
<span class="ln">6743</span>
<span class="ln">6744</span> if (!$hasErrors){
<span class="ln">6745</span> $validationJS = $LEM->em->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>
/data/webdev/3LTS/application/helpers/expressions/em_manager_helper.php(6061): <strong>LimeExpressionManager</strong>-><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<=$groupSeqInfo['qend']; ++$i)
<span class="ln">6060</span> {
<span class="error"><span class="ln error-ln">6061</span> $qStatus = $LEM->_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 && $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>
/data/webdev/3LTS/application/helpers/expressions/em_manager_helper.php(5298): <strong>LimeExpressionManager</strong>-><strong>_ValidateGroup</strong>(0) </div>
<div class="code"><pre><span class="ln">5293</span> 'invalidSQs'=>(isset($result['invalidSQs']) ? $result['invalidSQs'] : ''),
<span class="ln">5294</span> );
<span class="ln">5295</span> return $LEM->lastMoveResult;
<span class="ln">5296</span> }
<span class="ln">5297</span>
<span class="error"><span class="ln error-ln">5298</span> $result = $LEM->_ValidateGroup($LEM->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>
/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->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->sMove == "movenext") {
<span class="error"><span class="ln error-ln">842</span> $this->aMoveResult = LimeExpressionManager::NavigateForwards();
</span><span class="ln">843</span> }
<span class="ln">844</span>
<span class="ln">845</span> if (($this->sMove == 'movesubmit')) {
<span class="ln">846</span> if ($this->sSurveyMode == 'survey') {
<span class="ln">847</span> $this->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>
/data/webdev/3LTS/application/helpers/SurveyRuntimeHelper.php(545): <strong>SurveyRuntimeHelper</strong>-><strong>setMoveResult</strong>() </div>
<div class="code"><pre><span class="ln">540</span> $this->initFirstStep(); // If it's the first time user load this survey, will init session and LEM
<span class="ln">541</span> $this->initTotalAndMaxSteps();
<span class="ln">542</span> $this->checkIfUseBrowserNav(); // Check if user used browser navigation, or relaoded page
<span class="ln">543</span> if ($this->sMove != 'clearcancel' && $this->sMove != 'confirmquota') {
<span class="ln">544</span> $this->checkPrevStep(); // Check if prev step is set, else set it
<span class="error"><span class="ln error-ln">545</span> $this->setMoveResult();
</span><span class="ln">546</span> $this->checkClearCancel();
<span class="ln">547</span> $this->setPrevStep();
<span class="ln">548</span> $this->checkIfFinished();
<span class="ln">549</span> $this->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>
/data/webdev/3LTS/application/helpers/SurveyRuntimeHelper.php(104): <strong>SurveyRuntimeHelper</strong>-><strong>initMove</strong>() </div>
<div class="code"><pre><span class="ln">099</span> if (!isset($_SESSION[$this->LEMsessid]['step'])) {
<span class="ln">100</span> $this->showTokenOrCaptchaFormsIfNeeded();
<span class="ln">101</span> }
<span class="ln">102</span>
<span class="ln">103</span> if (!$this->previewgrp && !$this->previewquestion) {
<span class="error"><span class="ln error-ln">104</span> $this->initMove(); // main methods to init session, LEM, moves, errors, etc
</span><span class="ln">105</span> $this->checkForDataSecurityAccepted(); // must be called after initMove to allow LEM to be initialized
<span class="ln">106</span> $this->checkQuotas(); // check quotas (then the process will stop here)
<span class="ln">107</span> $this->displayFirstPageIfNeeded();
<span class="ln">108</span> $this->saveAllIfNeeded();
<span class="ln">109</span> $this->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>
/data/webdev/3LTS/application/controllers/survey/index.php(606): <strong>SurveyRuntimeHelper</strong>-><strong>run</strong>("769498",
array("surveyid" => "769498", "thissurvey" => array("htmlemail"
=> "Y", "format" => "G", "template" => "advantages", "language"
=> "fr", ...), "thisstep" => "0", "tokensexist" => 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->run($surveyid, $redata);
</span><span class="ln">607</span> // } catch (WrongTemplateVersionException $ex) {
<span class="ln">608</span> // echo $ex->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>
/data/webdev/3LTS/application/controllers/survey/index.php(24): <strong>index</strong>-><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->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>
/data/webdev/3LTS/framework/web/actions/CAction.php(76): <strong>index</strong>-><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->getNumberOfParameters()>0)
<span class="ln">74</span> return $this->runWithParamsInternal($this, $method, $params);
<span class="ln">75</span>
<span class="error"><span class="ln error-ln">76</span> $this->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>
/data/webdev/3LTS/framework/web/CController.php(308): <strong>CAction</strong>-><strong>runWithParams</strong>(array("r" => "survey/index", "sid" => "769498")) </div>
<div class="code"><pre><span class="ln">303</span> {
<span class="ln">304</span> $priorAction=$this->_action;
<span class="ln">305</span> $this->_action=$action;
<span class="ln">306</span> if($this->beforeAction($action))
<span class="ln">307</span> {
<span class="error"><span class="ln error-ln">308</span> if($action->runWithParams($this->getActionParams())===false)
</span><span class="ln">309</span> $this->invalidActionParams($action);
<span class="ln">310</span> else
<span class="ln">311</span> $this->afterAction($action);
<span class="ln">312</span> }
<span class="ln">313</span> $this->_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>
/data/webdev/3LTS/framework/web/CController.php(286): <strong>CController</strong>-><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->runAction($action);
</span><span class="ln">287</span> else
<span class="ln">288</span> {
<span class="ln">289</span> $priorAction=$this->_action;
<span class="ln">290</span> $this->_action=$action;
<span class="ln">291</span> CFilterChain::create($this,$action,$filters)->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>
/data/webdev/3LTS/framework/web/CController.php(265): <strong>CController</strong>-><strong>runActionWithFilters</strong>(index, array()) </div>
<div class="code"><pre><span class="ln">260</span> {
<span class="ln">261</span> if(($parent=$this->getModule())===null)
<span class="ln">262</span> $parent=Yii::app();
<span class="ln">263</span> if($parent->beforeControllerAction($this,$action))
<span class="ln">264</span> {
<span class="error"><span class="ln error-ln">265</span> $this->runActionWithFilters($action,$this->filters());
</span><span class="ln">266</span> $parent->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->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>
/data/webdev/3LTS/framework/web/CWebApplication.php(282): <strong>CController</strong>-><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->_controller;
<span class="ln">280</span> $this->_controller=$controller;
<span class="ln">281</span> $controller->init();
<span class="error"><span class="ln error-ln">282</span> $controller->run($actionID);
</span><span class="ln">283</span> $this->_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}'=>$route===''?$this->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>
/data/webdev/3LTS/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-><strong>runController</strong>("survey/index") </div>
<div class="code"><pre><span class="ln">136</span> foreach(array_splice($this->catchAllRequest,1) as $name=>$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->getUrlManager()->parseUrl($this->getRequest());
<span class="error"><span class="ln error-ln">141</span> $this->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>
/data/webdev/3LTS/framework/base/CApplication.php(185): <strong>CWebApplication</strong>-><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->hasEventHandler('onBeginRequest'))
<span class="ln">183</span> $this->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->processRequest();
</span><span class="ln">186</span> if($this->hasEventHandler('onEndRequest'))
<span class="ln">187</span> $this->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>
/data/webdev/3LTS/index.php(194): <strong>CApplication</strong>-><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)->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> 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>""</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>{
"advantages": {
"name": "Advantages",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"contrast": {
"name": "Contrast",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"bootstrap": {
"name": "Bootstrap",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"cerulean": {
"name": "Cerulean",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"cosmo": {
"name": "Cosmo",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"cyborg": {
"name": "Cyborg",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"darkly": {
"name": "Darkly",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"flatly": {
"name": "Flatly",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"journal": {
"name": "Journal",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"lumen": {
"name": "Lumen",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"paper": {
"name": "Paper",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"readable": {
"name": "Readable",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"sandstone": {
"name": "Sandstone",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"simplex": {
"name": "Simplex",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"slate": {
"name": "Slate",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"spacelab": {
"name": "Spacelab",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"superhero": {
"name": "Superhero",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"united": {
"name": "United",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"yeti": {
"name": "Yeti",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-apple_blossom": {
"name": "(Fruity) Apple Blossom",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-black_pearl": {
"name": "(Fruity) Black Pearl",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-free_magenta": {
"name": "(Fruity) Free magenta",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-purple_tentacle": {
"name": "(Fruity) Purple Tentacle",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-sea_green": {
"name": "(Fruity) Sea Green",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-skyline_blue": {
"name": "(Fruity) Skyline Blue",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-sunset_orange": {
"name": "(Fruity) Sunset Orange",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
}
}</availablevariations>
</options>
</config>
</theme>
</themes_inherited>
</document>
| ||||
| Bug heat | 12 | ||||
| Complete LimeSurvey version number (& build) | 3.28.29 | ||||
| I will donate to the project if issue is resolved | No | ||||
| Browser | not relevant | ||||
| Database type & version | not relevant | ||||
| Server OS (if known) | debian | ||||
| Webserver software & version (if known) | not relevant | ||||
| PHP Version | n | ||||
| related to | 18494 | closed | tibor.pacalat | TypeError during demo survey "ls205_em_tailoring" |
|
Type-cast enough here? |
|
|
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. The current way for other function https://github.com/LimeSurvey/LimeSurvey/blob/b634379e6f02565b6f2101ee3b0625d35110baec/application/helpers/expressions/em_core_helper.php#L202 LEMcheckdate |
|
|
Assign it to me if it's needed (it's not a major issuse : seems we never test it with debug set) |
|
|
From what I see in the warning, the function is getting called with empty parameters
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 Then : you need a php wrapper to avoid such situation (with devug set) |
|
What use case would that be? |
|
|
But :
Can you just try the «Steps to reproduce» please … |
|
|
You want LimeSurvey user always use Really ? |
|
|
Why we create a https://github.com/LimeSurvey/LimeSurvey/blob/b634379e6f02565b6f2101ee3b0625d35110baec/application/helpers/expressions/em_core_helper.php#L207 Exactly same purpose : a wrapper to check if timestamp is number |
|
You were analyzing the issue. I was just trying to help, being a partner on which you can discuss the issue.
Why not a |
|
Yes, but create an issue + a survey etc … take time … then for discussuion : best is to really check the issue …
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 … |
|
Sorry not following here. Still is OK. I will leave the discussion. Thanks! |
|
See the sample survey : checking date on value entered by user
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>""</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>{
"advantages": {
"name": "Advantages",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"contrast": {
"name": "Contrast",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"bootstrap": {
"name": "Bootstrap",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"cerulean": {
"name": "Cerulean",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"cosmo": {
"name": "Cosmo",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"cyborg": {
"name": "Cyborg",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"darkly": {
"name": "Darkly",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"flatly": {
"name": "Flatly",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"journal": {
"name": "Journal",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"lumen": {
"name": "Lumen",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"paper": {
"name": "Paper",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"readable": {
"name": "Readable",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"sandstone": {
"name": "Sandstone",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"simplex": {
"name": "Simplex",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"slate": {
"name": "Slate",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"spacelab": {
"name": "Spacelab",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"superhero": {
"name": "Superhero",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"united": {
"name": "United",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"yeti": {
"name": "Yeti",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-apple_blossom": {
"name": "(Fruity) Apple Blossom",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-black_pearl": {
"name": "(Fruity) Black Pearl",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-free_magenta": {
"name": "(Fruity) Free magenta",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-purple_tentacle": {
"name": "(Fruity) Purple Tentacle",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-sea_green": {
"name": "(Fruity) Sea Green",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-skyline_blue": {
"name": "(Fruity) Skyline Blue",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-sunset_orange": {
"name": "(Fruity) Sunset Orange",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
}
}</availablevariations>
</options>
</config>
</theme>
</themes_inherited>
</document>
|
|
|
Fix for master only. |
|
|
@DenisChenu I left some comments on the PR |
|
I don't see it ? |
|
|
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>""</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>{
"contrast": {
"name": "Contrast",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"bootstrap": {
"name": "Bootstrap",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"cerulean": {
"name": "Cerulean",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"cosmo": {
"name": "Cosmo",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"cyborg": {
"name": "Cyborg",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"darkly": {
"name": "Darkly",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"flatly": {
"name": "Flatly",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"journal": {
"name": "Journal",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"lumen": {
"name": "Lumen",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"paper": {
"name": "Paper",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"readable": {
"name": "Readable",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"sandstone": {
"name": "Sandstone",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"simplex": {
"name": "Simplex",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"slate": {
"name": "Slate",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"spacelab": {
"name": "Spacelab",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"superhero": {
"name": "Superhero",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"united": {
"name": "United",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"yeti": {
"name": "Yeti",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-apple_blossom": {
"name": "(Fruity) Apple Blossom",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-black_pearl": {
"name": "(Fruity) Black Pearl",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-free_magenta": {
"name": "(Fruity) Free magenta",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-purple_tentacle": {
"name": "(Fruity) Purple Tentacle",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-sea_green": {
"name": "(Fruity) Sea Green",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-skyline_blue": {
"name": "(Fruity) Skyline Blue",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
},
"fruity-sunset_orange": {
"name": "(Fruity) Sunset Orange",
"base": "1",
"button": "1",
"awesome": "1",
"button_awesome": "1"
}
}</availablevariations>
</options>
</config>
</theme>
</themes_inherited>
</document>
|
|
|
@twilllig : maybe you can test ? |
|
|
@DenisChenu currently the PR is for master, but the PR is not up to date with master. |
|
|
Old PR. |
|
|
I don't care of this issue Ask to @gabrieljenik to take it. |
|
|
PR for master: https://github.com/LimeSurvey/LimeSurvey/pull/3214 |
|
|
Quick question: Shouldn't these kind of call be enclosed in try/catch? That way we could handle a bit better warnings / errors? |
|
|
I think this could be merged... |
|
We really not need to fix warnings/error Because : Expession script don't have real way to do this And more : when test, do the expression validation : the Q00 can be null or string with Q00 as numeric question. We MUST fix it transparently : because there are no way for user to check/test the value before the function. |
|
|
Sorry , didn't look at the link.
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 |
|
|
Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&id=34803 |
|
|
Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&id=34804 |
|
|
Fixed in Release 6.1.4+230620 |
|
|
LimeSurvey: master b80eb910 2023-06-13 14:07 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 14:07 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 | ||
| 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 |