First Files master
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 28 Jun 2017 19:22:59 +0000 (15:22 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 28 Jun 2017 19:22:59 +0000 (15:22 -0400)
exportCSV.php [new file with mode: 0644]
readme.md [new file with mode: 0644]

diff --git a/exportCSV.php b/exportCSV.php
new file mode 100644 (file)
index 0000000..f526e1d
--- /dev/null
@@ -0,0 +1,202 @@
+<?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 );
+}
diff --git a/readme.md b/readme.md
new file mode 100644 (file)
index 0000000..770cfe6
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,7 @@
+# Gaslight Media Member Export to CSV files
+
+* Clone the directory into the main level of the site.
+* Run the file in the web browser
+
+## This will generate export files for importing into the new GLM Associate plugin.
+