View Issue Details

This bug affects 1 person(s).
 4
IDProjectCategoryView StatusLast Update
13493Bug reportsSurvey takingpublic2018-03-28 12:14
ReporterDenisChenu Assigned ToDenisChenu  
PrioritynoneSeverityminor 
Status closedResolutionfixed 
Product Version3.5.x 
Fixed in Version3.5.x 
Summary13493: When template didn't exist : a lot of bug
Description

If template didn't exist : there a lot of public bug, but there a lot of way where template can not exist

  1. Update
  2. Rename template
  3. Remove
  4. etc …
Steps To Reproduce

Unsure it work with import but have issue with print (as PDF) and upload file
I have a 404 issue too one time survey/sa/rendersidemenulink/subaction/generalsettings/surveyid/423356 but after updating db to an old one (maybe some cache issue somewhere)

Additional Information

Previuosly : we fix template when loading Survey directly : https://github.com/LimeSurvey/LimeSurvey/blob/2.73/application/models/Survey.php#L361

It's not the case now, but it's really needed in lot of case because it can totally broke survey

The commit remove this line was here : https://github.com/LimeSurvey/LimeSurvey/commit/40822e6d046744a455f17a44cc2cdafe84cf9a11#diff-7cc4f9528d95baae77c523d3532c1a19L406
Remind afterFindSurvey happen only one time then not a lot of time

If it's default template broken : complete default template happen only one time.

TagsNo tags attached.
Attached Files
Envoi de fichier-aftersubmit.html (9,212 bytes)   
<!DOCTYPE html>
<html dir="ltr" class="fr dir-ltr  no-js " lang="fr"><head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="generator" content="LimeSurvey http://www.limesurvey.org">

        

    <link rel="stylesheet" type="text/css" href="Envoi%20de%20fichier-aftersubmit_fichiers/font-awesome.css">
<link rel="stylesheet" type="text/css" href="Envoi%20de%20fichier-aftersubmit_fichiers/survey.css">
<link rel="stylesheet" type="text/css" href="Envoi%20de%20fichier-aftersubmit_fichiers/template-core.css">
<link rel="stylesheet" type="text/css" href="Envoi%20de%20fichier-aftersubmit_fichiers/awesome-bootstrap-checkbox.css">
<link rel="stylesheet" type="text/css" href="Envoi%20de%20fichier-aftersubmit_fichiers/noto.css">
<link rel="stylesheet" type="text/css" href="Envoi%20de%20fichier-aftersubmit_fichiers/bootstrap.css">
<link rel="stylesheet" type="text/css" href="Envoi%20de%20fichier-aftersubmit_fichiers/yiistrap.css">
<link rel="stylesheet" type="text/css" href="Envoi%20de%20fichier-aftersubmit_fichiers/ajaxify.css">
<link rel="stylesheet" type="text/css" href="Envoi%20de%20fichier-aftersubmit_fichiers/theme.css">
<link rel="stylesheet" type="text/css" href="Envoi%20de%20fichier-aftersubmit_fichiers/custom.css">
<link rel="stylesheet" type="text/css" href="Envoi%20de%20fichier-aftersubmit_fichiers/expressions.css">
<script type="text/javascript">window.debugState = {frontend : (0 === 1), backend : (0 === 1)};</script><script type="text/javascript" src="Envoi%20de%20fichier-aftersubmit_fichiers/jquery-3.js" class="headScriptTag"></script>
<script type="text/javascript" src="Envoi%20de%20fichier-aftersubmit_fichiers/jquery-migrate-3.js" class="headScriptTag"></script>
<script type="text/javascript" src="Envoi%20de%20fichier-aftersubmit_fichiers/survey.js" class="headScriptTag"></script>
<script type="text/javascript" src="Envoi%20de%20fichier-aftersubmit_fichiers/template-core.js" class="headScriptTag"></script>
<script type="text/javascript" src="Envoi%20de%20fichier-aftersubmit_fichiers/lslog.js" class="headScriptTag"></script>
<script type="text/javascript" src="Envoi%20de%20fichier-aftersubmit_fichiers/pjax.js" class="headScriptTag"></script>
<script type="text/javascript" src="Envoi%20de%20fichier-aftersubmit_fichiers/bootstrap.js" class="headScriptTag"></script>
<script type="text/javascript" src="Envoi%20de%20fichier-aftersubmit_fichiers/theme.js" class="headScriptTag"></script>
<script type="text/javascript" src="Envoi%20de%20fichier-aftersubmit_fichiers/ajaxify.js" class="headScriptTag"></script>
<script type="text/javascript" src="Envoi%20de%20fichier-aftersubmit_fichiers/custom.js" class="headScriptTag"></script>
<script type="text/javascript" src="Envoi%20de%20fichier-aftersubmit_fichiers/survey_runtime.js" class="headScriptTag"></script>
<script type="text/javascript" src="Envoi%20de%20fichier-aftersubmit_fichiers/expression.js" class="headScriptTag"></script>
<script type="text/javascript">
/*<![CDATA[*/
LSvar={"bFixNumAuto":1,"bNumRealValue":0,"sLEMradix":",","lang":{},"showpopup":1,"startPopups":{},"debugMode":0};
/*]]>*/
</script>
<title>
        Envoi de fichier
    </title>

    <link rel="shortcut icon" href="https://master.sondages.pro/themes/survey/fruity/files/favicon.ico">
    <script type="text/javascript">
        if(window.basicThemeScripts === undefined){ 
            window.basicThemeScripts = new ThemeScripts(); 
        } 
    </script>
        
    
<style>
    
    
    body {
         padding-bottom: 10px;
         padding-top: 60px;/* now is redefine in JS to fit any title length */
         background-color: ;
         color: ;
    }

    .navbar-default .navbar-nav > li > a:hover {
        color: ;
    }


    .question-container {
      background-color: ;

      
          }

        .checkbox-item input[type="checkbox"]:checked + label::after, .checkbox-item input[type="radio"]:checked + label::after {
        content: "\";
    }

    
    
    
    
    


</style>


    
</head>

        <body style="padding-top: 60px;" class=" fruity vanilla font- lang-fr  ">
        
                            <div id="beginScripts" class="script-container">
                <script type="text/javascript" src="Envoi%20de%20fichier-aftersubmit_fichiers/decimal.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
setJsVar();
/*]]>*/
</script>

            </div>
               

                <article>

            <div id="dynamicReloadContainer">
            
                                                    
<!-- Bootstrap Navigation Bar -->
<div class=" navbar navbar-default navbar-fixed-top">
    <div class=" navbar-header   ">
        <button type="button" class=" navbar-toggle collapsed " data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>

                            <div class=" navbar-brand ">
                Envoi de fichier
            </div>
            </div>
    <div id="navbar" class=" collapse navbar-collapse ">
        <ul class=" nav navbar-nav  navbar-action-link  navbar-right">
            

            
    <!-- Exit and clear survey -->
    <li class=" ls-no-js-hidden ">
        <a href="#" data-limesurvey-submit="{ &quot;clearall&quot;:&quot;clearall&quot; }" data-confirmedby="{ &quot;confirm-clearall&quot;:&quot;confirm&quot; }" data-confirmlabel="Veuillez confirmer que vous souhaitez effacer vos réponses ?" class=" ls-link-action ls-link-clearall  animate">
            Sortir et effacer vos réponses
        </a>
    </li>

            


            




        </ul>
    </div>
</div>

                
                                                    

<!-- Top container -->
<div class=" top-container  space-col">
    <div class="  container-fluid">
            </div> <!-- must hide it without javascript -->
</div>

                
                <!-- Outer Frame Container -->
                                                                            <!-- outer frame container -->
<div class=" outerframe    container-fluid  " id="outerframeContainer">
        
<!-- Main Row -->
<div id="main-row">
    <!-- Main Col -->
    <div class="  col-centered  space-col" id="main-col">

        
                        




                                        
<!-- main form -->



<!-- Start of the main Form-->
<form id="limesurvey" name="limesurvey" autocomplete="off" class="survey-form-container form" action="/87986" method="post">
<input value="V3VlUFNCZVFvcWdBM2F5S21aTU01c3JVWmpzdVhYSlT3fY6mWjRrhnHmess5EHEd44tbnaMwdWy5IHB5c0K31A==" name="YII_CSRF_TOKEN" type="hidden">

<!-- Ajax value -->
<input name="ajax" value="" id="ajax" type="hidden">

<!-- Field Names -->
<input name="fieldnames" value="" id="fieldnames" type="hidden">



<!-- Submit button -->
<button type="submit" id="defaultbtn" value="default" name="move" class="submit hidden" style="display:none">default</button>


        

    <div class=" completed-wrapper  ">
        <div class=" completed-text  ">
                            <p class="ui-state-highlight ui-corner-all" id="retour" style="margin-top: 20px; padding: 0 .7em;"></p>
<script type="text/javascript" charset="utf-8">
  $(document).ready(function() {
    $.ajax({
      url: 'supprfichier.php',
      success: function(data){
        $("#retour").html(data);
        $("#retour").show();
      }
    });
  });
</script>
            
                        
                        
                        
                        


                                </div>
    </div>
</form> <!-- main form -->

            

    </div> <!-- main col -->
</div> <!-- main row -->
</div>
                
                                



<!-- Bootstrap Modal Alert -->
<div id="bootstrap-alert-box-modal" class=" modal fade ">
    <div class=" modal-dialog ">
        <div class=" modal-content ">
            <div class=" modal-header " style="min-height:40px;">
                <button type="button" data-dismiss="modal" aria-hidden="true" class=" close ">×</button>
                <div class=" modal-title h4 ">&nbsp;</div>
            </div>
            <div class=" modal-body ">
                <p></p>
            </div>
            <div class=" modal-footer ">
                <a href="#" data-dismiss="modal" class=" btn btn-default ">Fermer</a>
            </div>
        </div>
    </div>
</div>


                                

                        </div>

        </article>

                    <div id="bottomScripts" class="script-container">
                <script type="text/javascript">
/*<![CDATA[*/
activateActionLink();
activateConfirmButton();
/*]]>*/
</script>

            </div>
           

                    <script>
                window.basicThemeScripts.init();
            </script>
                
    

</body></html>
PHP notice.html (18,458 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 of non-object	</p>

	<div class="source">
		<p class="file">/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/application/models/Template.php(292)</p>
		<div class="code"><pre><span class="ln">280</span>     public static function getTemplatePath($sTemplateName = "")
<span class="ln">281</span>     {
<span class="ln">282</span>         static $aTemplatePath = array();
<span class="ln">283</span>         if (isset($aTemplatePath[$sTemplateName])) {
<span class="ln">284</span>             return $aTemplatePath[$sTemplateName];
<span class="ln">285</span>         }
<span class="ln">286</span> 
<span class="ln">287</span>         $oTemplate = self::model()-&gt;findByPk($sTemplateName);
<span class="ln">288</span> 
<span class="ln">289</span>         if (self::isStandardTemplate($sTemplateName)) {
<span class="ln">290</span>             return $aTemplatePath[$sTemplateName] = Yii::app()-&gt;getConfig("standardthemerootdir").DIRECTORY_SEPARATOR.$oTemplate-&gt;folder;
<span class="ln">291</span>         } else {
<span class="error"><span class="ln error-ln">292</span>             return $aTemplatePath[$sTemplateName] = Yii::app()-&gt;getConfig("userthemerootdir").DIRECTORY_SEPARATOR.$oTemplate-&gt;folder;
</span><span class="ln">293</span>         }
<span class="ln">294</span>     }
<span class="ln">295</span> 
<span class="ln">296</span>     /**
<span class="ln">297</span>      * This method construct a template object, having all the needed configuration datas.
<span class="ln">298</span>      * It checks if the required template is a core one or a user one.
<span class="ln">299</span>      * If it's a user template, it will check if it's an old 2.0x template to provide default configuration values corresponding to the old template system
<span class="ln">300</span>      * If it's not an old template, it will check if it has a configuration file to load its datas.
<span class="ln">301</span>      * If it's not the case (template probably doesn't exist), it will load the default template configuration
<span class="ln">302</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">303</span>      *
<span class="ln">304</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%;">
						<tbody><tr class="trace app expanded">
			<td class="number">
				#0			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										
&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/application/controllers/PrintanswersController.php(150):
 <strong>Template</strong>::<strong>getTemplatePath</strong>("default")				</div>

				<div class="code"><pre><span class="ln">145</span>             $aData['aSurveyInfo']['include_content'] = 'printanswers';
<span class="ln">146</span>             Yii::app()-&gt;twigRenderer-&gt;renderTemplateFromFile('layout_printanswers.twig', $aData, false);
<span class="ln">147</span> 
<span class="ln">148</span>         } else if ($sExportType == 'pdf') {
<span class="ln">149</span>             // Get images for TCPDF from template directory
<span class="error"><span class="ln error-ln">150</span>             define('K_PATH_IMAGES', Template::getTemplatePath($aSurveyInfo['template']).DIRECTORY_SEPARATOR);
</span><span class="ln">151</span> 
<span class="ln">152</span>             Yii::import('application.libraries.admin.pdf', true);
<span class="ln">153</span>             Yii::import('application.helpers.pdfHelper');
<span class="ln">154</span>             $aPdfLanguageSettings = pdfHelper::getPdfLanguageSettings(App()-&gt;language);
<span class="ln">155</span> 
</pre></div>			</td>
		</tr>
						<tr class="trace core collapsed">
			<td class="number">
				#1			</td>
			<td class="content">
				<div class="trace-file">
										&nbsp;unknown(0): <strong>PrintanswersController</strong>-&gt;<strong>actionView</strong>("69285", "pdf")				</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;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/framework/web/actions/CAction.php(109): <strong>ReflectionMethod</strong>-&gt;<strong>invokeArgs</strong>(PrintanswersController, array("69285", "pdf"))				</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 core collapsed">
			<td class="number">
				#3			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/framework/web/actions/CInlineAction.php(47): <strong>CAction</strong>-&gt;<strong>runWithParamsInternal</strong>(PrintanswersController, ReflectionMethod, array("surveyid" =&gt; "69285", "printableexport" =&gt; "pdf"))				</div>

				<div class="code"><pre><span class="ln">42</span>     {
<span class="ln">43</span>         $methodName='action'.$this-&gt;getId();
<span class="ln">44</span>         $controller=$this-&gt;getController();
<span class="ln">45</span>         $method=new ReflectionMethod($controller, $methodName);
<span class="ln">46</span>         if($method-&gt;getNumberOfParameters()&gt;0)
<span class="error"><span class="ln error-ln">47</span>             return $this-&gt;runWithParamsInternal($controller, $method, $params);
</span><span class="ln">48</span> 
<span class="ln">49</span>         $controller-&gt;$methodName();
<span class="ln">50</span>         return true;
<span class="ln">51</span>     }
<span class="ln">52</span> }
</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;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/framework/web/CController.php(308): <strong>CInlineAction</strong>-&gt;<strong>runWithParams</strong>(array("surveyid" =&gt; "69285", "printableexport" =&gt; "pdf"))				</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">
				#5			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/framework/web/CController.php(286): <strong>CController</strong>-&gt;<strong>runAction</strong>(CInlineAction)				</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">
				#6			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/framework/web/CController.php(265): <strong>CController</strong>-&gt;<strong>runActionWithFilters</strong>(CInlineAction, 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 core collapsed">
			<td class="number">
				#7			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/framework/web/CWebApplication.php(282): <strong>CController</strong>-&gt;<strong>run</strong>("view")				</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">
				#8			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-&gt;<strong>runController</strong>("printanswers/view")				</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">
				#9			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_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 expanded">
			<td class="number">
				#10			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/index.php(194): <strong>CApplication</strong>-&gt;<strong>run</strong>()				</div>

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

	<div class="version">
		2018-03-16 18:37:23 Apache/2.2.22 (Debian) <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.18	</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 (18,458 bytes)   
PHP notice-upload.html (13,498 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 of non-object	</p>

	<div class="source">
		<p class="file">/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/application/models/Template.php(292)</p>
		<div class="code"><pre><span class="ln">280</span>     public static function getTemplatePath($sTemplateName = "")
<span class="ln">281</span>     {
<span class="ln">282</span>         static $aTemplatePath = array();
<span class="ln">283</span>         if (isset($aTemplatePath[$sTemplateName])) {
<span class="ln">284</span>             return $aTemplatePath[$sTemplateName];
<span class="ln">285</span>         }
<span class="ln">286</span> 
<span class="ln">287</span>         $oTemplate = self::model()-&gt;findByPk($sTemplateName);
<span class="ln">288</span> 
<span class="ln">289</span>         if (self::isStandardTemplate($sTemplateName)) {
<span class="ln">290</span>             return $aTemplatePath[$sTemplateName] = Yii::app()-&gt;getConfig("standardthemerootdir").DIRECTORY_SEPARATOR.$oTemplate-&gt;folder;
<span class="ln">291</span>         } else {
<span class="error"><span class="ln error-ln">292</span>             return $aTemplatePath[$sTemplateName] = Yii::app()-&gt;getConfig("userthemerootdir").DIRECTORY_SEPARATOR.$oTemplate-&gt;folder;
</span><span class="ln">293</span>         }
<span class="ln">294</span>     }
<span class="ln">295</span> 
<span class="ln">296</span>     /**
<span class="ln">297</span>      * This method construct a template object, having all the needed configuration datas.
<span class="ln">298</span>      * It checks if the required template is a core one or a user one.
<span class="ln">299</span>      * If it's a user template, it will check if it's an old 2.0x template to provide default configuration values corresponding to the old template system
<span class="ln">300</span>      * If it's not an old template, it will check if it has a configuration file to load its datas.
<span class="ln">301</span>      * If it's not the case (template probably doesn't exist), it will load the default template configuration
<span class="ln">302</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">303</span>      *
<span class="ln">304</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%;">
						<tbody><tr class="trace app expanded">
			<td class="number">
				#0			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/application/helpers/common_helper.php(3169): <strong>Template</strong>::<strong>getTemplatePath</strong>("skeletonquest_nohead")				</div>

				<div class="code"><pre><span class="ln">3164</span>  * @param mixed $sTemplateName
<span class="ln">3165</span>  * @return string
<span class="ln">3166</span>  */
<span class="ln">3167</span> function getTemplatePath($sTemplateName = '')
<span class="ln">3168</span> {
<span class="error"><span class="ln error-ln">3169</span>     return Template::getTemplatePath($sTemplateName);
</span><span class="ln">3170</span> }
<span class="ln">3171</span> 
<span class="ln">3172</span> /**
<span class="ln">3173</span>  * This function returns the complete URL path to a given template name
<span class="ln">3174</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;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/application/controllers/UploaderController.php(284): <strong>getTemplatePath</strong>("skeletonquest_nohead")				</div>

				<div class="code"><pre><span class="ln">279</span>         $oEvent-&gt;set('surveyId', $surveyid);
<span class="ln">280</span>         App()-&gt;getPluginManager()-&gt;dispatchEvent($oEvent);
<span class="ln">281</span>         if (!is_null($oEvent-&gt;get('template'))) {
<span class="ln">282</span>             $aSurveyInfo['templatedir'] = $event-&gt;get('template');
<span class="ln">283</span>         }
<span class="error"><span class="ln error-ln">284</span>         $sTemplateDir = getTemplatePath($aSurveyInfo['template']);
</span><span class="ln">285</span>         $sTemplateUrl = getTemplateURL($aSurveyInfo['template'])."/";
<span class="ln">286</span>         App()-&gt;clientScript-&gt;registerScript('sNeededScriptVar', $sNeededScriptVar, CClientScript::POS_HEAD);
<span class="ln">287</span>         App()-&gt;clientScript-&gt;registerScript('sLangScriptVar', $sLangScriptVar, CClientScript::POS_HEAD);
<span class="ln">288</span>         $oTemplate = Template::model()-&gt;getInstance('', $surveyid);
<span class="ln">289</span>         Yii::app()-&gt;clientScript-&gt;registerPackage('survey-template-'.$oTemplate-&gt;sTemplateName);
</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;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/framework/web/CWebApplication.php(282): <strong>UploaderController</strong>-&gt;<strong>run</strong>("index")				</div>

				<div class="code"><pre><span class="ln">277</span>         {
<span class="ln">278</span>             list($controller,$actionID)=$ca;
<span class="ln">279</span>             $oldController=$this-&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">
				#3			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-&gt;<strong>runController</strong>("uploader/index")				</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">
				#4			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_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 expanded">
			<td class="number">
				#5			</td>
			<td class="content">
				<div class="trace-file">
											<div class="plus">+</div>
						<div class="minus">–</div>
										&nbsp;/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey_master/index.php(194): <strong>CApplication</strong>-&gt;<strong>run</strong>()				</div>

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

	<div class="version">
		2018-03-16 18:38:38 Apache/2.2.22 (Debian) <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.18	</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-upload.html (13,498 bytes)   
Bug heat4
Complete LimeSurvey version number (& build)3.5.3 github
I will donate to the project if issue is resolvedNo
Browsernot relevant
Database type & versionnot relevant
Server OS (if known)not relevant
Webserver software & version (if known)not relevant
PHP Versionnot relevant

Users monitoring this issue

There are no users monitoring this issue.

Activities

DenisChenu

DenisChenu

2018-03-16 18:48

developer   ~47101

I have sometimes some css from fruotuy + some css from vanilla … set debug at 0 show more white page …

DenisChenu

DenisChenu

2018-03-16 19:00

developer   ~47102

Added print user view : no header

DenisChenu

DenisChenu

2018-03-20 16:51

developer   ~47145

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

c_schmitz

c_schmitz

2018-03-28 12:14

administrator   ~47256

Version 3.6.0 released

Related Changesets

LimeSurvey: master 8b4059a8

2018-03-20 16:51:11

DenisChenu

Details Diff
Fixed issue 13493 : Lot of bug with not insalled template
Dev: silently fix it, maybe have add a test part for admin user (on Overview)
Affected Issues
13493
mod - application/models/Survey.php Diff File

Issue History

Date Modified Username Field Change
2018-03-16 18:47 DenisChenu New Issue
2018-03-16 18:47 DenisChenu Status new => assigned
2018-03-16 18:47 DenisChenu Assigned To => c_schmitz
2018-03-16 18:47 DenisChenu File Added: Envoi de fichier-aftersubmit.html
2018-03-16 18:47 DenisChenu File Added: PHP notice.html
2018-03-16 18:47 DenisChenu File Added: PHP notice-upload.html
2018-03-16 18:47 DenisChenu File Added: Capture du 2018-03-16 18-41-33.png
2018-03-16 18:47 DenisChenu File Added: Capture du 2018-03-16 18-41-48.png
2018-03-16 18:48 DenisChenu Note Added: 47101
2018-03-16 18:49 DenisChenu Additional Information Updated
2018-03-16 19:00 DenisChenu File Added: Capture du 2018-03-16 18-59-55.png
2018-03-16 19:00 DenisChenu Note Added: 47102
2018-03-16 19:07 DenisChenu Additional Information Updated
2018-03-20 16:42 DenisChenu Assigned To c_schmitz => DenisChenu
2018-03-20 16:51 DenisChenu Changeset attached => LimeSurvey master 8b4059a8
2018-03-20 16:51 DenisChenu Note Added: 47145
2018-03-20 16:51 DenisChenu Resolution open => fixed
2018-03-20 16:53 DenisChenu Status assigned => resolved
2018-03-20 16:53 DenisChenu Fixed in Version => 3.5.x
2018-03-28 12:14 c_schmitz Note Added: 47256
2018-03-28 12:14 c_schmitz Status resolved => closed