View Issue Details

This bug affects 2 person(s).
 12
IDProjectCategoryView StatusLast Update
18589Bug reportsPluginspublic2024-02-05 11:04
ReporterDenisChenu Assigned To 
PrioritynoneSeveritypartial_block 
Status newResolutionopen 
Product Version5.5.x 
Summary18589: Unable to use getValidScreenFiles event
Description

Try to using getValidScreenFiles event : broke when needed

Steps To Reproduce

Steps to reproduce

Test included plugin in 3.X : check Survey list in theme editor
Import and activate included plugin
Go to theme editor
Select survey listing

Expected result

See sample.twig and can edit

Actual result

CDbException with our without debug

TagsNo tags attached.
Attached Files
CDbException.html (34,422 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>CDbException</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>CDbException</h1>

	<p class="message">
		The table "TemplateConfig" for active record class "TemplateConfig" cannot be found in the database.	</p>

	<div class="source">
		<p class="file">/data/webdev/master/vendor/yiisoft/yii/framework/db/ar/CActiveRecord.php(2391)</p>
		<div class="code"><pre><span class="ln">2379</span> 
<span class="ln">2380</span>     /**
<span class="ln">2381</span>      * Constructor.
<span class="ln">2382</span>      * @param CActiveRecord $model the model instance
<span class="ln">2383</span>      * @throws CDbException if specified table for active record class cannot be found in the database
<span class="ln">2384</span>      */
<span class="ln">2385</span>     public function __construct($model)
<span class="ln">2386</span>     {
<span class="ln">2387</span>         $this-&gt;_modelClassName=get_class($model);
<span class="ln">2388</span> 
<span class="ln">2389</span>         $tableName=$model-&gt;tableName();
<span class="ln">2390</span>         if(($table=$model-&gt;getDbConnection()-&gt;getSchema()-&gt;getTable($tableName))===null)
<span class="error"><span class="ln error-ln">2391</span>             throw new CDbException(Yii::t('yii','The table "{table}" for active record class "{class}" cannot be found in the database.',
</span><span class="ln">2392</span>                 array('{class}'=&gt;$this-&gt;_modelClassName,'{table}'=&gt;$tableName)));
<span class="ln">2393</span>                 
<span class="ln">2394</span>         if(($modelPk=$model-&gt;primaryKey())!==null || $table-&gt;primaryKey===null)
<span class="ln">2395</span>         {
<span class="ln">2396</span>             $table-&gt;primaryKey=$modelPk;
<span class="ln">2397</span>             if(is_string($table-&gt;primaryKey) &amp;&amp; isset($table-&gt;columns[$table-&gt;primaryKey]))
<span class="ln">2398</span>                 $table-&gt;columns[$table-&gt;primaryKey]-&gt;isPrimaryKey=true;
<span class="ln">2399</span>             elseif(is_array($table-&gt;primaryKey))
<span class="ln">2400</span>             {
<span class="ln">2401</span>                 foreach($table-&gt;primaryKey as $name)
<span class="ln">2402</span>                 {
<span class="ln">2403</span>                     if(isset($table-&gt;columns[$name]))
</pre></div>	</div>

	<div class="traces">
		<h2>Stack Trace</h2>
				<table style="width:100%;">
						<tbody><tr class="trace core collapsed">
			<td class="number">
				#0			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/vendor/yiisoft/yii/framework/db/ar/CActiveRecord.php(413): <strong>CActiveRecordMetaData</strong>-&gt;<strong>__construct</strong>()				</div>

				<div class="code"><pre><span class="ln">408</span>     {
<span class="ln">409</span>         $className=get_class($this);
<span class="ln">410</span>         if(!array_key_exists($className,self::$_md))
<span class="ln">411</span>         {
<span class="ln">412</span>             self::$_md[$className]=null; // preventing recursive invokes of {@link getMetaData()} via {@link __get()}
<span class="error"><span class="ln error-ln">413</span>             self::$_md[$className]=new CActiveRecordMetaData($this);
</span><span class="ln">414</span>         }
<span class="ln">415</span>         return self::$_md[$className];
<span class="ln">416</span>     }
<span class="ln">417</span> 
<span class="ln">418</span>     /**
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#1			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/vendor/yiisoft/yii/framework/db/ar/CActiveRecord.php(79): <strong>CActiveRecord</strong>-&gt;<strong>getMetaData</strong>()				</div>

				<div class="code"><pre><span class="ln">74</span>         if($scenario===null) // internally used by populateRecord() and model()
<span class="ln">75</span>             return;
<span class="ln">76</span> 
<span class="ln">77</span>         $this-&gt;setScenario($scenario);
<span class="ln">78</span>         $this-&gt;setIsNewRecord(true);
<span class="error"><span class="ln error-ln">79</span>         $this-&gt;_attributes=$this-&gt;getMetaData()-&gt;attributeDefaults;
</span><span class="ln">80</span> 
<span class="ln">81</span>         $this-&gt;init();
<span class="ln">82</span> 
<span class="ln">83</span>         $this-&gt;attachBehaviors($this-&gt;behaviors());
<span class="ln">84</span>         $this-&gt;afterConstruct();
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#2			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/application/models/TemplateConfig.php(179): <strong>CActiveRecord</strong>-&gt;<strong>__construct</strong>()				</div>

				<div class="code"><pre><span class="ln">174</span>         ) {
<span class="ln">175</span>             $oMotherTemplate = $oRTemplate-&gt;oMotherTemplate;
<span class="ln">176</span>             if (!($oMotherTemplate instanceof TemplateConfiguration)) {
<span class="ln">177</span>                 if (!$force &amp;&amp; App()-&gt;twigRenderer-&gt;getPathOfFile($sFile)) {
<span class="ln">178</span>                     // return dummy template , new self broke (No DB : TODO : must fix init of self)
<span class="error"><span class="ln error-ln">179</span>                     $templateConfig = new TemplateConfig();
</span><span class="ln">180</span>                     $templateConfig-&gt;sTemplateName = null;
<span class="ln">181</span>                     return $templateConfig;
<span class="ln">182</span>                 }
<span class="ln">183</span>                 /* @todo : same for css and js (in registered package ? ) */
<span class="ln">184</span>                 TemplateConfiguration::uninstall($this-&gt;sTemplateName);
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#3			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/application/views/admin/themes/templatesummary_view.php(36): <strong>TemplateConfig</strong>-&gt;<strong>getTemplateForFile</strong>()				</div>

				<div class="code"><pre><span class="ln">31</span>                             &lt;a href="&lt;?php echo $this-&gt;createUrl('admin/themes', array('sa'=&gt;'view','screenname'=&gt;$screenname,'templatename'=&gt;$templatename, 'editfile' =&gt; $file )); ?&gt;" class="&lt;?php if($file == $relativePathEditfile ){echo 'text-danger';}else{echo 'text-success';}; ?&gt;"&gt;
<span class="ln">32</span>                                 &lt;?php echo (empty(substr(strrchr($file, DIRECTORY_SEPARATOR), 1)))?$file:substr(strrchr($file, DIRECTORY_SEPARATOR), 1) ;?&gt;
<span class="ln">33</span>                             &lt;/a&gt;
<span class="ln">34</span>                         &lt;/div&gt;
<span class="ln">35</span>                         &lt;div class="col-sm-3"&gt;
<span class="error"><span class="ln error-ln">36</span>                             &lt;?php if ( $oEditedTemplate-&gt;getTemplateForFile($file, $oEditedTemplate,false) &amp;&amp; $oEditedTemplate-&gt;getTemplateForFile($file, $oEditedTemplate)-&gt;sTemplateName == $oEditedTemplate-&gt;sTemplateName) { ?&gt;
</span><span class="ln">37</span>                                 &lt;?php if (Permission::model()-&gt;hasGlobalPermission('templates','delete')) { ?&gt;
<span class="ln">38</span>                                     &lt;?=CHtml::form(array('admin/themes','sa'=&gt;'templatefiledelete'), 'post'); ?&gt;
<span class="ln">39</span>                                         &lt;input type='hidden' name="filetype" value="&lt;?php echo CHtml::encode('screen'); ?&gt;" /&gt;
<span class="ln">40</span>                                         &lt;input type='hidden' name="filename" value="&lt;?php echo CHtml::encode($file); ?&gt;" /&gt;
<span class="ln">41</span>                                         &lt;input type='submit' class='btn btn-default btn-xs template-files-delete-button' value='&lt;?php eT("Reset"); ?&gt;' onclick="javascript:return confirm('&lt;?php eT(" Are you sure you want to reset this file? ", "js"); ?&gt;')"/&gt;
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#4			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/vendor/yiisoft/yii/framework/web/CBaseController.php(126): <strong>require</strong>("/data/webdev/master/application/views/admin/themes/templatesumma...")				</div>

				<div class="code"><pre><span class="ln">121</span>             $data=$_data_;
<span class="ln">122</span>         if($_return_)
<span class="ln">123</span>         {
<span class="ln">124</span>             ob_start();
<span class="ln">125</span>             ob_implicit_flush(false);
<span class="error"><span class="ln error-ln">126</span>             require($_viewFile_);
</span><span class="ln">127</span>             return ob_get_clean();
<span class="ln">128</span>         }
<span class="ln">129</span>         else
<span class="ln">130</span>             require($_viewFile_);
<span class="ln">131</span>     }
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#5			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/vendor/yiisoft/yii/framework/web/CBaseController.php(95): <strong>CBaseController</strong>-&gt;<strong>renderInternal</strong>()				</div>

				<div class="code"><pre><span class="ln">090</span>     {
<span class="ln">091</span>         $widgetCount=count($this-&gt;_widgetStack);
<span class="ln">092</span>         if(($renderer=Yii::app()-&gt;getViewRenderer())!==null &amp;&amp; $renderer-&gt;fileExtension==='.'.CFileHelper::getExtension($viewFile))
<span class="ln">093</span>             $content=$renderer-&gt;renderFile($this,$viewFile,$data,$return);
<span class="ln">094</span>         else
<span class="error"><span class="ln error-ln">095</span>             $content=$this-&gt;renderInternal($viewFile,$data,$return);
</span><span class="ln">096</span>         if(count($this-&gt;_widgetStack)===$widgetCount)
<span class="ln">097</span>             return $content;
<span class="ln">098</span>         else
<span class="ln">099</span>         {
<span class="ln">100</span>             $widget=end($this-&gt;_widgetStack);
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#6			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/vendor/yiisoft/yii/framework/web/CController.php(872): <strong>CBaseController</strong>-&gt;<strong>renderFile</strong>()				</div>

				<div class="code"><pre><span class="ln">867</span>      */
<span class="ln">868</span>     public function renderPartial($view,$data=null,$return=false,$processOutput=false)
<span class="ln">869</span>     {
<span class="ln">870</span>         if(($viewFile=$this-&gt;getViewFile($view))!==false)
<span class="ln">871</span>         {
<span class="error"><span class="ln error-ln">872</span>             $output=$this-&gt;renderFile($viewFile,$data,true);
</span><span class="ln">873</span>             if($processOutput)
<span class="ln">874</span>                 $output=$this-&gt;processOutput($output);
<span class="ln">875</span>             if($return)
<span class="ln">876</span>                 return $output;
<span class="ln">877</span>             else
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#7			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/application/controllers/AdminController.php(261): <strong>CController</strong>-&gt;<strong>renderPartial</strong>()				</div>

				<div class="code"><pre><span class="ln">256</span>                     $view = $sModulePath;
<span class="ln">257</span>                 }
<span class="ln">258</span>             }
<span class="ln">259</span>         }
<span class="ln">260</span> 
<span class="error"><span class="ln error-ln">261</span>         return parent::renderPartial($view, $data, $return, $processOutput);
</span><span class="ln">262</span>     }
<span class="ln">263</span> 
<span class="ln">264</span>     /**
<span class="ln">265</span>      * Routes all the actions to their respective places
<span class="ln">266</span>      *
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#8			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/application/core/SurveyCommonAction.php(277): <strong>AdminController</strong>-&gt;<strong>renderPartial</strong>()				</div>

				<div class="code"><pre><span class="ln">272</span>                 if (is_numeric($sViewKey)) {
<span class="ln">273</span>                     $content .= Yii::app()-&gt;getController()-&gt;renderPartial($sViewPath . $viewUrl, $aData, true);
<span class="ln">274</span>                 } elseif (is_array($viewUrl)) {
<span class="ln">275</span>                     foreach ($viewUrl as $aSubData) {
<span class="ln">276</span>                         $aSubData = array_merge($aData, $aSubData);
<span class="error"><span class="ln error-ln">277</span>                         $content .= Yii::app()-&gt;getController()-&gt;renderPartial($sViewPath . $sViewKey, $aSubData, true);
</span><span class="ln">278</span>                     }
<span class="ln">279</span>                 }
<span class="ln">280</span>             } else {
<span class="ln">281</span>                 switch ($sViewKey) {
<span class="ln">282</span>                     // We'll use some Bootstrap alerts, and call them inside each correct view.
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#9			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/application/core/SurveyCommonAction.php(358): <strong>SurveyCommonAction</strong>-&gt;<strong>renderCentralContents</strong>()				</div>

				<div class="code"><pre><span class="ln">353</span>                 $renderFile = $basePath . '/layout_main.php';
<span class="ln">354</span>             }
<span class="ln">355</span>         } else {
<span class="ln">356</span>             $renderFile = $basePath . '/' . $sRenderFile;
<span class="ln">357</span>         }
<span class="error"><span class="ln error-ln">358</span>         $content = $this-&gt;renderCentralContents($sAction, $aViewUrls, $aData);
</span><span class="ln">359</span>         $out = $this-&gt;renderInternal($renderFile, ['content' =&gt; $content, 'aData' =&gt; $aData], true);
<span class="ln">360</span> 
<span class="ln">361</span>         App()-&gt;getClientScript()-&gt;render($out);
<span class="ln">362</span>         echo $out;
<span class="ln">363</span>     }
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#10			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/application/controllers/admin/Themes.php(1329): <strong>SurveyCommonAction</strong>-&gt;<strong>renderWrappedTemplate</strong>()				</div>

				<div class="code"><pre><span class="ln">1324</span>      * @param string|array $aViewUrls View url(s)
<span class="ln">1325</span>      * @param array $aData Data to be passed on. Optional.
<span class="ln">1326</span>      */
<span class="ln">1327</span>     protected function renderWrappedTemplate($sAction = 'themes', $aViewUrls = array(), $aData = array(), $sRenderFile = false)
<span class="ln">1328</span>     {
<span class="error"><span class="ln error-ln">1329</span>         parent::renderWrappedTemplate($sAction, $aViewUrls, $aData, $sRenderFile);
</span><span class="ln">1330</span>     }
<span class="ln">1331</span> 
<span class="ln">1332</span>     /**
<span class="ln">1333</span>      * Redirects if demo mode is set.
<span class="ln">1334</span>      * @return void
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#11			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/application/controllers/admin/Themes.php(570): <strong>Themes</strong>-&gt;<strong>renderWrappedTemplate</strong>()				</div>

				<div class="code"><pre><span class="ln">565</span>         $aData['pageTitle'] = $pageTitle;
<span class="ln">566</span> 
<span class="ln">567</span>         // White Bar
<span class="ln">568</span>         $aData['templateEditorBar']['buttons']['returnbutton'] = true;
<span class="ln">569</span> 
<span class="error"><span class="ln error-ln">570</span>         $this-&gt;renderWrappedTemplate('themes', $aViewUrls, $aData);
</span><span class="ln">571</span> 
<span class="ln">572</span>         // This helps handle the load/save buttons)
<span class="ln">573</span>         if ($screenname != 'welcome') {
<span class="ln">574</span>             Yii::app()-&gt;session['step'] = 1;
<span class="ln">575</span>         } else {
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#12			</td>
			<td class="content">
				<div class="trace-file">
										&nbsp;unknown(0): <strong>Themes</strong>-&gt;<strong>index</strong>()				</div>

							</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#13			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/vendor/yiisoft/yii/framework/web/actions/CAction.php(115): <strong>ReflectionMethod</strong>-&gt;<strong>invokeArgs</strong>()				</div>

				<div class="code"><pre><span class="ln">110</span>             elseif($param-&gt;isDefaultValueAvailable())
<span class="ln">111</span>                 $ps[]=$param-&gt;getDefaultValue();
<span class="ln">112</span>             else
<span class="ln">113</span>                 return false;
<span class="ln">114</span>         }
<span class="error"><span class="ln error-ln">115</span>         $method-&gt;invokeArgs($object,$ps);
</span><span class="ln">116</span>         return true;
<span class="ln">117</span>     }
<span class="ln">118</span> }
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#14			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/application/core/SurveyCommonAction.php(83): <strong>CAction</strong>-&gt;<strong>runWithParamsInternal</strong>()				</div>

				<div class="code"><pre><span class="ln">78</span>             $oMethod = new ReflectionMethod($this, $sDefault);
<span class="ln">79</span>         }
<span class="ln">80</span> 
<span class="ln">81</span>         // We're all good to go, let's execute it
<span class="ln">82</span>         // runWithParamsInternal would automatically get the parameters of the method and populate them as required with the params
<span class="error"><span class="ln error-ln">83</span>         return parent::runWithParamsInternal($this, $oMethod, $params);
</span><span class="ln">84</span>     }
<span class="ln">85</span> 
<span class="ln">86</span>     /**
<span class="ln">87</span>      * Some functions have different parameters, which are just an alias of the
<span class="ln">88</span>      * usual parameters we're getting in the url. This function just populates
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#15			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/application/controllers/admin/Themes.php(31): <strong>SurveyCommonAction</strong>-&gt;<strong>runWithParams</strong>()				</div>

				<div class="code"><pre><span class="ln">26</span> {
<span class="ln">27</span>     public function runWithParams($params)
<span class="ln">28</span>     {
<span class="ln">29</span>         $sTemplateName = Yii::app()-&gt;request-&gt;getPost('templatename', '');
<span class="ln">30</span>         if (Permission::model()-&gt;hasGlobalPermission('templates', 'read') || Permission::model()-&gt;hasTemplatePermission($sTemplateName)) {
<span class="error"><span class="ln error-ln">31</span>             parent::runWithParams($params);
</span><span class="ln">32</span>         } else {
<span class="ln">33</span>             Yii::app()-&gt;setFlashMessage(gT("We are sorry but you don't have permissions to do this."), 'error');
<span class="ln">34</span>             $this-&gt;getController()-&gt;redirect(array("themeOptions/index"));
<span class="ln">35</span>         }
<span class="ln">36</span>     }
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#16			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/data/webdev/master/vendor/yiisoft/yii/framework/web/CController.php(308): <strong>Themes</strong>-&gt;<strong>runWithParams</strong>()				</div>

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

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

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

				<div class="code"><pre><span class="ln">197</span>         }
<span class="ln">198</span> 
<span class="ln">199</span>         $this-&gt;runModuleController($action);
<span class="ln">200</span> 
<span class="ln">201</span> 
<span class="error"><span class="ln error-ln">202</span>         return parent::run($action);
</span><span class="ln">203</span>     }
<span class="ln">204</span> 
<span class="ln">205</span>     /**
<span class="ln">206</span>      * Starting with LS4, 3rd party developer can extends any of the LimeSurve controllers.
<span class="ln">207</span>      *
</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">–</div>
										&nbsp;/data/webdev/master/vendor/yiisoft/yii/framework/web/CWebApplication.php(282): <strong>AdminController</strong>-&gt;<strong>run</strong>()				</div>

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

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

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

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

	<div class="version">
		2023-01-10 18:59:01 nginx/1.18.0 <a href="https://www.yiiframework.com/">Yii Framework</a>/1.1.26	</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="CDbException_fichiers/api.js"></script></html>
CDbException.html (34,422 bytes)   
Bug heat12
Complete LimeSurvey version number (& build) 5.5.2
I will donate to the project if issue is resolvedNo
Browsernot relevant
Database type & versionmariadb
Server OS (if known)debian
Webserver software & version (if known)nginx
PHP Versionphp7.4

Users monitoring this issue

There are no users monitoring this issue.

Activities

DenisChenu

DenisChenu

2023-07-04 17:24

developer   ~75933

Still same issue in 5.6.29

Broken without debug too.

Mazi

Mazi

2024-02-05 09:38

updater   ~79402

This issue causes the theme used to be un-installed if a certain twig file is called within the theme editor. Out of a sudden the theme is treated as not compatible and gets disabled at the whole system, which can be very nasty if there are running surveys using the affected theme.
So I consider this a rather urgent fix, @tibor.pacalat.

DenisChenu

DenisChenu

2024-02-05 09:45

developer   ~79403

Test plugin #2 : https://gitlab.com/SondagesPro/SurveyAccess/registerQuick/-/archive/e8564dcbd89be1ca80d79e2ec1f90cf605e98bc2/registerQuick-e8564dcbd89be1ca80d79e2ec1f90cf605e98bc2.zip

Rename it to registerQuick

DenisChenu

DenisChenu

2024-02-05 09:49

developer   ~79404

Different issue in 6 and in 5.X currently.

Bug still here

tibor.pacalat

tibor.pacalat

2024-02-05 11:04

administrator   ~79406

@DenisChenu @gabrieljenik who can take this one?

Issue History

Date Modified Username Field Change
2023-01-10 19:05 DenisChenu New Issue
2023-01-10 19:05 DenisChenu File Added: CDbException.html
2023-01-10 19:05 DenisChenu File Added: Capture d’écran du 2023-01-10 18-57-34.png
2023-01-11 13:51 gabrieljenik Status new => acknowledged
2023-07-04 17:24 DenisChenu Note Added: 75933
2023-07-04 17:24 DenisChenu File Added: Capture d’écran du 2023-07-04 17-23-54.png
2023-07-04 17:24 DenisChenu File Added: TestGetPluginTwigPath.zip
2023-07-04 17:24 DenisChenu Bug heat 0 => 2
2024-02-05 09:38 Mazi Note Added: 79402
2024-02-05 09:38 Mazi Bug heat 2 => 10
2024-02-05 09:45 DenisChenu Note Added: 79403
2024-02-05 09:49 DenisChenu Status acknowledged => new
2024-02-05 09:49 DenisChenu Note Added: 79404
2024-02-05 11:04 tibor.pacalat Note Added: 79406
2024-02-05 11:04 tibor.pacalat Bug heat 10 => 12