--- /dev/null
+<?php
+/**
+ * Import Brewbakers Files
+ * Will have to do these 10 to 20 at a time.
+ */
+
+// Setup the database connection to postgres
+$dbServer = 'ds4';
+$dbName = 'michigantrailmaps';
+$dbUser = 'postgres';
+$resetdb = true;
+$start = ( isset( $_REQUEST['start'] ) ) ? filter_var( $_REQUEST['start'], FILTER_VALIDATE_INT ): 0;
+$limit = ( $start === 0 ) ? 20 : 100;
+$totalFiles = 0;
+$failure = false;
+
+$connString = "host=$dbServer dbname=$dbName user=$dbUser";
+$db = @pg_connect( $connString );
+
+require_once GLM_MEMBERS_PLUGIN_PATH.'/models/admin/ajax/fileUpload.php';
+$FileUpload = new GlmMembersAdmin_ajax_fileUpload($this->wpdb, $this->config);
+$refType = $this->config['ref_type_numb']['MemberInfo'];
+$refTable = $this->config['ref_type_table'][$refType];
+$fileBaseURL = 'http://www.michigantrailmaps.com/uploads/member_files/';
+
+
+// Read in all member files.
+$file = array();
+$numbFilesFound = 0;
+if (!$failure && $start === 0) {
+ // Grab the files for members
+ $sql = "
+ SELECT *
+ FROM members.member_files
+ ORDER BY member_id";
+ $res = pg_query($db, $sql);
+ $rows = pg_num_rows($res);
+ if ($rows == 0) {
+ $templateData['genError'] = 'There does not appear to be any member files listed in this database!';
+ $failure = true;
+ } else {
+ $tmp = pg_fetch_all($res);
+ if (count($tmp) != $rows) {
+ $notice = pg_last_notice($res);
+ $templateData['genError'] = 'While reading member photo data, we did not receive the expected number of member files! ';
+ if ($notice) {
+ $templateData['genError'] .= 'Perhaps the following message will help.<br>'.$notice;
+ }
+ $failure = true;
+ } else {
+
+ // Reprocess into array grouped by member with the main index the member ID
+ foreach ($tmp as $x) {
+
+ // If member entry hasn't been created yet, add it now
+ if (!isset($file['members'][$x['member_id']])) {
+ $file['members'][$x['member_id']] = array(
+ 'member_id' => $x['member_id'],
+ 'files' => array()
+ );
+ }
+
+ $file['members'][$x['member_id']]['files'][] = $x;
+ $numbFilesFound++;
+ }
+ //echo '<pre>$file: ' . print_r( $file, true ) . '</pre>';
+ }
+ }
+}
+//echo '<pre>$file: ' . print_r( $file, true ) . '</pre>';
+//exit;
+function getMemberInfoIdFromOldMemberId( $wpdb, $oldMemberId )
+{
+ return $wpdb->get_var(
+ $wpdb->prepare(
+ "SELECT id
+ FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info
+ WHERE member IN (
+ SELECT id
+ FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members
+ WHERE old_member_id = %d)",
+ $oldMemberId
+ )
+ );
+}
+//echo '<pre>$file: ' . print_r( $file, true ) . '</pre>';
+//exit;
+// Reset member files data tables if needed
+if ( !$failure && $resetdb && $start === 0 ) {
+ // Reset the data
+ $this->wpdb->query( "DELETE FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX."files" );
+
+ // Delete Files
+ foreach( new RecursiveIteratorIterator(
+
+ new RecursiveDirectoryIterator( GLM_MEMBERS_PLUGIN_FILES_PATH, FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS ),
+ RecursiveIteratorIterator::CHILD_FIRST ) as $value ) {
+ if ($value->isFile()) {
+ unlink( $value );
+ }
+ }
+}
+// If we have file URLs
+if ($file != false) {
+
+ // For each member
+ foreach ($file as $memType) {
+ foreach ($memType as $oldMemberId => $m) {
+
+ $newMemberId = getMemberInfoIdFromOldMemberId( $this->wpdb, $oldMemberId);
+
+ // For each file in this member's gallery
+ if ($m['files']) {
+ foreach ($m['files'] as $i) {
+ $fileURL = $fileBaseURL.$i['name_on_disk'];
+ $fileName = ( $i['file_name'] ) ? $i['file_name'] : $i['original_name'];
+ $res = $FileUpload->storeFile ($fileURL, $refType, $refTable, $newMemberId, $fileName );
+ }
+ }
+
+ }
+ }
+
+}
+
+$templateData['newStart'] = $start + $limit;
+$templateData['start'] = $start;
+$templateData['total'] = $totalFiles;
+$templateData['numbFilesFound'] = $numbFilesFound;
+
+$requestedView = 'import/trailmapsFiles.html';
<input type="radio" name="option" value="importTrailMaps" class="import-type"> Import Trail Maps
</td>
</tr>
- <tr class="for-brewbakers glm-hidden">
+ <tr class="for-trailmaps glm-hidden">
<td colspan="2">
- <p><a href="{$thisUrl}?page={$thisPage}&glm_action=import&option=brewbakersImages">Import Images</a></p>
- <p><a href="{$thisUrl}?page={$thisPage}&glm_action=import&option=brewbakersFiles">Import Files</a></p>
- <p><a href="{$thisUrl}?page={$thisPage}&glm_action=import&option=brewbakersBrands">Fix Brands</a></p>
+ <p><a href="{$thisUrl}?page={$thisPage}&glm_action=import&option=trailmapsFiles">Import Files</a></p>
</td>
</tr>
<tr class="for-member-import all-import-fields">
$('.for-member-import').addClass('glm-hidden');
} else if (selected == 'importMailingAddresses') {
$('.for-member-import').addClass('glm-hidden');
- } else if (selected == 'importBrewbakers') {
+ } else if (selected == 'importTrailMaps') {
$('.for-member-import').addClass('glm-hidden');
$('.all-import-fields').addClass('glm-hidden');
- $('.for-brewbakers').removeClass('glm-hidden');
+ $('.for-trailmaps').removeClass('glm-hidden');
} else {
$('.for-member-import').addClass('glm-hidden');
$('.all-import-fields').addClass('glm-hidden');
--- /dev/null
+{include file='admin/management/header.html'}
+
+ <h2>Data Import - Test Database</h2>
+ <ol>
+ <li>Provide legacy database information and import member data.</li>
+ <li>Import any images.</li>
+ <li class="glm-ol-selected">Review results</li>
+ </ol>
+
+
+ <h3>Data Import Step 3: Review Results.</h3>
+{if isset($genError)}
+ <p>
+ <h3 class="glm-error">Oops!</h3>
+ <p class="glm-error">{$genError}</p>
+ </p>
+{/if}
+
+<pre>
+Found: {$numbFilesFound} files
+Start: {$start}
+End: {$newStart}
+Total: {$total}
+</pre>
+ <a href="{$thisUrl}?page={$thisPage}&glm_action=import&option=brewbakersFiles&start={$newStart}">Next Set of Files</a>
+
+ {if $newStart > $total }
+ <h2>Process Complete</h2>
+ <p>
+ The data and image import process is complete. You should now have all member data and images imported.
+ <p>
+ <p>
+ You should now go to the "Member List" and make sure the data and images have been imported properly.
+ </p>
+ {/if}
+
+{include file='admin/footer.html'}