loadHelper("frontend"); Yii::import('application.libraries.admin.pdf'); $surveyid = (int)($surveyid); Yii::app()->loadHelper('database'); if (isset($_SESSION['survey_'.$surveyid]['sid'])) { $surveyid = $_SESSION['survey_'.$surveyid]['sid']; } else { //die('Invalid survey/session'); } // Get the survey inforamtion // Set the language for dispay if (isset($_SESSION['survey_'.$surveyid]['s_lang'])) { $language = $_SESSION['survey_'.$surveyid]['s_lang']; } elseif(Survey::model()->findByPk($surveyid))// survey exist { $language = Survey::model()->findByPk($surveyid)->language; } else { $surveyid=0; $language = Yii::app()->getConfig("defaultlang"); } $clang = SetSurveyLanguage($surveyid, $language); $thissurvey = getSurveyInfo($surveyid,$language); //SET THE TEMPLATE DIRECTORY if (!isset($thissurvey['templatedir']) || !$thissurvey['templatedir']) { $thissurvey['templatedir']=Yii::app()->getConfig('defaulttemplate'); } $thistpl = validateTemplateDir($thissurvey['templatedir']); //Survey is not finished or don't exist if (!isset($_SESSION['survey_'.$surveyid]['finished']) || !isset($_SESSION['survey_'.$surveyid]['srid'])) //display "sorry but your session has expired" { sendCacheHeaders(); doHeader(); echo templatereplace(file_get_contents(getTemplatePath($thistpl).'/startpage.pstpl'),array(),$redata); echo "

\n" ."\t".$clang->gT("Error")."
\n" ."\t".$clang->gT("We are sorry but your session has expired.")."
".$clang->gT("Either you have been inactive for too long, you have cookies disabled for your browser, or there were problems with your connection.")."
\n" ."\t".sprintf($clang->gT("Please contact %s ( %s ) for further assistance."),$siteadminname,$siteadminemail)."\n" ."

\n"; echo templatereplace(file_get_contents(getTemplatePath($thistpl).'/endpage.pstpl'),array(),$redata); doFooter(); exit; } //Fin session time out $id = $_SESSION['survey_'.$surveyid]['srid']; //I want to see the answers with this id //Ensure script is not run directly, avoid path disclosure //if (!isset($rootdir) || isset($_REQUEST['$rootdir'])) {die( "browse - Cannot run this script directly");} if ($thissurvey['printanswers'] == 'N') { die(); //Die quietly if print answers is not permitted } //CHECK IF SURVEY IS ACTIVATED AND EXISTS $surveytable = "{{survey_{$surveyid}}}"; $surveyname = $thissurvey['surveyls_title']; $anonymized = $thissurvey['anonymized']; //OK. IF WE GOT THIS FAR, THEN THE SURVEY EXISTS AND IT IS ACTIVE, SO LETS GET TO WORK. //SHOW HEADER $printoutput = CHtml::form(array("printanswers/view/surveyid/{$surveyid}/printableexport/pdf"), 'post') ."
"; if($printableexport == 'pdf') { //require (Yii::app()->getConfig('rootdir').'/application/config/tcpdf.php'); Yii::import('application.libraries.admin.pdf', true); Yii::import('application.helpers.pdfHelper'); $aPdfLanguageSettings=pdfHelper::getPdfLanguageSettings($clang->langcode); $pdf = new pdf(); // set document information $pdf->SetTitle($clang->gT("Survey name (ID)",'unescaped').": {$surveyname} ({$surveyid})"); $pdf->SetSubject($surveyname); $pdf->SetDisplayMode('fullpage', 'two'); $pdf->setLanguageArray($aPdfLanguageSettings['lg']); $pdf->setHeaderFont(Array($aPdfLanguageSettings['pdffont'], '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(Array($aPdfLanguageSettings['pdffont'], '', PDF_FONT_SIZE_DATA)); $pdf->SetFont($aPdfLanguageSettings['pdffont'], '', $aPdfLanguageSettings['pdffontsize']); $pdf->AddPage(); } $printoutput .= "\t
".$clang->gT("Survey name (ID):")." $surveyname ($surveyid)

 \n"; LimeExpressionManager::StartProcessingPage(true); // means that all variables are on the same page // Since all data are loaded, and don't need JavaScript, pretend all from Group 1 LimeExpressionManager::StartProcessingGroup(1,($thissurvey['anonymized']!="N"),$surveyid); $printanswershonorsconditions = Yii::app()->getConfig('printanswershonorsconditions'); $aFullResponseTable = getFullResponseTable($surveyid,$id,$language,$printanswershonorsconditions); //Get the fieldmap @TODO: do we need to filter out some fields? unset ($aFullResponseTable['id']); unset ($aFullResponseTable['token']); unset ($aFullResponseTable['lastpage']); unset ($aFullResponseTable['startlanguage']); unset ($aFullResponseTable['datestamp']); unset ($aFullResponseTable['startdate']); $printoutput .= "\n"; if($printableexport == 'pdf') { $pdf->intopdf($clang->gT("Question",'unescaped').": ".$clang->gT("Your answer",'unescaped')); } $oldgid = 0; $oldqid = 0; foreach ($aFullResponseTable as $sFieldname=>$fname) { if (substr($sFieldname,0,4) == 'gid_') { if($printableexport) { $pdf->intopdf(flattenText(templatereplace($fname[0]),false,true)); $pdf->ln(2); } else { $printoutput .= "\t\n"; } } elseif (substr($sFieldname,0,4)=='qid_') { if($printableexport == 'pdf') { $pdf->intopdf(flattenText(templatereplace($fname[0]).templatereplace($fname[1]),false,true).": ".$fname[2]); $pdf->ln(2); } else { $printoutput .= "\t\n"; } } elseif ($sFieldname=='submitdate') { if($anonymized != 'Y') { if($printableexport == 'pdf') { $pdf->intopdf(flattenText($fname[0].$fname[1],false,true).": ".$fname[2]); $pdf->ln(2); } else { $printoutput .= "\t"; } } } else { if($printableexport == 'pdf') { $pdf->intopdf(flattenText(templatereplace($fname[0]).templatereplace($fname[1]),false,true).": ".$fname[2]); $pdf->ln(2); } else { $printoutput .= "\t"; } } } $printoutput .= "
{$fname[0]}
{$fname[0]}
{$fname[0]} {$fname[1]} {$sFieldname}{$fname[2]}
{$fname[0]} {$fname[1]}".flattenText($fname[2])."
\n"; if($printableexport == 'pdf') { header("Pragma: public"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); $sExportFileName = sanitize_filename($surveyname); $pdf->Output($sExportFileName."-".$surveyid.".pdf","D"); } else//Display the page with user answers { sendCacheHeaders(); doHeader(); $redata['thissurvey']=$thissurvey; echo templatereplace(file_get_contents(getTemplatePath($thistpl).'/startpage.pstpl'),array(),$redata); echo templatereplace(file_get_contents(getTemplatePath($thistpl).'/printanswers.pstpl'),array('ANSWERTABLE'=>$printoutput),$redata); echo templatereplace(file_get_contents(getTemplatePath($thistpl).'/endpage.pstpl'),array(),$redata); echo ""; } LimeExpressionManager::FinishProcessingGroup(); LimeExpressionManager::FinishProcessingPage(); } }