rsvp_attendees_csv($rid)
rsvp/rsvp.module, line 686
Callback to display an attendee list as CSV file
<?php
function rsvp_attendees_csv($rid) {
//fields to export
$field_list = array( 'response', 'email', 'invited', 'received' );
$rsvp = rsvp_load($rid);
$attendees = _rsvp_get_attendees($rid);
$attendee = db_fetch_object($attendees);
$header = array();
$content = '';
//get header row
foreach ($attendee as $key => $value) {
if (in_array( $key, $field_list ))
$header[] = $key;
}
$filename = str_replace(' ', '_', $rsvp->name) .'_'. date("Y-m-d") .'.csv';
$now = gmdate('D, d M Y H:i:s') .' GMT';
$mime_type = 'text/x-csv';
$ext = 'csv';
// send the write header statements to the browser
header('Content-Type: '. $mime_type);
header('Expires: '. $now);
// lem9 & loic1: IE need specific headers
$is_ie = strstr( $_SERVER['HTTP_USER_AGENT'], 'MSIE' );
if ($is_ie) {
header('Content-Disposition: inline; filename="'. $filename .'"');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
}
else {
header('Content-Disposition: attachment; filename="'. $filename .'"');
header('Pragma: no-cache');
}
$result = '';
$seperator = ',';
$enclosed = '"';
$escaped = $enclosed;
$add_character = "\015\012";
$print = true;
$schema_insert = '';
foreach ( $header as $field ) {
if ($enclosed == '') {
$schema_insert .= stripslashes($field);
}
else {
$schema_insert .=
$enclosed
. str_replace($enclosed, $escaped . $enclosed, stripslashes($field))
. $enclosed;
}
$schema_insert .= $seperator;
} // end while
// need to add PMA_exportOutputHandler functionality out here, rather than
// doing it the moronic way of assembling a buffer
$out = trim(substr($schema_insert, 0, -1)) . $add_character;
if ($print) {
echo $out;
}
else {
$result .= $out;
}
$i = 0;
$fields_cnt = count($header);
$attendees = _rsvp_get_attendees($rid);
while ($row = db_fetch_object($attendees)) {
$schema_insert = '';
foreach ( $row as $j => $value ) {
if (in_array($j, $field_list)) {
if (!isset($value) || is_null($value)) {
$schema_insert .= '';
}
else if ($value == '0' || $value != '') {
// loic1 : always enclose fields
$value = ereg_replace("\015(\012)?", "\012", $value);
if ($enclosed == '') {
$schema_insert .= $value;
}
else {
$schema_insert .=
$enclosed
. str_replace($enclosed, $escaped . $enclosed, $value)
. $enclosed;
}
}
else {
$schema_insert .= '';
}
if ($j < $fields_cnt-1) {
$schema_insert .= $seperator;
}
} //end in field_list
} // end foreach
$out = $schema_insert . $add_character;
if ($print) {
echo $out;
}
else {
$result .= $out;
}
++$i;
} // end for
}
?>