. */ class Candidates implements IExport { public function getDisplayName() { return "Candidates"; } public function getDescription() { return "This export contains all candidates that are approved."; } public function hasAccess() { return in_array("candidate_viewdetail", $_SESSION['sess_functions']) || is_after_in("CandidatePublish"); } public function getHeaders() { $columns = array(); $columns['FirstName'] = "First name"; $columns['LastName'] = "Family name"; $columns['DateBirth'] = "Date of birth"; $columns['Sex'] = "Gender"; $columns['Nationality'] = "Nationality"; $columns['Position'] = "Position"; $columns['Body'] = "Local"; $columns['Street'] = "Street"; $columns['Zip'] = "Postal code (ZIP)"; $columns['City'] = "City"; $columns['Country'] = "Country"; $columns['Phone'] = "Phone number"; $columns['Mobile'] = "Mobile phone number"; $columns['Fax'] = "Fax number"; $columns['Languages'] = "Spoken languages"; $columns['Studies'] = "Studies"; $columns['MemberSince'] = "Member since"; $columns['EUExperience'] = "European level experience"; $columns['Agoras'] = "Attended Agoras"; $columns['EBMs'] = "Attended EBMs/EPMs"; $columns['AEGEEConferences'] = "Attended AEGEE conferences"; $columns['LocalBoardPosition'] = "Local board position"; $columns['LocalActivity'] = "Local activity"; $columns['NonAEGEE'] = "Non AEGEE experience"; $columns['CDTasks'] = "CD tasks preference"; $columns['Motivation'] = "Motivation"; $columns['TaskExperience'] = "Task related experience"; $columns['Program'] = "Program"; 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 `FirstName`, `LastName`, `DateBirth`, `Sex`, `Nationality`.`Name` AS `Nationality`, `candidatepost`.`position` AS `Position`, "; $query .= "`ab_bodies`.`BodyName` AS `Body`, `Street`, `Zip`, `City`, `Country`.`Name` AS `Country`, "; $query .= "IF(LENGTH(`Phone`)>0, CONCAT('+', `Phone`), '') AS `Phone`, IF(LENGTH(`Mobile`)>0, CONCAT('+', `Mobile`), '') AS `Mobile`, "; $query .= "IF(LENGTH(`Fax`)>0, CONCAT('+', `Fax`), '') AS `Fax`, `Languages`, `Studies`, `MemberSince`, `EUExperience`, `Agoras`, "; $query .= "`EBMs`, `AEGEEConferences`, `LocalBoardPosition`, `LocalActivity`, `NonAEGEE`, `CDTasks`, `Motivation`, `TaskExperience`, `Program` "; $query .= "FROM `candidates` "; $query .= "LEFT JOIN `CountryCodes` `Nationality` ON `candidates`.`Nationality` = `Nationality`.`Code` "; $query .= "LEFT JOIN `CountryCodes` `Country` ON `candidates`.`CountryCode` = `Country`.`Code` "; $query .= "LEFT JOIN `candidatepost` ON `candidates`.`position` = `candidatepost`.`id` "; $query .= "LEFT JOIN `ab_bodies` ON `candidates`.`BodyCode` = `ab_bodies`.`BodyCode` "; $query .= "WHERE `Approved` = 'yes' "; $query .= "ORDER BY `candidatepost`.`position`, `FirstName`, `LastName`"; return $query; } } ?>