View Issue Details

This bug affects 1 person(s).
 4
IDProjectCategoryView StatusLast Update
18105Bug reportsSurvey takingpublic2022-05-18 14:52
Reporterb8xp5y Assigned Togabrieljenik  
PrioritynoneSeveritypartial_block 
Status closedResolutionno change required 
Product Version5.3.x 
Summary18105: 'Unknown "strpos" function.' when previewing survey
Description

Hi,

I get "Twig\Error\SyntaxError: Unknown "strpos" function. " when previewing a newly created survey.
Haven't found a way to workaround the bug yet.

Thank you

Steps To Reproduce

Steps to reproduce

  1. Run container image docker.io/martialblog/limesurvey:5.3.12-220502-apache@sha256:a340f734ae85ccf2b97c58edfe5cdad2087aae2eb6e02cdb867b2b7d05df6118
  2. Create new survey
  3. Click on "Preview survey"

Expected result

Preview is shown

Actual result

Twig\Error\SyntaxError
Unknown "strpos" function.
in /var/www/html/themes/survey/vanilla/views/subviews/privacy/privacy_datasecurity_notice_label.twig(10)
{% if( strpos( " " ~ dataSecurityNoticeLabel, '{STARTPOLICYLINK}') == false and strpos( " " ~ dataSecurityNoticeLabel, '{ENDPOLICYLINK}') == false) %}

(see attached file for full stack trace)

TagsNo tags attached.
Attached Files
Twig_Error_SyntaxError_2022-05-16T06_22_01.800.html (24,914 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><!--
 Page saved with SingleFile 
 url: https://survey.anaesthesie.meduniwien.ac.at/index.php/324588?newtest=Y&lang=de 
 saved date: Mon May 16 2022 06:22:01 GMT+0000 (Coordinated Universal Time)
--><meta charset=utf-8>
<title>Twig\Error\SyntaxError</title>
<style>html,body,div,span,h1,h2,p,pre,a,strong,table,tbody,tr,td{border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent;margin:0;padding:0}body{line-height:1}:focus{outline:0}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}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-file{cursor:pointer;padding:0.2em}.trace-file:hover{background:#f0ffff}.sf-hidden{display:none!important}</style><link rel=canonical href="https://survey.anaesthesie.meduniwien.ac.at/index.php/324588?newtest=Y&amp;lang=de"><meta http-equiv=content-security-policy content="default-src 'none'; font-src 'self' data:; img-src 'self' data:; style-src 'unsafe-inline'; media-src 'self' data:; script-src 'unsafe-inline' data:;"><style>img[src="data:,"],source[src="data:,"]{display:none!important}</style></head>
<body>
<div class=container>
 <h1>Twig\Error\SyntaxError</h1>
 <p class=message>
 Unknown "strpos" function. </p>
 <div class=source>
 <p class=file>/var/www/html/themes/survey/vanilla/views/subviews/privacy/privacy_datasecurity_notice_label.twig(10)</p>
 <div class=code><pre><span class=ln>01</span> {# 
<span class=ln>02</span>     use aSurveyInfo datasecurity_notice_label
<span class=ln>03</span> #}
<span class=ln>04</span> {% set STARTPOLICYLINK = "" %}
<span class=ln>05</span> {% set ENDPOLICYLINK = "" %}
<span class=ln>06</span> {% if(aSurveyInfo.showsurveypolicynotice == 2) %}
<span class=ln>07</span>     {% set STARTPOLICYLINK = "&lt;a href='#data-security-modal-" ~ aSurveyInfo.sid ~ "' data-toggle='collapse'&gt;" %}
<span class=ln>08</span>     {% set ENDPOLICYLINK = "&lt;/a&gt;" %}
<span class=ln>09</span> {% endif %}
<span class=error><span class="ln error-ln">10</span> {% if( strpos( " " ~ dataSecurityNoticeLabel, '{STARTPOLICYLINK}') == false and strpos( " " ~ dataSecurityNoticeLabel, '{ENDPOLICYLINK}') == false) %}
</span><span class=ln>11</span>     {% set dataSecurityNoticeLabel = dataSecurityNoticeLabel ~ "&lt;br/&gt; {STARTPOLICYLINK}" ~ gT("Show policy") ~ "{ENDPOLICYLINK}" %}
<span class=ln>12</span> {% endif %}
<span class=ln>13</span> {% set haveENDPOLICYLINK = strpos( " " ~ dataSecurityNoticeLabel, '{ENDPOLICYLINK}') %}
<span class=ln>14</span> {% set dataSecurityNoticeLabel = str_replace('{STARTPOLICYLINK}', STARTPOLICYLINK, dataSecurityNoticeLabel) %}
<span class=ln>15</span> {% set dataSecurityNoticeLabel = str_replace('{ENDPOLICYLINK}', ENDPOLICYLINK, dataSecurityNoticeLabel) %}
<span class=ln>16</span> {% if( haveENDPOLICYLINK == false ) %}
<span class=ln>17</span>     {% set dataSecurityNoticeLabel = dataSecurityNoticeLabel ~ ENDPOLICYLINK %}
<span class=ln>18</span> {% endif %}
<span class=ln>19</span> {{ dataSecurityNoticeLabel }}
</pre></div>	</div>
 <div class=traces>
 <h2>Stack Trace</h2>
 <table style=width:100%>
 <tbody><tr class="trace app collapsed">
 <td class=number>
 #0 </td>
 <td class=content>
 <div class=trace-file>
 <div class=plus>+</div>
 <div class="minus sf-hidden">–</div>
 &nbsp;/var/www/html/third_party/twig/twig/src/ExpressionParser.php(470): <strong>Twig\ExpressionParser</strong>-&gt;<strong>getFunctionNodeClass</strong>() </div>
 <div class=code><pre class=sf-hidden> 
                     return $node;
                 }
 
                 $args = $this-&gt;parseArguments(true);
 
                 return new $class($name, $args, $line);
         }
     }
 
</pre></div> </td>
 </tr>
 <tr class="trace app expanded">
 <td class=number>
 #1 </td>
 <td class=content>
 <div class=trace-file>
 <div class="plus sf-hidden">+</div>
 <div class=minus>–</div>
 &nbsp;/var/www/html/third_party/twig/twig/src/ExpressionParser.php(243): <strong>Twig\ExpressionParser</strong>-&gt;<strong>getFunctionNode</strong>() </div>
 <div class=code><pre><span class=ln>238</span>                         $node = new ConstantExpression(null, $token-&gt;getLine());
<span class=ln>239</span>                         break;
<span class=ln>240</span> 
<span class=ln>241</span>                     default:
<span class=ln>242</span>                         if ('(' === $this-&gt;parser-&gt;getCurrentToken()-&gt;getValue()) {
<span class=error><span class="ln error-ln">243</span>                             $node = $this-&gt;getFunctionNode($token-&gt;getValue(), $token-&gt;getLine());
</span><span class=ln>244</span>                         } else {
<span class=ln>245</span>                             $node = new NameExpression($token-&gt;getValue(), $token-&gt;getLine());
<span class=ln>246</span>                         }
<span class=ln>247</span>                 }
<span class=ln>248</span>                 break;
</pre></div> </td>
 </tr>
 <tr class="trace app expanded">
 <td class=number>
 #2 </td>
 <td class=content>
 <div class=trace-file>
 <div class="plus sf-hidden">+</div>
 <div class=minus>–</div>
 &nbsp;/var/www/html/third_party/twig/twig/src/ExpressionParser.php(183): <strong>Twig\ExpressionParser</strong>-&gt;<strong>parsePrimaryExpression</strong>() </div>
 <div class=code><pre><span class=ln>178</span>             $this-&gt;parser-&gt;getStream()-&gt;expect(Token::PUNCTUATION_TYPE, ')', 'An opened parenthesis is not properly closed');
<span class=ln>179</span> 
<span class=ln>180</span>             return $this-&gt;parsePostfixExpression($expr);
<span class=ln>181</span>         }
<span class=ln>182</span> 
<span class=error><span class="ln error-ln">183</span>         return $this-&gt;parsePrimaryExpression();
</span><span class=ln>184</span>     }
<span class=ln>185</span> 
<span class=ln>186</span>     protected function parseConditionalExpression($expr)
<span class=ln>187</span>     {
<span class=ln>188</span>         while ($this-&gt;parser-&gt;getStream()-&gt;nextIf(Token::PUNCTUATION_TYPE, '?')) {
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/third_party/twig/twig/src/ExpressionParser.php(78): <strong>Twig\ExpressionParser</strong>-&gt;<strong>getPrimary</strong>() </div>
 <div class=code><pre class=sf-hidden>     {
         if ($allowArrow &amp;&amp; $arrow = $this-&gt;parseArrow()) {
             return $arrow;
         }
 
         $token = $this-&gt;parser-&gt;getCurrentToken();
         while ($this-&gt;isBinary($token) &amp;&amp; $this-&gt;binaryOperators[$token-&gt;getValue()]['precedence'] &gt;= $precedence) {
             $op = $this-&gt;binaryOperators[$token-&gt;getValue()];
             $this-&gt;parser-&gt;getStream()-&gt;next();
 
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/third_party/twig/twig/src/ExpressionParser.php(177): <strong>Twig\ExpressionParser</strong>-&gt;<strong>parseExpression</strong>() </div>
 <div class=code><pre class=sf-hidden>             $class = $operator['class'];
 
             return $this-&gt;parsePostfixExpression(new $class($expr, $token-&gt;getLine()));
         } elseif ($token-&gt;test(Token::PUNCTUATION_TYPE, '(')) {
             $this-&gt;parser-&gt;getStream()-&gt;next();
             $this-&gt;parser-&gt;getStream()-&gt;expect(Token::PUNCTUATION_TYPE, ')', 'An opened parenthesis is not properly closed');
 
             return $this-&gt;parsePostfixExpression($expr);
         }
 
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/third_party/twig/twig/src/ExpressionParser.php(78): <strong>Twig\ExpressionParser</strong>-&gt;<strong>getPrimary</strong>() </div>
 <div class=code><pre class=sf-hidden>     {
         if ($allowArrow &amp;&amp; $arrow = $this-&gt;parseArrow()) {
             return $arrow;
         }
 
         $token = $this-&gt;parser-&gt;getCurrentToken();
         while ($this-&gt;isBinary($token) &amp;&amp; $this-&gt;binaryOperators[$token-&gt;getValue()]['precedence'] &gt;= $precedence) {
             $op = $this-&gt;binaryOperators[$token-&gt;getValue()];
             $this-&gt;parser-&gt;getStream()-&gt;next();
 
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/third_party/twig/twig/src/TokenParser/IfTokenParser.php(38): <strong>Twig\ExpressionParser</strong>-&gt;<strong>parseExpression</strong>() </div>
 <div class=code><pre class=sf-hidden> class IfTokenParser extends AbstractTokenParser
 {
     public function parse(Token $token)
     {
         $lineno = $token-&gt;getLine();
         $stream = $this-&gt;parser-&gt;getStream();
         $stream-&gt;expect(Token::BLOCK_END_TYPE);
         $body = $this-&gt;parser-&gt;subparse([$this, 'decideIfFork']);
         $tests = [$expr, $body];
         $else = null;
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/third_party/twig/twig/src/Parser.php(209): <strong>Twig\TokenParser\IfTokenParser</strong>-&gt;<strong>parse</strong>() </div>
 <div class=code><pre class=sf-hidden>                         throw $e;
                     }
 
                     $this-&gt;stream-&gt;next();
 
                     if (null !== $node) {
                         $rv[] = $node;
                     }
                     break;
 
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/third_party/twig/twig/src/Parser.php(122): <strong>Twig\Parser</strong>-&gt;<strong>subparse</strong>() </div>
 <div class=code><pre class=sf-hidden>         $this-&gt;importedSymbols = [[]];
         $this-&gt;embeddedTemplates = [];
         $this-&gt;varNameSalt = 0;
 
         try {
 
             if (null !== $this-&gt;parent &amp;&amp; null === $body = $this-&gt;filterBodyNodes($body)) {
                 $body = new Node();
             }
         } catch (SyntaxError $e) {
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/third_party/twig/twig/src/Environment.php(735): <strong>Twig\Parser</strong>-&gt;<strong>parse</strong>() </div>
 <div class=code><pre class=sf-hidden>     {
         if (null === $this-&gt;parser) {
             $this-&gt;parser = new Parser($this);
         }
 
     }
 
     /**
      * Gets the Compiler instance.
      *
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/third_party/twig/twig/src/Environment.php(793): <strong>Twig\Environment</strong>-&gt;<strong>parse</strong>() </div>
 <div class=code><pre class=sf-hidden>             @trigger_error(sprintf('Passing a string as the $source argument of %s() is deprecated since version 1.27. Pass a Twig\Source instance instead.', __METHOD__), E_USER_DEPRECATED);
             $source = new Source($source, $name);
         }
 
         try {
         } catch (Error $e) {
             $e-&gt;setSourceContext($source);
             throw $e;
         } catch (\Exception $e) {
             throw new SyntaxError(sprintf('An exception has been thrown during the compilation of a template ("%s").', $e-&gt;getMessage()), -1, $source, $e);
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/third_party/twig/twig/src/Environment.php(482): <strong>Twig\Environment</strong>-&gt;<strong>compileSource</strong>() </div>
 <div class=code><pre class=sf-hidden>                     $source = new Source($loader-&gt;getSource($name), $name);
                 } else {
                     $source = $loader-&gt;getSourceContext($name);
                 }
 
 
                 if ($this-&gt;bcWriteCacheFile) {
                     $this-&gt;writeCacheFile($key, $content);
                 } else {
                     $this-&gt;cache-&gt;write($key, $content);
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/third_party/twig/twig/src/Environment.php(445): <strong>Twig\Environment</strong>-&gt;<strong>loadClass</strong>() </div>
 <div class=code><pre class=sf-hidden>      *
      * @internal
      */
     public function loadTemplate($name, $index = null)
     {
     }
 
     /**
      * @internal
      */
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/application/core/LSETwigViewRenderer.php(778): <strong>Twig\Environment</strong>-&gt;<strong>loadTemplate</strong>() </div>
 <div class=code><pre class=sf-hidden>     public function renderPartial($twigView, $aData)
     {
         $oTemplate = Template::getLastInstance();
         $aData = $this-&gt;getAdditionalInfos($aData, $oTemplate);
         $this-&gt;addRecursiveTemplatesPath($oTemplate);
     }
 
     /**
      * Get the final source file for current context
      * Currently used in theme editor
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/application/models/Survey.php(2044): <strong>LSETwigViewRenderer</strong>-&gt;<strong>renderPartial</strong>() </div>
 <div class=code><pre class=sf-hidden>             gT("Show policy")
         ];
         return App()-&gt;twigRenderer-&gt;renderPartial(
             '/subviews/privacy/privacy_datasecurity_notice_label.twig',
             [
             ]
         );
     }
 
     /**
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/application/helpers/SurveyRuntimeHelper.php(1065): <strong>Survey</strong>::<strong>replacePolicyLink</strong>() </div>
 <div class=code><pre class=sf-hidden>             if (empty($this-&gt;aSurveyInfo['datasecurity_error'])) {
                 $this-&gt;aSurveyInfo['datasecurity_error'] = gT("We are sorry but you can't proceed without first agreeing to our survey data policy.");
             }
 
 
         }
 
         if ($bDisplayFirstPage) {
             $_SESSION[$this-&gt;LEMsessid]['test'] = time();
             display_first_page($this-&gt;thissurvey, $this-&gt;aSurveyInfo);
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/application/helpers/SurveyRuntimeHelper.php(209): <strong>SurveyRuntimeHelper</strong>-&gt;<strong>displayFirstPageIfNeeded</strong>() </div>
 <div class=code><pre class=sf-hidden>             $this-&gt;checkForDataSecurityAccepted(); // must be called after initMove to allow LEM to be initialized
             if (EmCacheHelper::useCache()) {
                 $this-&gt;aSurveyInfo['emcache'] = true;
             }
             $this-&gt;checkQuotas(); // check quotas (then the process will stop here)
             $this-&gt;saveAllIfNeeded();
             $this-&gt;saveSubmitIfNeeded();
             // TODO: move somewhere else
             $this-&gt;setNotAnsweredAndNotValidated();
         } else {
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/application/controllers/survey/index.php(618): <strong>SurveyRuntimeHelper</strong>-&gt;<strong>run</strong>() </div>
 <div class=code><pre class=sf-hidden>         unset($redata);
         $redata = compact(array_keys(get_defined_vars()));
         Yii::import('application.helpers.SurveyRuntimeHelper');
         $tmp = new SurveyRuntimeHelper();
         // try {
         // } catch (WrongTemplateVersionException $ex) {
         //     echo $ex-&gt;getMessage();
         // }
     }
 
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/application/controllers/survey/index.php(22): <strong>Index</strong>-&gt;<strong>action</strong>() </div>
 <div class=code><pre class=sf-hidden>     public $oTemplate;
 
     public function run()
     {
         useFirebug();
     }
 
     public function action()
     {
         global $surveyid;
</pre></div> </td>
 </tr>
 <tr class="trace core collapsed">
 <td class=number>
 #19 </td>
 <td class=content>
 <div class=trace-file>
 <div class=plus>+</div>
 <div class="minus sf-hidden">–</div>
 &nbsp;/var/www/html/framework/web/actions/CAction.php(76): <strong>Index</strong>-&gt;<strong>run</strong>() </div>
 <div class=code><pre class=sf-hidden>     {
         $method=new ReflectionMethod($this, 'run');
         if($method-&gt;getNumberOfParameters()&gt;0)
             return $this-&gt;runWithParamsInternal($this, $method, $params);
 
         return true;
     }
 
     /**
      * Executes a method of an object with the supplied named parameters.
</pre></div> </td>
 </tr>
 <tr class="trace core collapsed">
 <td class=number>
 #20 </td>
 <td class=content>
 <div class=trace-file>
 <div class=plus>+</div>
 <div class="minus sf-hidden">–</div>
 &nbsp;/var/www/html/framework/web/CController.php(308): <strong>CAction</strong>-&gt;<strong>runWithParams</strong>() </div>
 <div class=code><pre class=sf-hidden>     {
         $priorAction=$this-&gt;_action;
         $this-&gt;_action=$action;
         if($this-&gt;beforeAction($action))
         {
                 $this-&gt;invalidActionParams($action);
             else
                 $this-&gt;afterAction($action);
         }
         $this-&gt;_action=$priorAction;
</pre></div> </td>
 </tr>
 <tr class="trace core collapsed">
 <td class=number>
 #21 </td>
 <td class=content>
 <div class=trace-file>
 <div class=plus>+</div>
 <div class="minus sf-hidden">–</div>
 &nbsp;/var/www/html/framework/web/CController.php(286): <strong>CController</strong>-&gt;<strong>runAction</strong>() </div>
 <div class=code><pre class=sf-hidden>      * @see runAction
      */
     public function runActionWithFilters($action,$filters)
     {
         if(empty($filters))
         else
         {
             $priorAction=$this-&gt;_action;
             $this-&gt;_action=$action;
             CFilterChain::create($this,$action,$filters)-&gt;run();
</pre></div> </td>
 </tr>
 <tr class="trace core collapsed">
 <td class=number>
 #22 </td>
 <td class=content>
 <div class=trace-file>
 <div class=plus>+</div>
 <div class="minus sf-hidden">–</div>
 &nbsp;/var/www/html/framework/web/CController.php(265): <strong>CController</strong>-&gt;<strong>runActionWithFilters</strong>() </div>
 <div class=code><pre class=sf-hidden>         {
             if(($parent=$this-&gt;getModule())===null)
                 $parent=Yii::app();
             if($parent-&gt;beforeControllerAction($this,$action))
             {
                 $parent-&gt;afterControllerAction($this,$action);
             }
         }
         else
             $this-&gt;missingAction($actionID);
</pre></div> </td>
 </tr>
 <tr class="trace core collapsed">
 <td class=number>
 #23 </td>
 <td class=content>
 <div class=trace-file>
 <div class=plus>+</div>
 <div class="minus sf-hidden">–</div>
 &nbsp;/var/www/html/framework/web/CWebApplication.php(282): <strong>CController</strong>-&gt;<strong>run</strong>() </div>
 <div class=code><pre class=sf-hidden>         {
             list($controller,$actionID)=$ca;
             $oldController=$this-&gt;_controller;
             $this-&gt;_controller=$controller;
             $controller-&gt;init();
             $this-&gt;_controller=$oldController;
         }
         else
             throw new CHttpException(404,Yii::t('yii','Unable to resolve the request "{route}".',
                 array('{route}'=&gt;$route===''?$this-&gt;defaultController:$route)));
</pre></div> </td>
 </tr>
 <tr class="trace core collapsed">
 <td class=number>
 #24 </td>
 <td class=content>
 <div class=trace-file>
 <div class=plus>+</div>
 <div class="minus sf-hidden">–</div>
 &nbsp;/var/www/html/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-&gt;<strong>runController</strong>() </div>
 <div class=code><pre class=sf-hidden>             foreach(array_splice($this-&gt;catchAllRequest,1) as $name=&gt;$value)
                 $_GET[$name]=$value;
         }
         else
             $route=$this-&gt;getUrlManager()-&gt;parseUrl($this-&gt;getRequest());
     }
 
     /**
      * Registers the core application components.
      * This method overrides the parent implementation by registering additional core components.
</pre></div> </td>
 </tr>
 <tr class="trace core collapsed">
 <td class=number>
 #25 </td>
 <td class=content>
 <div class=trace-file>
 <div class=plus>+</div>
 <div class="minus sf-hidden">–</div>
 &nbsp;/var/www/html/framework/base/CApplication.php(185): <strong>CWebApplication</strong>-&gt;<strong>processRequest</strong>() </div>
 <div class=code><pre class=sf-hidden>     public function run()
     {
         if($this-&gt;hasEventHandler('onBeginRequest'))
             $this-&gt;onBeginRequest(new CEvent($this));
         register_shutdown_function(array($this,'end'),0,false);
         if($this-&gt;hasEventHandler('onEndRequest'))
             $this-&gt;onEndRequest(new CEvent($this));
     }
 
     /**
</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 sf-hidden">–</div>
 &nbsp;/var/www/html/index.php(192): <strong>CApplication</strong>-&gt;<strong>run</strong>() </div>
 <div class=code><pre class=sf-hidden> require_once APPPATH . 'core/LSYii_Application' . EXT;
 
 $config = require_once(APPPATH . 'config/internal' . EXT);
 
 Yii::$enableIncludePath = false;
 
 /* End of file index.php */
 /* Location: ./index.php */
</pre></div> </td>
 </tr>
 </table>
 </div>
 <div class=version>
 2022-05-16 06:04:22 Apache/2.4.53 (Debian) <a href=http://www.yiiframework.com/>Yii Framework</a>/1.1.24-dev </div>
</div>
Bug heat4
Complete LimeSurvey version number (& build)5.3.12-220502
I will donate to the project if issue is resolvedNo
BrowserFirefox
Database type & versionMariaDB v10.7.1
Server OS (if known)Isolated in container
Webserver software & version (if known)
PHP Version8.0.18

Users monitoring this issue

There are no users monitoring this issue.

Activities

DenisChenu

DenisChenu

2022-05-16 08:28

developer   ~69646

https://github.com/LimeSurvey/LimeSurvey/blob/5418c6bca14ea318363ca58fd14a75ab484e3d32/application/config/internal.php#L272

Since 5.3.5 : https://github.com/LimeSurvey/LimeSurvey/commit/1e04d703e926f5c9cf22335f9c7cb9f00b81b761

Seems an issue in docker image

b8xp5y

b8xp5y

2022-05-16 08:39

reporter   ~69647

Thank you!

For reference, I reported the issue here instead:
https://github.com/martialblog/docker-limesurvey/issues/121
https://web.archive.org/web/20220516063745/https://github.com/martialblog/docker-limesurvey/issues/121

b8xp5y

b8xp5y

2022-05-17 10:52

reporter   ~69707

Issue is resolved. Thanks!

For reference, in case someone else runs into a similar issue:
I wrongly assumed that I can persist the entire application/config folder to keep my settings in application/config/config.php and application/config/config/security.php.
But as mentioned by DenisChenu, the LimeSurvey upgrades included changes to application/config/internal.php.

Issue History

Date Modified Username Field Change
2022-05-16 08:26 b8xp5y New Issue
2022-05-16 08:26 b8xp5y File Added: Twig_Error_SyntaxError_2022-05-16T06_22_01.800.html
2022-05-16 08:28 DenisChenu Note Added: 69646
2022-05-16 08:28 DenisChenu Bug heat 0 => 2
2022-05-16 08:39 b8xp5y Note Added: 69647
2022-05-16 08:39 b8xp5y Bug heat 2 => 4
2022-05-17 10:52 b8xp5y Note Added: 69707
2022-05-18 14:52 gabrieljenik Assigned To => gabrieljenik
2022-05-18 14:52 gabrieljenik Status new => closed
2022-05-18 14:52 gabrieljenik Resolution open => no change required