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 |