+<?php
+require_once '../setup.phtml';
+$memberFileName = './member-export.csv';
+$cityFileName = './city-export.csv';
+$countyFileName = './county-export.csv';
+$regionFileName = './region-export.csv';
+$categoryFileName = './category-export.csv';
+$amenityFileName = './amenity-export.csv';
+$photosFileName = './photos-export.csv';
+$filesFileName = './files-export.csv';
+$dbh = Toolkit_Database::getInstance();
+
+// pull the member data
+$sql = "
+ SELECT member_id,member_name,CASE WHEN active = true THEN 'Active' ELSE 'Inactive' END AS status, description as descr,
+ street AS addr1, '' AS addr2, city_id AS city, state_id AS state,'US' AS country, zip, mailing_address AS mailing_addr1,
+ '' AS mailing_addr2, mailing_city_id AS mailing_city, mailing_state_id AS mailing_state,
+ mailing_zip, region, '' AS county, lat, lon, phone, toll_free, url, '' AS reservation_url,
+ member_contact_email AS email, CASE WHEN logo != '' THEN '" . CKIMAGE . "' || logo ELSE '' END AS logo
+ FROM members.member
+ORDER BY member_id";
+$stmt = $dbh->query( $sql );
+$memberData = $stmt->fetchAll( PDO::FETCH_ASSOC );
+echo '<pre>$memberData: ' . print_r( $memberData, true ) . '</pre>';
+
+$fileHeader = array(
+ 'id', 'member_name', 'status', 'descr',
+ 'addr1', 'addr2', 'city', 'state', 'country', 'zip',
+ 'mailing_addr1', 'mailing_addr2', 'mailing_city', 'mailing_state', 'mailing_zip',
+ 'region', 'county', 'lat', 'lon', 'phone', 'toll_free',
+ 'url', 'reservation_url', 'email', 'logo', 'categories', 'amenities');
+// Setup prepare statement for state abb
+$statePrepare = "
+SELECT state_abb
+ FROM members.state
+ WHERE state_id = :state_id";
+$getState = $dbh->prepare( $statePrepare );
+// Setup prepare statement for member categories
+$memberCatPrepare = "
+SELECT category_id
+ FROM members.member_category
+ WHERE member_id = :member_id";
+$getCategories = $dbh->prepare( $memberCatPrepare );
+// Setup prepare statement for member amenities
+$memberAmmPrepare = "
+SELECT amenity_id
+ FROM members.member_amenity
+ WHERE member_id = :member_id";
+$getAmenities = $dbh->prepare( $memberAmmPrepare );
+// create file
+$fp = fopen( $memberFileName, 'w' );
+if ( $fp ) {
+ // create file header
+ fputcsv( $fp, $fileHeader );
+ foreach ( $memberData as $member ) {
+ $memberCategories = array();
+ $getCategories->bindParam( ':member_id', $member['member_id'], PDO::PARAM_INT );
+ $getCategories->execute();
+ while ( $memCat = $getCategories->fetch( PDO::FETCH_ASSOC ) ) {
+ $memberCategories[] = $memCat['category_id'];
+ }
+ $member['categories'] = implode( ',', $memberCategories );
+ $memberAmenities = array();
+ $getAmenities->bindParam( ':member_id', $member['member_id'], PDO::PARAM_INT );
+ $getAmenities->execute();
+ while ( $memAmm = $getAmenities->fetch( PDO::FETCH_ASSOC ) ) {
+ $memberAmenities[] = $memAmm['amenity_id'];
+ }
+ $member['amenities'] = implode( ',', $memberAmenities );
+ if ( $member['state'] ) {
+ // get state abbr
+ $getState->bindParam( ':state_id', $member['state'] );
+ $getState->execute();
+ $member['state'] = $getState->fetchColumn();
+ }
+ if ( $member['mailing_state'] ) {
+ // get mailing state abbr
+ $getState->bindParam( ':state_id', $member['mailing_state'], PDO::PARAM_INT );
+ $getState->execute();
+ $member['mailing_state'] = $getState->fetchColumn();
+ }
+ fputcsv( $fp, $member );
+ }
+ fclose( $fp );
+}
+
+// get the cities
+$sql = "
+ SELECT city_id as id, city_name as name
+ FROM members.city
+ORDER BY city_id";
+$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC );
+$fileHeader = array( 'id', 'name' );
+$fp = fopen( $cityFileName, 'w' );
+if ( $fp ) {
+ fputcsv( $fp, $fileHeader );
+ foreach ( $data as $row ) {
+ fputcsv( $fp, $row );
+ }
+ fclose( $fp );
+}
+// get the counties
+$sql = "
+ SELECT county_id as id, county_name as name
+ FROM members.county
+ORDER BY county_id";
+$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC );
+$fileHeader = array( 'id', 'name' );
+$fp = fopen( $countyFileName, 'w' );
+if ( $fp ) {
+ fputcsv( $fp, $fileHeader );
+ foreach ( $data as $row ) {
+ fputcsv( $fp, $row );
+ }
+ fclose( $fp );
+}
+
+// get the regions
+$sql = "
+ SELECT region_id as id, region_name as name
+ FROM members.region
+ORDER BY region_id";
+$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC );
+$fileHeader = array( 'id', 'name' );
+$fp = fopen( $regionFileName, 'w' );
+if ( $fp ) {
+ fputcsv( $fp, $fileHeader );
+ foreach ( $data as $row ) {
+ fputcsv( $fp, $row );
+ }
+ fclose( $fp );
+}
+
+// get the amenities
+$sql = "
+ SELECT amenity_id as id, amenity_name as name
+ FROM members.amenity
+ORDER BY amenity_id";
+$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC );
+$fileHeader = array( 'id', 'name' );
+$fp = fopen( $amenityFileName, 'w' );
+if ( $fp ) {
+ fputcsv( $fp, $fileHeader );
+ foreach ( $data as $row ) {
+ fputcsv( $fp, $row );
+ }
+ fclose( $fp );
+}
+
+// get the categories
+$sql = "
+ SELECT category_id as id, name, parent_id as parent
+ FROM members.category
+ORDER BY category_id";
+$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC );
+$fileHeader = array( 'id', 'name', 'parent' );
+$fp = fopen( $categoryFileName, 'w' );
+if ( $fp ) {
+ fputcsv( $fp, $fileHeader );
+ foreach ( $data as $row ) {
+ fputcsv( $fp, $row );
+ }
+ fclose( $fp );
+}
+
+// get the member photos
+$sql = "
+ SELECT member_id, image,caption
+ FROM members.member_photos
+ORDER BY member_id,pos";
+$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC );
+$fileHeader = array( 'member_id', 'image', 'caption' );
+$fp = fopen( $photosFileName, 'w' );
+if ( $fp ) {
+ fputcsv( $fp, $fileHeader );
+ foreach ( $data as $row ) {
+ if ( $row['image'] ) {
+ $row['image'] = CKIMAGE . $row['image'];
+ }
+ fputcsv( $fp, $row );
+ }
+ fclose( $fp );
+}
+
+// get the member files
+$sql = "
+ SELECT member_id, name_on_disk as file_url, file_name
+ FROM members.member_files
+ORDER BY member_id,id";
+$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC );
+$fileHeader = array( 'member_id', 'file_url', 'file_name' );
+$fp = fopen( $filesFileName, 'w' );
+if ( $fp ) {
+ fputcsv( $fp, $fileHeader );
+ foreach ( $data as $row ) {
+ if ( $row['file_url'] ) {
+ $row['file_url'] = ORIGINAL . $row['file_url'];
+ }
+ fputcsv( $fp, $row );
+ }
+ fclose( $fp );
+}