. */ class Motivation implements IExport { public function getDisplayName() { return "Motivation and extra questions of applicants"; } public function hasAccess() { return in_array("application_viewdetail", $_SESSION['sess_functions']) && in_array("applicationfield_optionview", $_SESSION['sess_functions']); } public function getHeaders() { global $setup; $columns = array(); $columns['GivenName'] = "Given name"; $columns['Surname'] = "Surname"; $columns['Body'] = "Body"; if( $setup['ApplShowMotivation'] ) { $columns['Motivation'] = "Motivation"; } $query = "SELECT `id`, `question` FROM `appl_extraquestions` ORDER BY `order`"; if( @mysql_num_rows( $res=doquery($query) )>0 ) { while( $row = mysql_fetch_assoc($res) ) { $columns['ExtraQuestion_' . $row['id']] = $row['question']; } } return $columns; } public function getData() { $data = array(); if( @mysql_num_rows( $res=doquery($this->getDataQuery()) )>0 ) { while( $row = mysql_fetch_assoc($res) ) { $data[] = $row; } } return $data; } private function getDataQuery() { $query = "SELECT `persons`.`FirstName` AS `GivenName`, `persons`.`LastName` AS `Surname`"; $query .= ", `ab_bodies`.`BodyName` AS `Body`"; if( $setup['ApplShowMotivation'] ) { $query .= ", `persons`.`Motivation` AS `Motivation`"; } $joins = " LEFT JOIN `ab_bodies` ON `ab_bodies`.`BodyCode` = `persons`.`BodyCode`"; $queryExtraQuestions = "SELECT `id`, `question` FROM `appl_extraquestions` ORDER BY `order`"; if( @mysql_num_rows( $res=doquery($queryExtraQuestions) )>0 ) { while( $row = mysql_fetch_assoc($res) ) { $query .= ", `ExtraAnswer_" . $row['id'] . "`.`answer` AS `ExtraQuestion_" . $row['id'] . "`"; $joins .= " LEFT JOIN `appl_extraanswers` AS `ExtraAnswer_" . $row['id'] . "` ON `ExtraAnswer_" . $row['id'] . "`.`appl_id` = `persons`.`PersonID` AND `ExtraAnswer_" . $row['id'] . "`.`question_id` = " . $row['id']; } } $query .= " FROM `persons`"; $query .= $joins; $query .= " ORDER BY `ab_bodies`.`BodyCategoryOrder`, `ab_bodies`.`BodyNameAscii`, `persons`.`FirstName`, `persons`.`LastName`"; return $query; } } ?>