View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
09707 | Bug reports | Import/Export | public | 2015-06-22 23:50 | 2015-06-29 11:11 |
Reporter | walid | Assigned To | DenisChenu | ||
Priority | normal | Severity | minor | ||
Status | closed | Resolution | fixed | ||
Product Version | 2.06+ | ||||
Fixed in Version | 2.06+ | ||||
Summary | 09707: Print version show "Il y a 0 question" | ||||
Description | pour un questionnaire qui comporte 151 questions répartis en 13 groupes, la version imprimable affiche correctement le titre et le texte d'introduction mais n'affiche aucune question avec une mention qui dit: "Il y a 0 questions dans ce questionnaire". For some survey : shown no question in print view. | ||||
Steps To Reproduce | affichage export - version imprimable | ||||
Additional Information | hébergé chez OVH | ||||
Tags | No tags attached. | ||||
Attached Files | PrintSurvey_PHP_notice.html (19,919 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: lang </p> <div class="source"> <p class="file">/home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/application/controllers/admin/printablesurvey.php(1749)</p> <div class="code"><pre><span class="ln">1737</span> ); <span class="ln">1738</span> } <span class="ln">1739</span> <span class="ln">1740</span> private function _array_filter_help($qidattributes, $surveyprintlang, $surveyid) <span class="ln">1741</span> { <span class="ln">1742</span> $output = ""; <span class="ln">1743</span> if(!empty($qidattributes['array_filter'])) <span class="ln">1744</span> { <span class="ln">1745</span> $aFilter=explode(';',$qidattributes['array_filter']); <span class="ln">1746</span> $output .= "\n<p class='extrahelp'>"; <span class="ln">1747</span> foreach ($aFilter as $sFilter) <span class="ln">1748</span> { <span class="error"><span class="ln error-ln">1749</span> $oQuestion=Question::model()->findByAttributes(array('title' => $sFilter, 'language' => $lang, 'sid' => $surveyid)); </span><span class="ln">1750</span> if ($oQuestion) <span class="ln">1751</span> { <span class="ln">1752</span> $sNewQuestionText = flattenText(breakToNewline($oQuestion->getAttribute('question'))); <span class="ln">1753</span> $output .= sprintf(gT("Only answer this question for the items you selected in question %s ('%s')"),$qidattributes['array_filter'], $sNewQuestionText ); <span class="ln">1754</span> <span class="ln">1755</span> } <span class="ln">1756</span> } <span class="ln">1757</span> $output .= "</p>\n"; <span class="ln">1758</span> } <span class="ln">1759</span> if(!empty($qidattributes['array_filter'])) <span class="ln">1760</span> { <span class="ln">1761</span> $aFilter=explode(';',$qidattributes['array_filter']); </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> /home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/application/controllers/admin/printablesurvey.php(1036): <strong>printablesurvey</strong>-><strong>_array_filter_help</strong>(array("answer_width" => "", "array_filter" => "AF", "array_filter_exclude" => "", "array_filter_style" => 0, ...), "en", "975921") </div> <div class="code"><pre><span class="ln">1031</span> <span class="ln">1032</span> // ================================================================== <span class="ln">1033</span> case "C": //ARRAY (YES/UNCERTAIN/NO) <span class="ln">1034</span> <span class="ln">1035</span> $question['QUESTION_TYPE_HELP'] .= gT("Please choose the appropriate response for each item:"); <span class="error"><span class="ln error-ln">1036</span> $question['QUESTION_TYPE_HELP'] .= self::_array_filter_help($qidattributes, $surveyprintlang, $surveyid); </span><span class="ln">1037</span> <span class="ln">1038</span> $question['ANSWER'] = ' <span class="ln">1039</span> <table> <span class="ln">1040</span> <thead> <span class="ln">1041</span> <tr> </pre></div> </td> </tr> <tr class="trace core collapsed"> <td class="number"> #1 </td> <td class="content"> <div class="trace-file"> unknown(0): <strong>printablesurvey</strong>-><strong>index</strong>("975921", "en") </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> /home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/web/actions/CAction.php(108): <strong>ReflectionMethod</strong>-><strong>invokeArgs</strong>(printablesurvey, array("975921", "en")) </div> <div class="code"><pre><span class="ln">103</span> elseif($param->isDefaultValueAvailable()) <span class="ln">104</span> $ps[]=$param->getDefaultValue(); <span class="ln">105</span> else <span class="ln">106</span> return false; <span class="ln">107</span> } <span class="error"><span class="ln error-ln">108</span> $method->invokeArgs($object,$ps); </span><span class="ln">109</span> return true; <span class="ln">110</span> } <span class="ln">111</span> } </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> /home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/application/core/Survey_Common_Action.php(99): <strong>CAction</strong>-><strong>runWithParamsInternal</strong>(printablesurvey, ReflectionMethod, array("surveyid" => "975921", "lang" => "en", "sa" => "index", "iSurveyId" => "975921", ...)) </div> <div class="code"><pre><span class="ln">094</span> $oMethod = new ReflectionMethod($this, $sDefault); <span class="ln">095</span> } <span class="ln">096</span> <span class="ln">097</span> // We're all good to go, let's execute it <span class="ln">098</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">099</span> return parent::runWithParamsInternal($this, $oMethod, $params); </span><span class="ln">100</span> } <span class="ln">101</span> <span class="ln">102</span> /** <span class="ln">103</span> * Some functions have different parameters, which are just an alias of the <span class="ln">104</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"> #4 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/web/CController.php(308): <strong>Survey_Common_Action</strong>-><strong>runWithParams</strong>(array("surveyid" => "975921", "lang" => "en", "sa" => "index")) </div> <div class="code"><pre><span class="ln">303</span> { <span class="ln">304</span> $priorAction=$this->_action; <span class="ln">305</span> $this->_action=$action; <span class="ln">306</span> if($this->beforeAction($action)) <span class="ln">307</span> { <span class="error"><span class="ln error-ln">308</span> if($action->runWithParams($this->getActionParams())===false) </span><span class="ln">309</span> $this->invalidActionParams($action); <span class="ln">310</span> else <span class="ln">311</span> $this->afterAction($action); <span class="ln">312</span> } <span class="ln">313</span> $this->_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> /home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/web/CController.php(286): <strong>CController</strong>-><strong>runAction</strong>(printablesurvey) </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->runAction($action); </span><span class="ln">287</span> else <span class="ln">288</span> { <span class="ln">289</span> $priorAction=$this->_action; <span class="ln">290</span> $this->_action=$action; <span class="ln">291</span> CFilterChain::create($this,$action,$filters)->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> /home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/web/CController.php(265): <strong>CController</strong>-><strong>runActionWithFilters</strong>(printablesurvey, array()) </div> <div class="code"><pre><span class="ln">260</span> { <span class="ln">261</span> if(($parent=$this->getModule())===null) <span class="ln">262</span> $parent=Yii::app(); <span class="ln">263</span> if($parent->beforeControllerAction($this,$action)) <span class="ln">264</span> { <span class="error"><span class="ln error-ln">265</span> $this->runActionWithFilters($action,$this->filters()); </span><span class="ln">266</span> $parent->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->missingAction($actionID); </pre></div> </td> </tr> <tr class="trace app expanded"> <td class="number"> #7 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/application/controllers/AdminController.php(164): <strong>CController</strong>-><strong>run</strong>("printablesurvey") </div> <div class="code"><pre><span class="ln">159</span> $this->redirect(array('/admin/authentication/sa/login')); <span class="ln">160</span> } <span class="ln">161</span> <span class="ln">162</span> } <span class="ln">163</span> <span class="error"><span class="ln error-ln">164</span> return parent::run($action); </span><span class="ln">165</span> } <span class="ln">166</span> <span class="ln">167</span> /** <span class="ln">168</span> * Routes all the actions to their respective places <span class="ln">169</span> * </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> /home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/web/CWebApplication.php(282): <strong>AdminController</strong>-><strong>run</strong>("printablesurvey") </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->_controller; <span class="ln">280</span> $this->_controller=$controller; <span class="ln">281</span> $controller->init(); <span class="error"><span class="ln error-ln">282</span> $controller->run($actionID); </span><span class="ln">283</span> $this->_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}'=>$route===''?$this->defaultController:$route))); </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> /home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/web/CWebApplication.php(141): <strong>CWebApplication</strong>-><strong>runController</strong>("admin/printablesurvey/sa/index") </div> <div class="code"><pre><span class="ln">136</span> foreach(array_splice($this->catchAllRequest,1) as $name=>$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->getUrlManager()->parseUrl($this->getRequest()); <span class="error"><span class="ln error-ln">141</span> $this->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"> #10 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/framework/base/CApplication.php(184): <strong>CWebApplication</strong>-><strong>processRequest</strong>() </div> <div class="code"><pre><span class="ln">179</span> public function run() <span class="ln">180</span> { <span class="ln">181</span> if($this->hasEventHandler('onBeginRequest')) <span class="ln">182</span> $this->onBeginRequest(new CEvent($this)); <span class="ln">183</span> register_shutdown_function(array($this,'end'),0,false); <span class="error"><span class="ln error-ln">184</span> $this->processRequest(); </span><span class="ln">185</span> if($this->hasEventHandler('onEndRequest')) <span class="ln">186</span> $this->onEndRequest(new CEvent($this)); <span class="ln">187</span> } <span class="ln">188</span> <span class="ln">189</span> /** </pre></div> </td> </tr> <tr class="trace app collapsed"> <td class="number"> #11 </td> <td class="content"> <div class="trace-file"> <div class="plus">+</div> <div class="minus">–</div> /home/sondages.pro/htdocs/limesurvey_GIT/LimeSurvey/index.php(211): <strong>CApplication</strong>-><strong>run</strong>() </div> <div class="code"><pre><span class="ln">206</span> die (sprintf('%s should be writable by the webserver (766 or 776).', $runtimePath)); <span class="ln">207</span> } <span class="ln">208</span> } <span class="ln">209</span> <span class="ln">210</span> Yii::$enableIncludePath = false; <span class="error"><span class="ln error-ln">211</span> Yii::createApplication('LSYii_Application', $config)->run(); </span><span class="ln">212</span> <span class="ln">213</span> /* End of file index.php */ <span class="ln">214</span> /* Location: ./index.php */ </pre></div> </td> </tr> </table> </div> <div class="version"> 2015-06-23 08:16:09 Apache/2.2.22 (Debian) <a href="http://www.yiiframework.com/">Yii Framework</a>/1.1.15 </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> | ||||
Bug heat | 6 | ||||
Complete LimeSurvey version number (& build) | 150612 | ||||
I will donate to the project if issue is resolved | No | ||||
Browser | google chrome | ||||
Database type & version | sql | ||||
Server OS (if known) | ? | ||||
Webserver software & version (if known) | ? | ||||
PHP Version | 5.3 | ||||
Uploaded : A lss with "There are 0 questions in this survey" with print view. Debug at 0 show the same (no error). Uploaded : A php notice of print view with an array_filter (another issue or not ?) |
|
Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&id=15478 |
|
Fix committed to develop branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&id=15480 |
|
I confirm that I've got same bug on Version 2.06+ Build 150619 |
|
Try with replace this file :https://raw.githubusercontent.com/LimeSurvey/LimeSurvey/d67ccd9cce2aeff9abc7caaedf98dadf48b7cd0b/application/controllers/admin/printablesurvey.php At your own risk (make a copy before). |
|
Thanks Denis |
|
Version 2.06+ Build 150629 released. |
|
LimeSurvey: master d67ccd9c 2015-06-23 09:17 Details Diff |
Fixed issue 09707: Print version show "Il y a 0 question" Dev: review language code setings and use it |
Affected Issues 09707 |
|
mod - application/controllers/admin/printablesurvey.php | Diff File | ||
LimeSurvey: develop dc6780a6 2015-06-23 09:24 Details Diff |
Fixed issue 09707: Print version show "Il y a 0 question" Dev: review language code setings and use it Dev: cheery-picking without control Dev: Print controller must be reviewed for 3.0 |
Affected Issues 09707 |
|
mod - application/controllers/admin/printablesurvey.php | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-06-22 23:50 | walid | New Issue | |
2015-06-23 08:21 | DenisChenu | Summary | la version imprimable affiche "Il y a 0 questions dans ce questionnaire" => Print version show "Il y a 0 question" |
2015-06-23 08:21 | DenisChenu | Description Updated | |
2015-06-23 08:23 | DenisChenu | File Added: limesurvey_survey_print0.lss | |
2015-06-23 08:23 | DenisChenu | File Added: PrintSurvey_PHP_notice.html | |
2015-06-23 08:24 | DenisChenu | Note Added: 32480 | |
2015-06-23 09:11 | DenisChenu | Assigned To | => DenisChenu |
2015-06-23 09:11 | DenisChenu | Status | new => assigned |
2015-06-23 09:18 | DenisChenu | Changeset attached | => LimeSurvey master d67ccd9c |
2015-06-23 09:18 | DenisChenu | Note Added: 32482 | |
2015-06-23 09:18 | DenisChenu | Resolution | open => fixed |
2015-06-23 09:24 | DenisChenu | Changeset attached | => LimeSurvey develop dc6780a6 |
2015-06-23 09:24 | DenisChenu | Note Added: 32484 | |
2015-06-23 09:24 | DenisChenu | Status | assigned => resolved |
2015-06-23 09:24 | DenisChenu | Fixed in Version | => 2.06+ |
2015-06-23 11:44 | LeDocteur | Note Added: 32485 | |
2015-06-23 11:45 | LeDocteur | Note Edited: 32485 | |
2015-06-23 12:38 | DenisChenu | Note Added: 32486 | |
2015-06-23 12:40 | LeDocteur | Note Added: 32487 | |
2015-06-29 11:11 | c_schmitz | Note Added: 32552 | |
2015-06-29 11:11 | c_schmitz | Status | resolved => closed |