View Issue Details

IDProjectCategoryView StatusLast Update
16711Bug reportsPluginspublic2020-10-09 09:17
ReporterDenisChenu Assigned Togabrieljenik  
PrioritynoneSeverityminor 
Status closedResolutionfixed 
Product Version4.3.18 
Fixed in Version4.3.19 
Summary16711: Undefined variable: scanFilesUrl
DescriptionWith debug set : unable to scan files for plugins
Steps To ReproduceSet debug=2
Go to Plugin manager
Click on scan files
Additional InformationWithout evbug url is '', then just reload current page

Seems error count are not resetted in this case.
TagsNo tags attached.
Complete LimeSurvey version number (& build)4.3.18 git
I will donate to the project if issue is resolvedNo
Browsernot relevant
Database & DB-Versionnot relevant
Server OS (if known)not relevant
Webserver software & version (if known)not relevant
PHP Versionnot relevant

Activities

DenisChenu

DenisChenu

2020-10-01 11:31

developer  

PHP notice.html (31,365 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 notice</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 notice</h1>

	<p class="message">
		Undefined variable: scanFilesUrl	</p>

	<div class="source">
		<p class="file">/mnt/data/shnoulle/nginx/www/master/application/views/admin/pluginmanager/scanFilesResult.php(6)</p>
		<div class="code"><pre><span class="ln">01</span> &lt;div class='col-lg-12'&gt;
<span class="ln">02</span>     &lt;div class='pagetitle h3'&gt;&lt;?php eT('Plugin manager - scanned files'); ?&gt;&lt;/div&gt;
<span class="ln">03</span>     &lt;div class='col-sm-12'&gt;
<span class="ln">04</span>             &lt;div class='pull-right'&gt;
<span class="ln">05</span>                 &lt;a 
<span class="error"><span class="ln error-ln">06</span>                     href='&lt;?php echo $scanFilesUrl; ?&gt;'
</span><span class="ln">07</span>                     class='btn btn-default'
<span class="ln">08</span>                     data-toggle='tooltip'
<span class="ln">09</span>                     title='&lt;?php eT('Scan files for available plugins'); ?&gt;'
<span class="ln">10</span>                 &gt;
<span class="ln">11</span>                     &lt;i class='fa fa-file '&gt;&lt;/i&gt;
<span class="ln">12</span>                     &lt;i class='fa fa-search '&gt;&lt;/i&gt;&amp;nbsp;
<span class="ln">13</span>                     &lt;?php eT('Scan files'); ?&gt;
<span class="ln">14</span>                 &lt;/a&gt;
<span class="ln">15</span>                 &amp;nbsp;
<span class="ln">16</span>             &lt;/div&gt;
<span class="ln">17</span>         &lt;/div&gt;
<span class="ln">18</span>     &lt;?php foreach($result as $name =&gt; $scannedPlugin): ?&gt;
</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;/mnt/data/shnoulle/nginx/www/master/framework/web/CBaseController.php(126): <strong>require</strong>("/mnt/data/shnoulle/nginx/www/master/application/views/admin/plug...")				</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">
				#1			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/framework/web/CBaseController.php(95): <strong>CBaseController</strong>-&gt;<strong>renderInternal</strong>("/mnt/data/shnoulle/nginx/www/master/application/views/admin/plug...",
 array("result" =&gt; array("UpdateCheck" =&gt; array("description" 
=&gt; SimpleXMLElement, "pluginName" =&gt; SimpleXMLElement, 
"pluginClass" =&gt; "UpdateCheck", "extensionConfig" =&gt; 
ExtensionConfig, ...), "checkAdminBootstrapColor" =&gt; 
array("description" =&gt; SimpleXMLElement, "pluginName" =&gt; 
SimpleXMLElement, "pluginClass" =&gt; "checkAdminBootstrapColor", 
"extensionConfig" =&gt; ExtensionConfig, ...)), "installUrl" =&gt; 
"/master/admin/pluginmanager?sa=installPluginFromFile", "fullpagebar" 
=&gt; array("returnbutton" =&gt; array("url" =&gt; "pluginmanager", 
"text" =&gt; "Return to plugin manager"))), true)				</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">
				#2			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/framework/web/CController.php(872): <strong>CBaseController</strong>-&gt;<strong>renderFile</strong>("/mnt/data/shnoulle/nginx/www/master/application/views/admin/plug...",
 array("result" =&gt; array("UpdateCheck" =&gt; array("description" 
=&gt; SimpleXMLElement, "pluginName" =&gt; SimpleXMLElement, 
"pluginClass" =&gt; "UpdateCheck", "extensionConfig" =&gt; 
ExtensionConfig, ...), "checkAdminBootstrapColor" =&gt; 
array("description" =&gt; SimpleXMLElement, "pluginName" =&gt; 
SimpleXMLElement, "pluginClass" =&gt; "checkAdminBootstrapColor", 
"extensionConfig" =&gt; ExtensionConfig, ...)), "installUrl" =&gt; 
"/master/admin/pluginmanager?sa=installPluginFromFile", "fullpagebar" 
=&gt; array("returnbutton" =&gt; array("url" =&gt; "pluginmanager", 
"text" =&gt; "Return to plugin manager"))), true)				</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">
				#3			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/application/controllers/AdminController.php(240): <strong>CController</strong>-&gt;<strong>renderPartial</strong>("/admin/pluginmanager/scanFilesResult",
 array("result" =&gt; array("UpdateCheck" =&gt; array("description" 
=&gt; SimpleXMLElement, "pluginName" =&gt; SimpleXMLElement, 
"pluginClass" =&gt; "UpdateCheck", "extensionConfig" =&gt; 
ExtensionConfig, ...), "checkAdminBootstrapColor" =&gt; 
array("description" =&gt; SimpleXMLElement, "pluginName" =&gt; 
SimpleXMLElement, "pluginClass" =&gt; "checkAdminBootstrapColor", 
"extensionConfig" =&gt; ExtensionConfig, ...)), "installUrl" =&gt; 
"/master/admin/pluginmanager?sa=installPluginFromFile", "fullpagebar" 
=&gt; array("returnbutton" =&gt; array("url" =&gt; "pluginmanager", 
"text" =&gt; "Return to plugin manager"))), true, false)				</div>

				<div class="code"><pre><span class="ln">235</span>             }
<span class="ln">236</span> 
<span class="ln">237</span>           }
<span class="ln">238</span>         }
<span class="ln">239</span> 
<span class="error"><span class="ln error-ln">240</span>         return parent::renderPartial($view,$data,$return,$processOutput);
</span><span class="ln">241</span>      }
<span class="ln">242</span> 
<span class="ln">243</span>     /**
<span class="ln">244</span>      * Routes all the actions to their respective places
<span class="ln">245</span>      *
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#4			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/application/core/Survey_Common_Action.php(274): <strong>AdminController</strong>-&gt;<strong>renderPartial</strong>("/admin/pluginmanager/scanFilesResult",
 array("result" =&gt; array("UpdateCheck" =&gt; array("description" 
=&gt; SimpleXMLElement, "pluginName" =&gt; SimpleXMLElement, 
"pluginClass" =&gt; "UpdateCheck", "extensionConfig" =&gt; 
ExtensionConfig, ...), "checkAdminBootstrapColor" =&gt; 
array("description" =&gt; SimpleXMLElement, "pluginName" =&gt; 
SimpleXMLElement, "pluginClass" =&gt; "checkAdminBootstrapColor", 
"extensionConfig" =&gt; ExtensionConfig, ...)), "installUrl" =&gt; 
"/master/admin/pluginmanager?sa=installPluginFromFile", "fullpagebar" 
=&gt; array("returnbutton" =&gt; array("url" =&gt; "pluginmanager", 
"text" =&gt; "Return to plugin manager"))), true)				</div>

				<div class="code"><pre><span class="ln">269</span>         $content = "";
<span class="ln">270</span> 
<span class="ln">271</span>         foreach ($aViewUrls as $sViewKey =&gt; $viewUrl) {
<span class="ln">272</span>             if (empty($sViewKey) || !in_array($sViewKey, array('message', 'output'))) {
<span class="ln">273</span>                 if (is_numeric($sViewKey)) {
<span class="error"><span class="ln error-ln">274</span>                     $content .= Yii::app()-&gt;getController()-&gt;renderPartial($sViewPath.$viewUrl, $aData, true);
</span><span class="ln">275</span>                 } elseif (is_array($viewUrl)) {
<span class="ln">276</span>                     foreach ($viewUrl as $aSubData) {
<span class="ln">277</span>                         $aSubData = array_merge($aData, $aSubData);
<span class="ln">278</span>                         $content .= Yii::app()-&gt;getController()-&gt;renderPartial($sViewPath.$sViewKey, $aSubData, true);
<span class="ln">279</span>                     }
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#5			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/application/core/Survey_Common_Action.php(357): <strong>Survey_Common_Action</strong>-&gt;<strong>renderCentralContents</strong>("pluginmanager",
 array("scanFilesResult"), array("result" =&gt; array("UpdateCheck" 
=&gt; array("description" =&gt; SimpleXMLElement, "pluginName" =&gt; 
SimpleXMLElement, "pluginClass" =&gt; "UpdateCheck", "extensionConfig" 
=&gt; ExtensionConfig, ...), "checkAdminBootstrapColor" =&gt; 
array("description" =&gt; SimpleXMLElement, "pluginName" =&gt; 
SimpleXMLElement, "pluginClass" =&gt; "checkAdminBootstrapColor", 
"extensionConfig" =&gt; ExtensionConfig, ...)), "installUrl" =&gt; 
"/master/admin/pluginmanager?sa=installPluginFromFile", "fullpagebar" 
=&gt; array("returnbutton" =&gt; array("url" =&gt; "pluginmanager", 
"text" =&gt; "Return to plugin manager"))))				</div>

				<div class="code"><pre><span class="ln">352</span> 
<span class="ln">353</span> 
<span class="ln">354</span>         } else {
<span class="ln">355</span>             $renderFile = $basePath.'/'.$sRenderFile;
<span class="ln">356</span>         }
<span class="error"><span class="ln error-ln">357</span>         $content = $this-&gt;renderCentralContents($sAction, $aViewUrls, $aData);
</span><span class="ln">358</span>         $out = $this-&gt;renderInternal($renderFile, ['content' =&gt; $content, 'aData' =&gt; $aData], true);
<span class="ln">359</span> 
<span class="ln">360</span>         App()-&gt;getClientScript()-&gt;render($out);
<span class="ln">361</span>         echo $out;
<span class="ln">362</span>     }
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#6			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/application/controllers/admin/PluginManagerController.php(686): <strong>Survey_Common_Action</strong>-&gt;<strong>_renderWrappedTemplate</strong>("pluginmanager",
 "scanFilesResult", array("result" =&gt; array("UpdateCheck" =&gt; 
array("description" =&gt; SimpleXMLElement, "pluginName" =&gt; 
SimpleXMLElement, "pluginClass" =&gt; "UpdateCheck", "extensionConfig" 
=&gt; ExtensionConfig, ...), "checkAdminBootstrapColor" =&gt; 
array("description" =&gt; SimpleXMLElement, "pluginName" =&gt; 
SimpleXMLElement, "pluginClass" =&gt; "checkAdminBootstrapColor", 
"extensionConfig" =&gt; ExtensionConfig, ...)), "installUrl" =&gt; 
"/master/admin/pluginmanager?sa=installPluginFromFile", "fullpagebar" 
=&gt; array("returnbutton" =&gt; array("url" =&gt; "pluginmanager", 
"text" =&gt; "Return to plugin manager"))), false)				</div>

				<div class="code"><pre><span class="ln">681</span>      * @param string $aViewUrls View url(s)
<span class="ln">682</span>      * @param array $aData Data to be passed on. Optional.
<span class="ln">683</span>      */
<span class="ln">684</span>     protected function _renderWrappedTemplate($sAction = 'pluginmanager', $aViewUrls = [], $aData = [], $sRenderFile = false)
<span class="ln">685</span>     {
<span class="error"><span class="ln error-ln">686</span>         parent::_renderWrappedTemplate($sAction, $aViewUrls, $aData, $sRenderFile);
</span><span class="ln">687</span>     }
<span class="ln">688</span> }
<span class="ln">689</span> 
<span class="ln">690</span> /**
<span class="ln">691</span>  * PCLZip callback for plugin ZIP install.
</pre></div>			</td>
		</tr>
						<tr class="trace app collapsed">
			<td class="number">
				#7			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/application/controllers/admin/PluginManagerController.php(126): <strong>PluginManagerController</strong>-&gt;<strong>_renderWrappedTemplate</strong>("pluginmanager",
 "scanFilesResult", array("result" =&gt; array("UpdateCheck" =&gt; 
array("description" =&gt; SimpleXMLElement, "pluginName" =&gt; 
SimpleXMLElement, "pluginClass" =&gt; "UpdateCheck", "extensionConfig" 
=&gt; ExtensionConfig, ...), "checkAdminBootstrapColor" =&gt; 
array("description" =&gt; SimpleXMLElement, "pluginName" =&gt; 
SimpleXMLElement, "pluginClass" =&gt; "checkAdminBootstrapColor", 
"extensionConfig" =&gt; ExtensionConfig, ...)), "installUrl" =&gt; 
"/master/admin/pluginmanager?sa=installPluginFromFile", "fullpagebar" 
=&gt; array("returnbutton" =&gt; array("url" =&gt; "pluginmanager", 
"text" =&gt; "Return to plugin manager"))))				</div>

				<div class="code"><pre><span class="ln">121</span>         );
<span class="ln">122</span>         $data['fullpagebar']['returnbutton']['url'] = 'pluginmanager';
<span class="ln">123</span>         $data['fullpagebar']['returnbutton']['text'] = gT('Return to plugin manager');
<span class="ln">124</span> 
<span class="ln">125</span>         $this-&gt;_renderWrappedTemplate(
<span class="error"><span class="ln error-ln">126</span>             'pluginmanager',
</span><span class="ln">127</span>             'scanFilesResult',
<span class="ln">128</span>             $data
<span class="ln">129</span>         );
<span class="ln">130</span> 
<span class="ln">131</span>         //$indexUrl = $this-&gt;getController()-&gt;createUrl('/admin/pluginmanager');
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#8			</td>
			<td class="content">
				<div class="trace-file">
										&nbsp;unknown(0): <strong>PluginManagerController</strong>-&gt;<strong>scanFiles</strong>()				</div>

							</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#9			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/framework/web/actions/CAction.php(109): <strong>ReflectionMethod</strong>-&gt;<strong>invokeArgs</strong>(PluginManagerController, array())				</div>

				<div class="code"><pre><span class="ln">104</span>             elseif($param-&gt;isDefaultValueAvailable())
<span class="ln">105</span>                 $ps[]=$param-&gt;getDefaultValue();
<span class="ln">106</span>             else
<span class="ln">107</span>                 return false;
<span class="ln">108</span>         }
<span class="error"><span class="ln error-ln">109</span>         $method-&gt;invokeArgs($object,$ps);
</span><span class="ln">110</span>         return true;
<span class="ln">111</span>     }
<span class="ln">112</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;/mnt/data/shnoulle/nginx/www/master/application/core/Survey_Common_Action.php(86): <strong>CAction</strong>-&gt;<strong>runWithParamsInternal</strong>(PluginManagerController, ReflectionMethod, array("sa" =&gt; "scanFiles"))				</div>

				<div class="code"><pre><span class="ln">81</span>             $oMethod = new ReflectionMethod($this, $sDefault);
<span class="ln">82</span>         }
<span class="ln">83</span> 
<span class="ln">84</span>         // We're all good to go, let's execute it
<span class="ln">85</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">86</span>         return parent::runWithParamsInternal($this, $oMethod, $params);
</span><span class="ln">87</span>     }
<span class="ln">88</span> 
<span class="ln">89</span>     /**
<span class="ln">90</span>      * Some functions have different parameters, which are just an alias of the
<span class="ln">91</span>      * usual parameters we're getting in the url. This function just populates
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#11			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/framework/web/CController.php(308): <strong>Survey_Common_Action</strong>-&gt;<strong>runWithParams</strong>(array("sa" =&gt; "scanFiles"))				</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">
				#12			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/framework/web/CController.php(286): <strong>CController</strong>-&gt;<strong>runAction</strong>(PluginManagerController)				</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">
				#13			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/framework/web/CController.php(265): <strong>CController</strong>-&gt;<strong>runActionWithFilters</strong>(PluginManagerController, array())				</div>

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

				<div class="code"><pre><span class="ln">175</span>         }
<span class="ln">176</span> 
<span class="ln">177</span>         $this-&gt;runModuleController($action);
<span class="ln">178</span> 
<span class="ln">179</span> 
<span class="error"><span class="ln error-ln">180</span>         return parent::run($action);
</span><span class="ln">181</span>     }
<span class="ln">182</span> 
<span class="ln">183</span>     /**
<span class="ln">184</span>      * Starting with LS4, 3rd party developper can extends any of the LimeSurve controllers.
<span class="ln">185</span>      *
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#15			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/framework/web/CWebApplication.php(282): <strong>AdminController</strong>-&gt;<strong>run</strong>("pluginmanager")				</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">
				#16			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-&gt;<strong>runController</strong>("admin/pluginmanager")				</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">
				#17			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/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">
				#18			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/index.php(182): <strong>CApplication</strong>-&gt;<strong>run</strong>()				</div>

				<div class="code"><pre><span class="ln">177</span> require_once APPPATH . 'core/LSYii_Application' . EXT;
<span class="ln">178</span> 
<span class="ln">179</span> $config = require_once(APPPATH . 'config/internal' . EXT);
<span class="ln">180</span> 
<span class="ln">181</span> Yii::$enableIncludePath = false;
<span class="error"><span class="ln error-ln">182</span> Yii::createApplication('LSYii_Application', $config)-&gt;run();
</span><span class="ln">183</span> 
<span class="ln">184</span> /* End of file index.php */
<span class="ln">185</span> /* Location: ./index.php */
</pre></div>			</td>
		</tr>
				</tbody></table>
	</div>

	<div class="version">
		2020-10-01 09:26:51 nginx/1.18.0 <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.22-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%20notice_fichiers/api.js"></script></html>
PHP notice.html (31,365 bytes)   
ollehar

ollehar

2020-10-01 11:43

administrator   ~60003

Did it work before?
DenisChenu

DenisChenu

2020-10-01 11:48

developer   ~60004

A time ago : yes.

I always set my debug to 2 when checking my plugons, and i have some plugins for 4.
ollehar

ollehar

2020-10-01 11:49

administrator   ~60005

@eddylackmann has been working with the plugin system.
DenisChenu

DenisChenu

2020-10-01 11:49

developer   ~60006

PS : seems load_error are not resetted to 0 when scan again (i create a quick plugin for https://bugs.limesurvey.org/view.php?id=16710 but didn't look before check install).
eddylackmann

eddylackmann

2020-10-01 11:59

administrator   ~60008

@ollehar seems to be a new discovered bug. Forward it to Gabriel , he is working on the plugin manager bugs
ollehar

ollehar

2020-10-01 12:01

administrator   ~60010

Nah, don't know the priority. If it's a regression someone can hunt down the offending commit, and then it should be easy to fix.
DenisChenu

DenisChenu

2020-10-01 12:04

developer   ~60011

> If it's a regression someone can hunt down the offending commit,

+1, maybe there is a good reason, but only the offendig commit can show it …
gabrieljenik

gabrieljenik

2020-10-08 21:02

manager   ~60127

I think this is already fixed on 16685
DenisChenu

DenisChenu

2020-10-09 09:07

developer   ~60131

Seems yes :)

Related Changesets

LimeSurvey: master de658f2d

2020-10-06 11:48:17

gabrieljenik


Committer: GitHub Details Diff
Fixed issue 16685: Delete Plugin files is not working (#1607)

The 'Delete files' button existed but had no action assigned.
Added new 'delete files' feature. Limited to the 'upload' plugin type.
Added pluginType to the info returned by the scanPlugins method
Affected Issues
16685, 16711
mod - application/controllers/admin/PluginManagerController.php Diff File
mod - application/libraries/PluginManager/PluginManager.php Diff File
mod - application/views/admin/pluginmanager/scanFilesResult.php Diff File

Issue History

Date Modified Username Field Change
2020-10-01 11:31 DenisChenu New Issue
2020-10-01 11:31 DenisChenu File Added: PHP notice.html
2020-10-01 11:43 ollehar Note Added: 60003
2020-10-01 11:48 DenisChenu Note Added: 60004
2020-10-01 11:49 ollehar Note Added: 60005
2020-10-01 11:49 DenisChenu Note Added: 60006
2020-10-01 11:59 eddylackmann Note Added: 60008
2020-10-01 12:01 ollehar Note Added: 60010
2020-10-01 12:04 DenisChenu Note Added: 60011
2020-10-07 20:20 cdorin Assigned To => gabrieljenik
2020-10-07 20:20 cdorin Status new => assigned
2020-10-08 21:02 gabrieljenik Note Added: 60127
2020-10-09 09:07 DenisChenu Note Added: 60131
2020-10-09 09:17 DenisChenu Status assigned => closed
2020-10-09 09:17 DenisChenu Resolution open => fixed
2020-10-09 09:17 DenisChenu Fixed in Version => 4.3.19
2020-10-09 09:17 DenisChenu Changeset attached => LimeSurvey master de658f2d