View Issue Details

This bug affects 1 person(s).
 10
IDProjectCategoryView StatusLast Update
15940Bug reportsImport/Exportpublic2020-07-06 13:21
ReporterDenisChenu Assigned Toollehar  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version4.1.9 
Summary15940: Export as printable : PHP Notice wuth debug
Description

When try to export print survey with debug : throw a PHP notice

Steps To Reproduce

Set debug=2
Import included survey
Click on "Export"/ "Printable survey (*.html)"
Click on Export action button
See the "This file can not be found error (in friefox)"
Reload page

Additional Information

See Template::getTemplatePath("inherit") error

Printabke survey (not HTML) didn't show this error.

TagsNo tags attached.
Attached Files
PHP notice.html (21,996 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">
		Trying to get property &#039;folder&#039; of non-object	</p>

	<div class="source">
		<p class="file">/mnt/data/shnoulle/nginx/www/master/application/models/Template.php(297)</p>
		<div class="code"><pre><span class="ln">285</span>     public static function getTemplatePath($sTemplateName = &quot;&quot;)
<span class="ln">286</span>     {
<span class="ln">287</span>         static $aTemplatePath = array();
<span class="ln">288</span>         if (isset($aTemplatePath[$sTemplateName])) {
<span class="ln">289</span>             return $aTemplatePath[$sTemplateName];
<span class="ln">290</span>         }
<span class="ln">291</span> 
<span class="ln">292</span>         $oTemplate = self::model()-&gt;findByPk($sTemplateName);
<span class="ln">293</span> 
<span class="ln">294</span>         if (self::isStandardTemplate($sTemplateName)) {
<span class="ln">295</span>             return $aTemplatePath[$sTemplateName] = Yii::app()-&gt;getConfig(&quot;standardthemerootdir&quot;).DIRECTORY_SEPARATOR.$oTemplate-&gt;folder;
<span class="ln">296</span>         } else {
<span class="error"><span class="ln error-ln">297</span>             return $aTemplatePath[$sTemplateName] = Yii::app()-&gt;getConfig(&quot;userthemerootdir&quot;).DIRECTORY_SEPARATOR.$oTemplate-&gt;folder;
</span><span class="ln">298</span>         }
<span class="ln">299</span>     }
<span class="ln">300</span> 
<span class="ln">301</span>     /**
<span class="ln">302</span>      * This method construct a template object, having all the needed configuration datas.
<span class="ln">303</span>      * It checks if the required template is a core one or a user one.
<span class="ln">304</span>      * If it&#039;s a user template, it will check if it&#039;s an old 2.0x template to provide default configuration values corresponding to the old template system
<span class="ln">305</span>      * If it&#039;s not an old template, it will check if it has a configuration file to load its datas.
<span class="ln">306</span>      * If it&#039;s not the case (template probably doesn&#039;t exist), it will load the default template configuration
<span class="ln">307</span>      * TODO : more tests should be done, with a call to private function _is_valid_template(), testing not only if it has a config.xml, but also id this file is correct, if the files refered in css exist, etc.
<span class="ln">308</span>      *
<span class="ln">309</span>      * @param string $sTemplateName     the name of the template to load. The string come from the template selector in survey settings
</pre></div>	</div>

	<div class="traces">
		<h2>Stack Trace</h2>
				<table style="width:100%;">
						<tr class="trace app expanded">
			<td class="number">
				#0			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/application/controllers/admin/export.php(1271): <strong>Template</strong>::<strong>getTemplatePath</strong>(&quot;inherit&quot;)				</div>

				<div class="code"><pre><span class="ln">1266</span>      */
<span class="ln">1267</span>     private function _exportPrintableHtmls($iSurveyID, $readFile = true)
<span class="ln">1268</span>     {
<span class="ln">1269</span>         $oSurvey = Survey::model()-&gt;findByPk($iSurveyID);
<span class="ln">1270</span>         $assetsDir = substr(Template::getTemplateURL($oSurvey-&gt;template), 1);
<span class="error"><span class="ln error-ln">1271</span>         $fullAssetsDir = Template::getTemplatePath($oSurvey-&gt;template);
</span><span class="ln">1272</span>         $aLanguages = $oSurvey-&gt;getAllLanguages();
<span class="ln">1273</span> 
<span class="ln">1274</span>         Yii::import(&#039;application.helpers.common_helper&#039;, true);
<span class="ln">1275</span>         $zipdir = createRandomTempDir();
<span class="ln">1276</span> 
</pre></div>			</td>
		</tr>
						<tr class="trace app expanded">
			<td class="number">
				#1			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/mnt/data/shnoulle/nginx/www/master/application/controllers/admin/export.php(1094): <strong>export</strong>-><strong>_exportPrintableHtmls</strong>(&quot;484668&quot;)				</div>

				<div class="code"><pre><span class="ln">1089</span>         } elseif ($action == &#039;exportstructuretsv&#039;) {
<span class="ln">1090</span>             $this-&gt;_exporttsv($iSurveyID);
<span class="ln">1091</span>         } elseif ($action == &quot;exportarchive&quot;) {
<span class="ln">1092</span>             $this-&gt;_exportarchive($iSurveyID);
<span class="ln">1093</span>         } elseif ($action == &quot;exportprintables&quot;) {
<span class="error"><span class="ln error-ln">1094</span>             $this-&gt;_exportPrintableHtmls($iSurveyID);
</span><span class="ln">1095</span>         }
<span class="ln">1096</span>     }
<span class="ln">1097</span> 
<span class="ln">1098</span>     /**
<span class="ln">1099</span>      * Return a list of queXML settings
</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;/mnt/data/shnoulle/nginx/www/master/application/controllers/admin/export.php(42): <strong>export</strong>-><strong>_surveyexport</strong>(&quot;exportprintables&quot;, &quot;484668&quot;)				</div>

				<div class="code"><pre><span class="ln">37</span>     {
<span class="ln">38</span>         $action = Yii::app()-&gt;request-&gt;getParam(&#039;action&#039;);
<span class="ln">39</span>         $iSurveyID = sanitize_int(Yii::app()-&gt;request-&gt;getParam(&#039;surveyid&#039;));
<span class="ln">40</span> 
<span class="ln">41</span>         if (Permission::model()-&gt;hasSurveyPermission($iSurveyID, &#039;surveycontent&#039;, &#039;export&#039;)) {
<span class="error"><span class="ln error-ln">42</span>             $this-&gt;_surveyexport($action, $iSurveyID);
</span><span class="ln">43</span>             return;
<span class="ln">44</span>         }
<span class="ln">45</span>     }
<span class="ln">46</span> 
<span class="ln">47</span>     /**
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#3			</td>
			<td class="content">
				<div class="trace-file">
										&nbsp;unknown(0): <strong>export</strong>-><strong>survey</strong>()				</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;/mnt/data/shnoulle/nginx/www/master/framework/web/actions/CAction.php(109): <strong>ReflectionMethod</strong>-><strong>invokeArgs</strong>(export, 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">
				#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(86): <strong>CAction</strong>-><strong>runWithParamsInternal</strong>(export, ReflectionMethod, array(&quot;action&quot; =&gt; &quot;exportprintables&quot;, &quot;surveyid&quot; =&gt; &quot;484668&quot;, &quot;sa&quot; =&gt; &quot;survey&quot;, &quot;iSurveyId&quot; =&gt; &quot;484668&quot;, ...))				</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&#039;re all good to go, let&#039;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&#039;re getting in the url. This function just populates
</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;/mnt/data/shnoulle/nginx/www/master/framework/web/CController.php(308): <strong>Survey_Common_Action</strong>-><strong>runWithParams</strong>(array(&quot;action&quot; =&gt; &quot;exportprintables&quot;, &quot;surveyid&quot; =&gt; &quot;484668&quot;, &quot;sa&quot; =&gt; &quot;survey&quot;, &quot;iSurveyId&quot; =&gt; &quot;484668&quot;, ...))				</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">
				#7			</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>-><strong>runAction</strong>(export)				</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">
				#8			</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>-><strong>runActionWithFilters</strong>(export, 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">
				#9			</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(165): <strong>CController</strong>-><strong>run</strong>(&quot;export&quot;)				</div>

				<div class="code"><pre><span class="ln">160</span>         }
<span class="ln">161</span> 
<span class="ln">162</span>         $this-&gt;runModuleController($action);
<span class="ln">163</span> 
<span class="ln">164</span> 
<span class="error"><span class="ln error-ln">165</span>         return parent::run($action);
</span><span class="ln">166</span>     }
<span class="ln">167</span> 
<span class="ln">168</span>     /**
<span class="ln">169</span>      * Starting with LS4, 3rd party developper can extends any of the LimeSurve controllers.
<span class="ln">170</span>      */
</pre></div>			</td>
		</tr>
						<tr class="trace core 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/framework/web/CWebApplication.php(282): <strong>AdminController</strong>-><strong>run</strong>(&quot;export&quot;)				</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(&#039;yii&#039;,&#039;Unable to resolve the request &quot;{route}&quot;.&#039;,
<span class="ln">287</span>                 array(&#039;{route}&#039;=&gt;$route===&#039;&#039;?$this-&gt;defaultController:$route)));
</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/CWebApplication.php(141): <strong>CWebApplication</strong>-><strong>runController</strong>(&quot;admin/export/sa/survey&quot;)				</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">
				#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/base/CApplication.php(185): <strong>CWebApplication</strong>-><strong>processRequest</strong>()				</div>

				<div class="code"><pre><span class="ln">180</span>     public function run()
<span class="ln">181</span>     {
<span class="ln">182</span>         if($this-&gt;hasEventHandler(&#039;onBeginRequest&#039;))
<span class="ln">183</span>             $this-&gt;onBeginRequest(new CEvent($this));
<span class="ln">184</span>         register_shutdown_function(array($this,&#039;end&#039;),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(&#039;onEndRequest&#039;))
<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">
				#13			</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(195): <strong>CApplication</strong>-><strong>run</strong>()				</div>

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

	<div class="version">
		2020-03-03 07:00:06 nginx/1.16.1 <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>

</body>
</html>
PHP notice.html (21,996 bytes)   
Bug heat10
Complete LimeSurvey version number (& build)4.1.8 github
I will donate to the project if issue is resolvedNo
Browserff
Database type & versionnot relevant?
Server OS (if known)not relevant ?
Webserver software & version (if known)not relevant ?
PHP Versionnot relevant ?

Relationships

related to 15939 closedgabrieljenik Update to 4x seems to have changed the Display/Export 

Users monitoring this issue

There are no users monitoring this issue.

Activities

gabrieljenik

gabrieljenik

2020-06-26 16:00

manager   ~58524

PR: https://github.com/LimeSurvey/LimeSurvey/pull/1449

When using global template on a survey, the template name saved on DB is "inherit".
That was taken literal sometimes and caused errors, as there is no template called "inherit"

"inherit" template is now converted to the proper template name, set at global level.

BTW, maybe we should avoid templates being named "inherit"

DenisChenu

DenisChenu

2020-06-26 16:04

developer   ~58525

Last edited: 2020-07-02 12:58

BTW, maybe we should avoid templates being named "inherit"

Yes

That was taken literal sometimes and caused errors, as there is no template called "inherit"

This must be checked before (in my opinion) here :seems a call is not done, then maybe some plugins event or something else ?

gabrieljenik

gabrieljenik

2020-06-26 16:49

manager   ~58527

Last edited: 2020-07-02 12:58

Still, one more thing to notice, the PHP printable doesn't seem to have references to the theme... but is for a nother bug I believe

DenisChenu

DenisChenu

2020-06-27 16:51

developer   ~58533

Last edited: 2020-07-02 12:58

In 2.6 : you can manage partially printable via theme.
Think 2.73 too

guest

guest

2020-07-01 12:48

viewer   ~58610

Last edited: 2020-07-02 12:58

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&amp;id=30236

ollehar

ollehar

2020-07-01 12:49

administrator   ~58611

Last edited: 2020-07-02 12:58

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&amp;id=30237

ollehar

ollehar

2020-07-01 12:54

administrator   ~58612

Last edited: 2020-07-02 12:58

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&amp;id=30238

lime_release_bot

lime_release_bot

2020-07-06 13:21

administrator   ~58717

Fixed in Release 4.3.3+200707

Related Changesets

LimeSurvey: master 04851637

2020-07-01 12:47:57

gabrieljenik


Committer: GitHub Details Diff
Fixed issue 15940: Export as printable : PHP Notice wuth debug (#1449)

Dev: Added method/attribute on survey model for getting the effective template name (handling survey group inheritance). Dev: Used that method/attribute while exporting printable surveys.
Dev: Added some existence checkings on getTemplateUrl() and getTemplatePath()
Affected Issues
15940
mod - application/controllers/admin/export.php Diff File
mod - application/models/Survey.php Diff File
mod - application/models/Template.php Diff File

LimeSurvey: master 8a55cbc9

2020-07-01 12:47:57

gabrieljenik


Committer: ollehar Details Diff
Fixed issue 15940: Export as printable : PHP Notice with debug (#1449)

Dev: Added method/attribute on survey model for getting the effective template name (handling survey group inheritance). Dev: Used that method/attribute while exporting printable surveys.
Dev: Added some existence checkings on getTemplateUrl() and getTemplatePath()
Affected Issues
15940
mod - application/controllers/admin/export.php Diff File
mod - application/models/Survey.php Diff File
mod - application/models/Template.php Diff File

LimeSurvey: master f16b90e0

2020-07-01 12:47:57

gabrieljenik


Committer: ollehar Details Diff
Fixed issue 15940: Export as printable - PHP Notice with debug mode on (#1449)

Dev: Added method/attribute on survey model for getting the effective template name (handling survey group inheritance). Dev: Used that method/attribute while exporting printable surveys.
Dev: Added some existence checkings on getTemplateUrl() and getTemplatePath()
Affected Issues
15940
mod - application/controllers/admin/export.php Diff File
mod - application/models/Survey.php Diff File
mod - application/models/Template.php Diff File

Issue History

Date Modified Username Field Change
2020-03-03 08:13 DenisChenu New Issue
2020-03-03 08:13 DenisChenu File Added: limesurvey_survey_printError.lss
2020-03-03 08:13 DenisChenu File Added: PHP notice.html
2020-03-03 08:14 DenisChenu Relationship added related to 15939
2020-03-18 15:28 cdorin Priority none => normal
2020-03-18 15:28 cdorin Status new => confirmed
2020-04-01 16:55 cdorin Zoho Sprints => |Yes|
2020-04-01 16:55 swendrich Zoho Sprints ID => 14469000000018157
2020-06-26 16:00 gabrieljenik Note Added: 58524
2020-06-26 16:04 DenisChenu Note Added: 58525
2020-06-26 16:49 gabrieljenik Note Added: 58527
2020-06-27 16:51 DenisChenu Note Added: 58533
2020-07-01 12:48 gabrieljenik Changeset attached => LimeSurvey master 04851637
2020-07-01 12:48 guest Note Added: 58610
2020-07-01 12:49 ollehar Changeset attached => LimeSurvey master 8a55cbc9
2020-07-01 12:49 ollehar Note Added: 58611
2020-07-01 12:49 ollehar Assigned To => ollehar
2020-07-01 12:49 ollehar Resolution open => fixed
2020-07-01 12:54 ollehar Changeset attached => LimeSurvey master f16b90e0
2020-07-01 12:54 ollehar Note Added: 58612
2020-07-02 12:58 swendrich Zoho Sprints Yes => |Yes|
2020-07-02 12:58 swendrich Status confirmed => resolved
2020-07-06 13:21 lime_release_bot Zoho Sprints Yes => |Yes|
2020-07-06 13:21 lime_release_bot Note Added: 58717
2020-07-06 13:21 lime_release_bot Status resolved => closed