';
// PRESENT SURVEY DATAENTRY SCREEN
if(isset($_POST['printableexport']))
{
$pdf = new PDF ($pdforientation,'mm','A4');
$pdf->SetFont($pdfdefaultfont,'',$pdffontsize);
$pdf->AddPage();
}
// Set the language of the survey, either from GET parameter of session var
if (isset($_GET['lang']))
{
$_GET['lang'] = preg_replace("/[^a-zA-Z0-9-]/", "", $_GET['lang']);
if ($_GET['lang']) $surveyprintlang = $_GET['lang'];
} else
{
$surveyprintlang=GetbaseLanguageFromSurveyid($surveyid);
}
// Setting the selected language for printout
$clang = new limesurvey_lang($surveyprintlang);
$desquery = "SELECT * FROM ".db_table_name('surveys')." inner join ".db_table_name('surveys_languagesettings')." on (surveyls_survey_id=sid) WHERE sid={$surveyid} and surveyls_language=".$connect->qstr($surveyprintlang); //Getting data for this survey
$desrow = $connect->GetRow($desquery);
if ($desrow==false || count($desrow)==0)
{
safe_die('Invalid survey ID');
}
//echo '
'.print_r($desrow,true).'
';
$template = $desrow['template'];
$welcome = $desrow['surveyls_welcometext'];
$end = $desrow['surveyls_endtext'];
$surveyname = $desrow['surveyls_title'];
$surveydesc = $desrow['surveyls_description'];
$surveyactive = $desrow['active'];
$surveytable = db_table_name("survey_".$desrow['sid']);
$surveyexpirydate = $desrow['expires'];
$surveystartdate = $desrow['startdate'];
$surveyfaxto = $desrow['faxto'];
$dateformattype = $desrow['surveyls_dateformat'];
if(isset($_POST['printableexport'])){$pdf->titleintopdf($surveyname,$surveydesc);}
$dformat=getDateFormatData($dateformattype);
$dformat=$dformat['phpdate'];
$expirytimestamp = strtotime($surveyexpirydate);
$expirytimeofday_h = date('H',$expirytimestamp);
$expirytimeofday_m = date('i',$expirytimestamp);
$surveyexpirydate = date($dformat,$expirytimestamp);
if(!empty($expirytimeofday_h) || !empty($expirytimeofday_m))
{
$surveyexpirydate .= ' – '.$expirytimeofday_h.':'.$expirytimeofday_m;
};
//define('PRINT_TEMPLATE' , '/templates/print/' , true);
if(is_file($usertemplaterootdir.'/'.$template.'/print_survey.pstpl'))
{
define('PRINT_TEMPLATE_DIR' , $usertemplaterootdir.'/'.$template.'/' , true);
define('PRINT_TEMPLATE_URL' , $usertemplaterooturl.'/'.$template.'/' , true);
}
else
{
define('PRINT_TEMPLATE_DIR' , $standardtemplaterootdir.'/default/' , true);
define('PRINT_TEMPLATE_URL' , $standardtemplaterooturl.'/default/' , true);
}
$fieldmap=createFieldMap($surveyid);
$degquery = "SELECT * FROM ".db_table_name("groups")." WHERE sid='{$surveyid}' AND language='{$surveyprintlang}' ORDER BY ".db_table_name("groups").".group_order";
$degresult = db_execute_assoc($degquery);
if (!isset($surveyfaxto) || !$surveyfaxto and isset($surveyfaxnumber))
{
$surveyfaxto=$surveyfaxnumber; //Use system fax number if none is set in survey.
}
$pdf_form='';
if(isset($usepdfexport) && $usepdfexport == 1 && !in_array($surveyprintlang,$notsupportlanguages))
{
$pdf_form = '
';
}
$headelements = getPrintableHeader();
//if $showsgqacode is enabled at config.php show table name for reference
if(isset($showsgqacode) && $showsgqacode == true)
{
$surveyname = $surveyname." [".$clang->gT('Database')." ".$clang->gT('table').": $surveytable]";
}
else
{
$surveyname = "";
}
$survey_output = array(
'SITENAME' => $sitename
,'SURVEYNAME' => $surveyname
,'SURVEYDESCRIPTION' => $surveydesc
,'WELCOME' => $welcome
,'END' => $end
,'THEREAREXQUESTIONS' => 0
,'SUBMIT_TEXT' => $clang->gT("Submit Your Survey.")
,'SUBMIT_BY' => $surveyexpirydate
,'THANKS' => $clang->gT("Thank you for completing this survey.")
,'PDF_FORM' => $pdf_form
,'HEADELEMENTS' => $headelements
,'TEMPLATEURL' => PRINT_TEMPLATE_URL
,'FAXTO' => $surveyfaxto
,'PRIVACY' => ''
,'GROUPS' => ''
);
$survey_output['FAX_TO'] ='';
if(!empty($surveyfaxto) && $surveyfaxto != '000-00000000') //If no fax number exists, don't display faxing information!
{
$survey_output['FAX_TO'] = $clang->gT("Please fax your completed survey to:")." $surveyfaxto";
}
if ($surveystartdate!='')
{
$survey_output['SUBMIT_BY'] = sprintf($clang->gT("Please submit by %s"), $surveyexpirydate);
}
/**
* Output arrays:
* $survey_output = final vaiables for whole survey
* $survey_output['SITENAME'] =
* $survey_output['SURVEYNAME'] =
* $survey_output['SURVEY_DESCRIPTION'] =
* $survey_output['WELCOME'] =
* $survey_output['THEREAREXQUESTIONS'] =
* $survey_output['PDF_FORM'] =
* $survey_output['HEADELEMENTS'] =
* $survey_output['TEMPLATEURL'] =
* $survey_output['SUBMIT_TEXT'] =
* $survey_output['SUBMIT_BY'] =
* $survey_output['THANKS'] =
* $survey_output['FAX_TO'] =
* $survey_output['SURVEY'] = contains an array of all the group arrays
*
* $groups[] = an array of all the groups output
* $group['GROUPNAME'] =
* $group['GROUPDESCRIPTION'] =
* $group['QUESTIONS'] = templated formatted content if $question is appended to this at the end of processing each question.
* $group['ODD_EVEN'] = class to differentiate alternate groups
* $group['SCENARIO'] =
*
* $questions[] = contains an array of all the questions within a group
* $question['QUESTION_CODE'] = content of the question code field
* $question['QUESTION_TEXT'] = content of the question field
* $question['QUESTION_SCENARIO'] = if there are conditions on a question, list the conditions.
* $question['QUESTION_MANDATORY'] = translated 'mandatory' identifier
* $question['QUESTION_CLASS'] = classes to be added to wrapping question div
* $question['QUESTION_TYPE_HELP'] = instructions on how to complete the question
* $question['QUESTION_MAN_MESSAGE'] = (not sure if this is used) mandatory error
* $question['QUESTION_VALID_MESSAGE'] = (not sure if this is used) validation error
* $question['ANSWER'] = contains formatted HTML answer
* $question['QUESTIONHELP'] = content of the question help field.
*
*/
function populate_template( $template , $input , $line = '')
{
global $rootdir, $debug;
/**
* A poor mans templating system.
*
* $template template filename (path is privided by config.php)
* $input a key => value array containg all the stuff to be put into the template
* $line for debugging purposes only.
*
* Returns a formatted string containing template with
* keywords replaced by variables.
*
* How:
*/
$full_path = PRINT_TEMPLATE_DIR.'print_'.$template.'.pstpl';
$full_constant = 'TEMPLATE'.$template.'.pstpl';
if(!defined($full_constant))
{
if(is_file($full_path))
{
define( $full_constant , file_get_contents($full_path));
$template_content = constant($full_constant);
$test_empty = trim($template_content);
if(empty($test_empty))
{
return "";
}
}
else
{
define($full_constant , '');
return "";
}
}
else
{
$template_content = constant($full_constant);
$test_empty = trim($template_content);
if(empty($test_empty))
{
return "";
}
}
if(is_array($input))
{
foreach($input as $key => $value)
{
$find[] = '{'.$key.'}';
$replace[] = $value;
}
return str_replace( $find , $replace , $template_content );
}
else
{
if($debug > 0)
{
if(!empty($line))
{
$line = 'LINE '.$line.': ';
}
return ''."\n";
}
}
}
function input_type_image( $type , $title = '' , $x = 40 , $y = 1 , $line = '' )
{
global $rooturl, $rootdir;
if($type == 'other' or $type == 'othercomment')
{
$x = 1;
}
$tail = substr($x , -1 , 1);
switch($tail)
{
case '%':
case 'm':
case 'x': $x_ = $x;
break;
default: $x_ = $x / 2;
}
if($y < 2)
{
$y_ = 2;
}
else
{
$y_ = $y * 2;
}
if(!empty($title))
{
$div_title = ' title="'.htmlspecialchars($title).'"';
}
else
{
$div_title = '';
}
switch($type)
{
case 'textarea':
case 'text': $style = ' style="width:'.$x_.'em; height:'.$y_.'em;"';
break;
default: $style = '';
}
switch($type)
{
case 'radio':
case 'checkbox':if(!defined('IMAGE_'.$type.'_SIZE'))
{
$image_dimensions = getimagesize(PRINT_TEMPLATE_DIR.'print_img_'.$type.'.png');
// define('IMAGE_'.$type.'_SIZE' , ' width="'.$image_dimensions[0].'" height="'.$image_dimensions[1].'"');
define('IMAGE_'.$type.'_SIZE' , ' width="14" height="14"');
}
$output = '';
break;
case 'rank':
case 'other':
case 'othercomment':
case 'text':
case 'textarea':$output = '
{NOTEMPTY}
';
break;
default: $output = '';
}
return $output;
}
function star_replace($input)
{
return preg_replace(
'/\*(.*)\*/U'
,'\1'
,$input
);
}
$total_questions = 0;
$mapquestionsNumbers=Array();
$answertext = ''; // otherwise can throw an error on line 1617
// =========================================================
// START doin the business:
$pdfoutput = '';
while ($degrow = $degresult->FetchRow())
{
// ---------------------------------------------------
// START doing groups
$deqquery = "SELECT * FROM ".db_table_name("questions")." WHERE sid=$surveyid AND gid={$degrow['gid']} AND language='{$surveyprintlang}' AND parent_qid=0 AND TYPE<>'I' ORDER BY question_order";
$deqresult = db_execute_assoc($deqquery);
$deqrows = array(); //Create an empty array in case FetchRow does not return any rows
while ($deqrow = $deqresult->FetchRow()) {$deqrows[] = $deqrow;} // Get table output into array
// Perform a case insensitive natural sort on group name then question title of a multidimensional array
usort($deqrows, 'GroupOrderThenQuestionOrder');
if ($degrow['description'])
{
$group_desc = $degrow['description'];
}
else
{
$group_desc = '';
}
$group = array(
'GROUPNAME' => $degrow['group_name']
,'GROUPDESCRIPTION' => $group_desc
,'QUESTIONS' => '' // templated formatted content if $question is appended to this at the end of processing each question.
);
// A group can have only hidden questions. In that case you don't want to see the group's header/description either.
$bGroupHasVisibleQuestions = false;
if(isset($_POST['printableexport'])){$pdf->titleintopdf($degrow['group_name'],$degrow['description']);}
$gid = $degrow['gid'];
//Alternate bgcolor for different groups
if (!isset($group['ODD_EVEN']) || $group['ODD_EVEN'] == ' g-row-even')
{
$group['ODD_EVEN'] = ' g-row-odd';}
else
{
$group['ODD_EVEN'] = ' g-row-even';
}
//Loop through questions
foreach ($deqrows as $deqrow)
{
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// START doing questions
$qidattributes=getQuestionAttributes($deqrow['qid'],$deqrow['type']);
if ($qidattributes['hidden']==1)
{
continue;
}
$bGroupHasVisibleQuestions = true;
//GET ANY CONDITIONS THAT APPLY TO THIS QUESTION
$printablesurveyoutput = '';
$explanation = ''; //reset conditions explanation
$s=0;
$scenarioquery="SELECT DISTINCT ".db_table_name("conditions").".scenario FROM ".db_table_name("conditions")." WHERE ".db_table_name("conditions").".qid={$deqrow['qid']} ORDER BY scenario";
$scenarioresult=db_execute_assoc($scenarioquery);
//Loop through distinct scenarios, thus grouping them together.
while ($scenariorow=$scenarioresult->FetchRow())
{
if($s == 0 && $scenarioresult->RecordCount() > 1)
{
$explanation .= '
\n";
break;
// ==================================================================
case "D": //DATE
$question['QUESTION_TYPE_HELP'] = $clang->gT('Please enter a date:');
$question['ANSWER'] .= "\t".input_type_image('text',$question['QUESTION_TYPE_HELP'],30,1);
if(isset($_POST['printableexport'])){$pdf->intopdf($clang->gT("Please enter a date:")." ___________");}
break;
// ==================================================================
case "G": //GENDER
$question['QUESTION_TYPE_HELP'] = $clang->gT("Please choose *only one* of the following:");
$question['ANSWER'] .= "\n\t
\n\t\t".$clang->gT("Make a comment on your choice here:")."\n";
if(isset($_POST['printableexport'])){$pdf->intopdf("Make a comment on your choice here:");}
$question['ANSWER'] .= "\t\t".input_type_image('textarea',$clang->gT("Make a comment on your choice here:"),50,8).addsgqacode(" (".$deqrow['sid']."X".$deqrow['gid']."X".$deqrow['qid']."comment)")."\n\t
\n";
for($i=0;$i<9;$i++)
{
if(isset($_POST['printableexport'])){$pdf->intopdf("____________________");}
}
break;
// ==================================================================
case "R": //RANKING Type Question
$reaquery = "SELECT * FROM ".db_table_name("answers")." WHERE qid={$deqrow['qid']} AND language='{$surveyprintlang}' ORDER BY sortorder, answer";
$rearesult = db_execute_assoc($reaquery) or safe_die ("Couldn't get ranked answers ".$connect->ErrorMsg());
$reacount = $rearesult->RecordCount();
$question['QUESTION_TYPE_HELP'] = $clang->gT("Please number each box in order of preference from 1 to")." $reacount";
if(isset($_POST['printableexport'])){$pdf->intopdf($clang->gT("Please number each box in order of preference from 1 to ").$reacount,"U");}
$question['ANSWER'] = "\n
\n";
while ($rearow = $rearesult->FetchRow())
{
$question['ANSWER'] .="\t
\n";
// lemeur: PDFOUTPUT HAS NOT BEEN IMPLEMENTED for these fields
// not sure who did implement this.
$pdfoutput[$j][0]=array(" o "."Other"," __________");
$pdfoutput[$j][1]=array(" o "."OtherComment"," __________");
$j++;
}
$question['ANSWER'] = "\n
\n".$question['ANSWER']."
\n";
if(isset($_POST['printableexport'])){$pdf->tableintopdf($pdfoutput);}
break;
// ==================================================================
case "Q": //MULTIPLE SHORT TEXT
$width=60;
// ==================================================================
case "K": //MULTIPLE NUMERICAL
$question['QUESTION_TYPE_HELP'] = "";
$width=(isset($width))?$width:16;
if(isset($_POST['printableexport'])){$pdf->intopdf($clang->gT("Please write your answer(s) here:"),"U");}
if (!empty($qidattributes['equals_num_value']))
{
$question['QUESTION_TYPE_HELP'] .= "* ".sprintf($clang->gT('Total of all entries must equal %d'),$qidattributes['equals_num_value'])." \n";
}
if (!empty($qidattributes['max_num_value']))
{
$question['QUESTION_TYPE_HELP'] .= sprintf($clang->gT('Total of all entries must not exceed %d'), $qidattributes['max_num_value'])." \n";
}
if (!empty($qidattributes['min_num_value']))
{
$question['QUESTION_TYPE_HELP'] .= sprintf($clang->gT('Total of all entries must be at least %s'),$qidattributes['min_num_value'])." \n";
}
if($question['QUESTION_TYPE_HELP'] != "") {
$question['QUESTION_TYPE_HELP'] .= " \n";
}
$question['QUESTION_TYPE_HELP'] .= $clang->gT("Please write your answer(s) here:");
$meaquery = "SELECT * FROM ".db_table_name("questions")." WHERE parent_qid={$deqrow['qid']} AND language='{$surveyprintlang}' ORDER BY question_order";
$mearesult = db_execute_assoc($meaquery);
$longest_string = 0;
while ($mearow = $mearesult->FetchRow())
{
$longest_string = longest_string($mearow['question'] , $longest_string );
if (isset($qidattributes['slider_layout']) && $qidattributes['slider_layout']==1)
{
$mearow['question']=explode(':',$mearow['question']);
$mearow['question']=$mearow['question'][0];
}
$question['ANSWER'] .= "\t
\n";
if(isset($_POST['printableexport'])){$pdf->intopdf($clang->gT("Please choose *only one* of the following:"),"U");}
if(isset($_POST['printableexport'])){$pdf->intopdf(" o ".$clang->gT("Yes"));}
if(isset($_POST['printableexport'])){$pdf->intopdf(" o ".$clang->gT("No"));}
break;
// ==================================================================
case "A": //ARRAY (5 POINT CHOICE)
$meaquery = "SELECT * FROM ".db_table_name("questions")." WHERE parent_qid={$deqrow['qid']} AND language='{$surveyprintlang}' ORDER BY question_order";
$mearesult = db_execute_assoc($meaquery);
$question['QUESTION_TYPE_HELP'] = $clang->gT("Please choose the appropriate response for each item:");
$question['QUESTION_TYPE_HELP'] .= array_filter_help($qidattributes, $surveyprintlang, $surveyid);
$question['ANSWER'] = "
1".addsgqacode(" (1)")."
2".addsgqacode(" (2)")."
3".addsgqacode(" (3)")."
4".addsgqacode(" (4)")."
5".addsgqacode(" (5)")."
";
if(isset($_POST['printableexport'])){$pdf->intopdf($clang->gT("Please choose the appropriate response for each item:"),"U");}
$pdfoutput = array();
$j=0;
$rowclass = 'array1';
while ($mearow = $mearesult->FetchRow())
{
$question['ANSWER'] .= "\t\t
\n";
if(isset($_POST['printableexport'])){$pdf->tableintopdf($pdfoutput);}
break;
// ==================================================================
case "B": //ARRAY (10 POINT CHOICE)
$meaquery = "SELECT * FROM ".db_table_name("questions")." WHERE parent_qid={$deqrow['qid']} AND language='{$surveyprintlang}' ORDER BY question_order";
$mearesult = db_execute_assoc($meaquery);
$question['QUESTION_TYPE_HELP'] = $clang->gT("Please choose the appropriate response for each item:");
$question['QUESTION_TYPE_HELP'] .= array_filter_help($qidattributes, $surveyprintlang, $surveyid);
$question['ANSWER'] .= "\n
\n\t\n\t\t
\n\t\t\t
\n";
for ($i=1; $i<=10; $i++)
{
$question['ANSWER'] .= "\t\t\t
$i".addsgqacode(" ($i)")."
\n";
}
$question['ANSWER'] .= "\t
\n\n\t\n";
if(isset($_POST['printableexport'])){$pdf->intopdf($clang->gT("Please choose the appropriate response for each item:"),"U");}
$pdfoutput=array();
$j=0;
$rowclass = 'array1';
while ($mearow = $mearesult->FetchRow())
{
$question['ANSWER'] .= "\t\t
\n";
$pdfoutput[$j][$i]=" o ".$i;
}
$question['ANSWER'] .= "\t\t
\n";
$j++;
}
$question['ANSWER'] .= "\t\n
\n";
if(isset($_POST['printableexport'])){$pdf->tableintopdf($pdfoutput);}
break;
// ==================================================================
case "C": //ARRAY (YES/UNCERTAIN/NO)
$meaquery = "SELECT * FROM ".db_table_name("questions")." WHERE parent_qid={$deqrow['qid']} AND language='{$surveyprintlang}' ORDER BY question_order";
$mearesult = db_execute_assoc($meaquery);
$question['QUESTION_TYPE_HELP'] = $clang->gT("Please choose the appropriate response for each item:");
$question['QUESTION_TYPE_HELP'] .= array_filter_help($qidattributes, $surveyprintlang, $surveyid);
$question['ANSWER'] = '
'.$clang->gT("Yes").addsgqacode(" (Y)").'
'.$clang->gT("Uncertain").addsgqacode(" (U)").'
'.$clang->gT("No").addsgqacode(" (N)").'
';
if(isset($_POST['printableexport'])){$pdf->intopdf($clang->gT("Please choose the appropriate response for each item:"),"U");}
$pdfoutput = array();
$j=0;
$rowclass = 'array1';
while ($mearow = $mearesult->FetchRow())
{
$question['ANSWER'] .= "\t\t
\n";
$pdfoutput[$j]=array($mearow['question']," o ".$clang->gT("Yes")," o ".$clang->gT("Uncertain")," o ".$clang->gT("No"));
$j++;
$rowclass = alternation($rowclass,'row');
}
$question['ANSWER'] .= "\t\n
\n";
if(isset($_POST['printableexport'])){$pdf->tableintopdf($pdfoutput);}
break;
case "E": //ARRAY (Increase/Same/Decrease)
$meaquery = "SELECT * FROM ".db_table_name("questions")." WHERE parent_qid={$deqrow['qid']} AND language='{$surveyprintlang}' ORDER BY question_order";
$mearesult = db_execute_assoc($meaquery);
$question['QUESTION_TYPE_HELP'] = $clang->gT("Please choose the appropriate response for each item:");
$question['QUESTION_TYPE_HELP'] .= array_filter_help($qidattributes, $surveyprintlang, $surveyid);
$question['ANSWER'] = '
'.$clang->gT("Increase").addsgqacode(" (I)").'
'.$clang->gT("Same").addsgqacode(" (S)").'
'.$clang->gT("Decrease").addsgqacode(" (D)").'
';
if(isset($_POST['printableexport'])){$pdf->intopdf($clang->gT("Please choose the appropriate response for each item:"),"U");}
$pdfoutput = array();
$j=0;
$rowclass = 'array1';
while ($mearow = $mearesult->FetchRow())
{
$question['ANSWER'] .= "\t\t
\n";
$pdfoutput[$j]=array($mearow['question'].":"," o ".$clang->gT("Increase")," o ".$clang->gT("Same")," o ".$clang->gT("Decrease"));
$j++;
$rowclass = alternation($rowclass,'row');
}
$question['ANSWER'] .= "\t\n
\n";
if(isset($_POST['printableexport'])){$pdf->tableintopdf($pdfoutput);}
break;
// ==================================================================
case ":": //ARRAY (Multi Flexible) (Numbers)
$headstyle="style='padding-left: 20px; padding-right: 7px'";
if (trim($qidattributes['multiflexible_max'])!='' && trim($qidattributes['multiflexible_min']) =='') {
$maxvalue=$qidattributes['multiflexible_max'];
$minvalue=1;
}
if (trim($qidattributes['multiflexible_min'])!='' && trim($qidattributes['multiflexible_max']) =='') {
$minvalue=$qidattributes['multiflexible_min'];
$maxvalue=$qidattributes['multiflexible_min'] + 10;
}
if (trim($qidattributes['multiflexible_min'])=='' && trim($qidattributes['multiflexible_max']) =='') {
$minvalue=1;
$maxvalue=10;
}
if (trim($qidattributes['multiflexible_min']) !='' && trim($qidattributes['multiflexible_max']) !='') {
if($qidattributes['multiflexible_min'] < $qidattributes['multiflexible_max']){
$minvalue=$qidattributes['multiflexible_min'];
$maxvalue=$qidattributes['multiflexible_max'];
}
}
if (trim($qidattributes['multiflexible_step'])!='') {
$stepvalue=$qidattributes['multiflexible_step'];
}
else
{
$stepvalue=1;
}
if ($qidattributes['multiflexible_checkbox']!=0) {
$checkboxlayout=true;
} else {
$checkboxlayout=false;
}
$meaquery = "SELECT * FROM ".db_table_name("questions")." WHERE parent_qid={$deqrow['qid']} AND scale_id=0 AND language='{$surveyprintlang}' ORDER BY question_order";
$mearesult = db_execute_assoc($meaquery);
if ($checkboxlayout === false)
{
if ($stepvalue > 1)
{
$question['QUESTION_TYPE_HELP'] = sprintf($clang->gT("Please write a multiple of %d between %d and %d for each item:"),$stepvalue,$minvalue,$maxvalue);
if(isset($_POST['printableexport'])){$pdf->intopdf(sprintf($clang->gT("Please write a multiple of %d between %d and %d for each item:"),$stepvalue,$minvalue,$maxvalue),"U");}
}
else {
$question['QUESTION_TYPE_HELP'] = sprintf($clang->gT("Please enter a number between %d and %d for each item:"),$minvalue,$maxvalue);
if(isset($_POST['printableexport'])){$pdf->intopdf(sprintf($clang->gT("Please enter a number between %d and %d for each item:"),$minvalue,$maxvalue),"U");}
}
}
else
{
$question['QUESTION_TYPE_HELP'] = $clang->gT("Check any that apply").":";
if(isset($_POST['printableexport'])){$pdf->intopdf($clang->gT("Check any that apply"),"U");}
}
$question['QUESTION_TYPE_HELP'] .= array_filter_help($qidattributes, $surveyprintlang, $surveyid);
$question['ANSWER'] .= "\n
\n\t\n\t\t
\n\t\t\t
\n";
$fquery = "SELECT * FROM ".db_table_name("questions")." WHERE parent_qid={$deqrow['qid']} AND scale_id=1 AND language='{$surveyprintlang}' ORDER BY question_order";
$fresult = db_execute_assoc($fquery);
$fcount = $fresult->RecordCount();
$fwidth = "120";
$i=0;
$pdfoutput = array();
$pdfoutput[0][0]=' ';
//array to temporary store X axis question codes
$xaxisarray = array();
while ($frow = $fresult->FetchRow())
{
$question['ANSWER'] .= "\t\t\t
\n";
if(isset($_POST['printableexport'])){$pdf->tableintopdf($pdfoutput);}
break;
// ==================================================================
case ";": //ARRAY (Multi Flexible) (text)
$headstyle="style='padding-left: 20px; padding-right: 7px'";
$meaquery = "SELECT * FROM ".db_table_name("questions")." WHERE parent_qid={$deqrow['qid']} AND scale_id=0 AND language='{$surveyprintlang}' ORDER BY question_order";
$mearesult = db_execute_assoc($meaquery);
$question['QUESTION_TYPE_HELP'] = array_filter_help($qidattributes, $surveyprintlang, $surveyid);
$question['ANSWER'] .= "\n
\n\t\n\t\t
\n\t\t\t
\n";
$fquery = "SELECT * FROM ".db_table_name("questions")." WHERE parent_qid={$deqrow['qid']} AND scale_id=1 AND language='{$surveyprintlang}' ORDER BY question_order";
$fresult = db_execute_assoc($fquery);
$fcount = $fresult->RecordCount();
$fwidth = "120";
$i=0;
$pdfoutput=array();
$pdfoutput[0][0]='';
//array to temporary store X axis question codes
$xaxisarray = array();
while ($frow = $fresult->FetchRow())
{
$question['ANSWER'] .= "\t\t\t
\n";
if(isset($_POST['printableexport'])){$pdf->tableintopdf($pdfoutput);}
break;
// ==================================================================
case "1": //ARRAY (Flexible Labels) multi scale
$leftheader= $qidattributes['dualscale_headerA'];
$rightheader= $qidattributes['dualscale_headerB'];
$headstyle = 'style="padding-left: 20px; padding-right: 7px"';
$meaquery = "SELECT * FROM ".db_table_name("questions")." WHERE parent_qid={$deqrow['qid']} AND language='{$surveyprintlang}' ORDER BY question_order";
$mearesult = db_execute_assoc($meaquery);
$question['QUESTION_TYPE_HELP'] = $clang->gT("Please choose the appropriate response for each item:");
$question['QUESTION_TYPE_HELP'] .= array_filter_help($qidattributes, $surveyprintlang, $surveyid);
if(isset($_POST['printableexport'])){$pdf->intopdf($clang->gT("Please choose the appropriate response for each item:"),"U");}
$question['ANSWER'] .= "\n
\n\t\n";
$fquery = "SELECT * FROM ".db_table_name("answers")." WHERE qid='{$deqrow['qid']}' AND language='{$surveyprintlang}' AND scale_id=0 ORDER BY sortorder, code";
$fresult = db_execute_assoc($fquery);
$fcount = $fresult->RecordCount();
$fwidth = "120";
$l1=0;
$printablesurveyoutput2 = "\t\t\t
";
$pdfoutput[0][$l1+1]=$frow['answer'];
$l1++;
}
// second scale
$printablesurveyoutput2 .="\t\t\t
\n";
$fquery1 = "SELECT * FROM ".db_table_name("answers")." WHERE qid='{$deqrow['qid']}' AND language='{$surveyprintlang}' AND scale_id=1 ORDER BY sortorder, code";
$fresult1 = db_execute_assoc($fquery1);
$fcount1 = $fresult1->RecordCount();
$fwidth = "120";
$l2=0;
//array to temporary store second scale question codes
$scale2array = array();
while ($frow1 = $fresult1->FetchRow())
{
$printablesurveyoutput2 .="\t\t\t
\n";
if(isset($_POST['printableexport'])){$pdf->tableintopdf($pdfoutput);}
break;
// ==================================================================
case "H": //ARRAY (Flexible Labels) by Column
//$headstyle="style='border-left-style: solid; border-left-width: 1px; border-left-color: #AAAAAA'";
$headstyle="style='padding-left: 20px; padding-right: 7px'";
$fquery = "SELECT * FROM ".db_table_name("questions")." WHERE parent_qid={$deqrow['qid']} AND language='{$surveyprintlang}' ORDER BY question_order, title";
$fresult = db_execute_assoc($fquery);
$question['QUESTION_TYPE_HELP'] = $clang->gT("Please choose the appropriate response for each item:");
if(isset($_POST['printableexport'])){$pdf->intopdf($clang->gT("Please choose the appropriate response for each item:"),"U");}
$question['ANSWER'] .= "\n
\n\t\n\t\t
\n\t\t\t
\n";
$meaquery = "SELECT * FROM ".db_table_name("answers")." WHERE qid='{$deqrow['qid']}' AND scale_id=0 AND language='{$surveyprintlang}' ORDER BY sortorder, code";
$mearesult = db_execute_assoc($meaquery);
$fcount = $fresult->RecordCount();
$fwidth = "120";
$i=0;
$pdfoutput = array();
$pdfoutput[0][0]='';
while ($frow = $fresult->FetchRow())
{
$question['ANSWER'] .= "\t\t\t
\n";
$question['ANSWER'] .= "\t\t\n";
$a++;
}
$question['ANSWER'] .= "\t\n\n";
if(isset($_POST['printableexport'])){$pdf->tableintopdf($pdfoutput);}
break;
case "|": // File Upload
$question['QUESTION_TYPE_HELP'] .= "Kindly attach the aforementioned documents along with the survey";
break;
// === END SWITCH ===================================================
}
if(isset($_POST['printableexport'])){$pdf->ln(5);}
$question['QUESTION_TYPE_HELP'] = star_replace($question['QUESTION_TYPE_HELP']);
$group['QUESTIONS'] .= populate_template( 'question' , $question);
}
if ($bGroupHasVisibleQuestions)
{
$survey_output['GROUPS'] .= populate_template( 'group' , $group );
}
}
$survey_output['THEREAREXQUESTIONS'] = str_replace( '{NUMBEROFQUESTIONS}' , $total_questions , $clang->gT('There are {NUMBEROFQUESTIONS} questions in this survey'));
// START recursive tag stripping.
// PHP 5.1.0 introduced the count parameter for preg_replace() and thus allows this procedure to run with only one regular expression.
// Previous version of PHP needs two regular expressions to do the same thing and thus will run a bit slower.
$server_is_newer = version_compare(PHP_VERSION , '5.1.0' , '>');
$rounds = 0;
while($rounds < 1)
{
$replace_count = 0;
if($server_is_newer) // Server version of PHP is at least 5.1.0 or newer
{
$survey_output['GROUPS'] = preg_replace(
array(
'/
(?: | | )?<\/td>/isU'
,'/
]*>(?: | | )?<\/th>/isU'
,'/<([^ >]+)[^>]*>(?: | |\r\n|\n\r|\n|\r|\t| )*<\/\1>/isU'
)
,array(
'[[EMPTY-TABLE-CELL]]'
,'[[EMPTY-TABLE-CELL-HEADER]]'
,''
)
,$survey_output['GROUPS']
,-1
,$replace_count
);
}
else // Server version of PHP is older than 5.1.0
{
$survey_output['GROUPS'] = preg_replace(
array(
'/
]*>){NOTEMPTY}(<\/div>)/' , '\1 \2' , $survey_output['GROUPS']);
// END recursive empty tag stripping.
if(isset($_POST['printableexport']))
{
if ($surveystartdate!='')
{
if(isset($_POST['printableexport'])){$pdf->intopdf(sprintf($clang->gT("Please submit by %s"), $surveyexpirydate));}
}
if(!empty($surveyfaxto) && $surveyfaxto != '000-00000000') //If no fax number exists, don't display faxing information!
{
if(isset($_POST['printableexport'])){$pdf->intopdf(sprintf($clang->gT("Please fax your completed survey to: %s"),$surveyfaxto),'B');}
}
$pdf->titleintopdf($clang->gT("Submit Your Survey."),$clang->gT("Thank you for completing this survey."));
$pdf->write_out($clang->gT($surveyname)." ".$surveyid.".pdf");
}
echo populate_template( 'survey' , $survey_output );
exit;
function array_filter_help($qidattributes, $surveyprintlang, $surveyid) {
global $clang;
$output = "";
if(!empty($qidattributes['array_filter']))
{
$newquery="SELECT question FROM ".db_table_name("questions")." WHERE title='{$qidattributes['array_filter']}' AND language='{$surveyprintlang}' AND sid = '$surveyid'";
$newresult=db_execute_assoc($newquery);
$newquestiontext=$newresult->fetchRow();
$output .= "\n
".sprintf($clang->gT("Only answer this question for the items you selected in question %d ('%s')"),$qidattributes['array_filter'], br2nl($newquestiontext['question']))."
\n";
}
if(!empty($qidattributes['array_filter_exclude']))
{
$newquery="SELECT question FROM ".db_table_name("questions")." WHERE title='{$qidattributes['array_filter_exclude']}' AND language='{$surveyprintlang}' AND sid = '$surveyid'";
$newresult=db_execute_assoc($newquery);
$newquestiontext=$newresult->fetchRow();
$output .= "\n
".sprintf($clang->gT("Only answer this question for the items you did not select in question %d ('%s')"),$qidattributes['array_filter_exclude'], br2nl($newquestiontext['question']))."
\n";
}
return $output;
}
/*
* $code: Text string containing the reference (column heading) for the current (sub-) question
*
* Checks if the $showsgqacode setting is enabled at config and adds references to the column headings
* to the output so it can be used as a code book for customized SQL queries when analysing data.
*
* return: adds the text string to the overview
*/
function addsgqacode($code)
{
global $showsgqacode;
if(isset($showsgqacode) && $showsgqacode == true)
{
return $code;
}
}
?>