Ejemplo n.º 1
0
 /**
  * Short description for 'downloadlist'
  *
  * Long description (if any) ...
  *
  * @param      object $resp Parameter description (if any) ...
  * @param      unknown $option Parameter description (if any) ...
  * @return     void
  */
 public static function downloadlist($resp, $option)
 {
     $database = \App::get('db');
     $ee = new \Components\Events\Tables\Event($database);
     header('Content-type: text/comma-separated-values');
     header('Content-disposition: attachment; filename="eventrsvp.csv"');
     $fields = array('name', 'registered', 'affiliation', 'email', 'telephone', 'arrival', 'departure', 'disability', 'dietary', 'dinner');
     //array_merge($ee->getDefinedFields(Request::getVar('id', array())), array('name'));
     // Output header
     usort($fields, array('\\Components\\Events\\Helpers\\Csv', 'fieldSorter'));
     echo self::quoteRow(array_map('ucfirst', $fields));
     $rows = $resp->getRecords();
     // Get a list of IDs to query the race identification for all of them at once to avoid
     // querying for it in a loop later
     $race_ids = array();
     foreach ($rows as $re) {
         $race_ids[$re->id] = array('identification' => '');
     }
     foreach (\Components\Events\Tables\Respondent::getRacialIdentification(array_keys($race_ids)) as $id => $val) {
         $race_ids[$id] = $val;
     }
     // Output rows
     foreach ($rows as $re) {
         if (!isset($re->last_name) || !$re->last_name) {
             $re->last_name = '[unknown]';
         }
         if (!isset($re->first_name) || !$re->first_name) {
             $re->first_name = '[unknown]';
         }
         $row = array($re->last_name . ', ' . $re->first_name);
         // TODO: Oops, I should have made these fields match up better in the first place.
         foreach ($fields as $field) {
             switch ($field) {
                 case 'name':
                     break;
                 case 'position':
                     $row[] = $re->position_description;
                     break;
                 case 'comments':
                     $row[] = $re->comment;
                     break;
                 case 'degree':
                     $row[] = $re->highest_degree;
                     break;
                 case 'race':
                     $row[] = $race_ids[$re->id]['identification'];
                     break;
                 case 'address':
                     $address = array();
                     if ($re->city) {
                         $address[] = $re->city;
                     }
                     if ($re->state) {
                         $address[] = $re->state;
                     }
                     if ($re->zip) {
                         $address[] = $re->zip;
                     }
                     if ($re->country) {
                         $address[] = $re->country;
                     }
                     $row[] = implode(', ', $address);
                     break;
                 case 'disability':
                     $row[] = $re->disability_needs ? 'Yes' : 'No';
                     break;
                 case 'dietary':
                     $row[] = $re->dietary_needs;
                     break;
                 case 'dinner':
                     $row[] = $re->attending_dinner ? 'Yes' : 'No';
                     break;
                 default:
                     if (isset($re->{$field})) {
                         $row[] = $re->{$field};
                     } else {
                         $row[] = '';
                     }
                     break;
             }
         }
         echo self::quoteRow($row);
     }
     exit;
 }
Ejemplo n.º 2
0
?>
		<?php 
if (!empty($resp->website)) {
    ?>
		<tr><td><?php 
    echo Lang::txt('COM_EVENTS_RESPONDANT_WEBSITE');
    ?>
</td><td><?php 
    echo $this->escape($resp->website);
    ?>
</td></tr>
		<?php 
}
?>
		<?php 
$race = \Components\Events\Tables\Respondent::getRacialIdentification($resp->id);
if (!empty($race)) {
    ?>
		<tr><td><?php 
    echo Lang::txt('COM_EVENTS_RESPONDANT_RACE');
    ?>
</td><td><?php 
    echo $this->escape($race);
    ?>
</td></tr>
		<?php 
}
?>
		<?php 
if (!empty($resp->gender)) {
    ?>