From: Steve Sutton Date: Wed, 27 Apr 2016 19:43:59 +0000 (-0400) Subject: Updates for the common events version V1 X-Git-Tag: v1.0.0^2~74 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=3493babbb6ce75386a17e2441923763db168d45e;p=WP-Plugins%2Fglm-member-db-events.git Updates for the common events version V1 This handles the new tables and files in an extra table. --- diff --git a/models/admin/management/events.php b/models/admin/management/events.php index 35a0a48..189ee06 100644 --- a/models/admin/management/events.php +++ b/models/admin/management/events.php @@ -633,163 +633,183 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement $this->wpdb->query( "DELETE FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "locations" ); $Recurrences = new GlmDataEventsRecurrences($this->wpdb, $this->config); $return = ''; - $sql = " - SELECT * - FROM {$this->settings['schema']}.{$this->settings['tablename']} - WHERE edate >= '{$this->settings['sdate']}'::DATE"; + $oldEventFormat = ($this->settings['tablename'] == 'event'); + if ( $oldEventFormat ) { + $sql = " + SELECT * + FROM {$this->settings['schema']}.{$this->settings['tablename']} + WHERE edate >= '{$this->settings['sdate']}'::DATE"; + } else { + $sql = " + SELECT * + FROM {$this->settings['schema']}.{$this->settings['tablename']} + WHERE ending >= '{$this->settings['sdate']}'::DATE"; + $prepareSql = " + SELECT filename,urltext + FROM {$this->settings['schema']}.files + WHERE event = :eid"; + $getFileData = $this->dbh->prepare($prepareSql); + } //$sql .=" AND file != '' "; + $this->wpdb->show_errors(); + echo '
$sql: ' . print_r($sql, true) . '
'; try { $events = $this->dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC); $return .= '
$events: ' . print_r($events, true) . '
'; foreach ( $events as $event ) { $foundMemberId = $refType = null; - if ( $event['member_id'] ) { + $memberId = (isset($event['member_id'])) ? $event['member_id'] : $event['member']; + if ( $memberId ) { // get the new member id $sql = " SELECT id FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members - WHERE old_member_id = '" . esc_sql( trim($event['member_id']) ) . "'"; + WHERE old_member_id = " . esc_sql( trim($memberId) ); $foundMemberId = $this->wpdb->get_row($sql, ARRAY_A); if ( $foundMemberId ) { $foundMemberId = $foundMemberId['id']; $refType = $this->config['ref_type_numb']['Member']; } } - var_dump($foundMemberId); - // see if event is in there by old_event_id - $sql = " - SELECT id - FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events - WHERE old_event_id = '" . esc_sql( trim($event['id']) ) . "'"; - $found = $this->wpdb->get_row($sql, ARRAY_A); - //echo '
$found: ' . print_r($found, true) . '
'; - $intro = substr(strip_tags($event['descr']), 0, 250); - if ( isset($found) ) { - $this->wpdb->update( - GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'events', - array( - 'status' => (($event['visable']) - ? $this->config['status_numb']['Active'] - : $this->config['status_numb']['Inactive']), - 'created' => $event['create_date'], - 'updated' => $event['create_date'], - 'approved' => $event['approved_date'], - 'name' => $event['header'], - 'intro' => $intro, - 'descr' => $event['descr'], - 'image' => $event['img'], - 'file1' => $event['file'], - 'file1_descr' => $event['filename'], - 'cost' => $event['cost'], - 'url' => $event['url'], - 'ref_type' => $refType, - 'ref_dest' => $foundMemberId, - 'admin_name' => $event['admin_contact_name'], - 'admin_org' => $event['admin_org_name'], - 'admin_email' => $event['admin_email'], - 'admin_phone' => $event['admin_phone'], - 'contact_email' => $event['email'], - 'contact_name' => $event['contact'], - 'contact_phone' => $event['phone'], - 'notes' => $event['notes'], - 'hide_address' => $event['notes'], - ), - array( 'old_event_id' => $event['id'] ), - array( - '%d', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%d', - '%d', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - ), - array( '%d' ) + if ( $oldEventFormat ) { + $intro = substr(strip_tags($event['descr']), 0, 250); + $eventData = array( + 'status' => (($event['visable'] == '1') + ? $this->config['status_numb']['Active'] + : $this->config['status_numb']['Inactive']), + 'created' => $event['create_date'], + 'updated' => $event['create_date'], + 'approved' => $event['approved_date'], + 'name' => $event['header'], + 'intro' => $intro, + 'descr' => $event['descr'], + 'image' => $event['img'], + 'file1' => $event['file'], + 'file1_descr' => $event['filename'], + 'cost' => $event['cost'], + 'url' => $event['url'], + 'old_event_id' => $event['id'], + 'ref_type' => $refType, + 'ref_dest' => $foundMemberId, + 'admin_name' => $event['admin_contact_name'], + 'admin_org' => $event['admin_org_name'], + 'admin_email' => $event['admin_email'], + 'admin_phone' => $event['admin_phone'], + 'contact_email' => $event['email'], + 'contact_name' => $event['contact'], + 'contact_phone' => $event['phone'], + 'notes' => $event['notes'], + 'hide_address' => $event['hide_address'], + ); + $eventDataFormat = array( + '%d', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%d', + '%d', + '%d', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%d', ); - $eventId = $found['id']; } else { + $getFileData->bindParam(':eid', $event['id'], PDO::PARAM_INT); + $getFileData->execute(); + $file = $filename = ''; + $fileData = $getFileData->fetch(PDO::FETCH_ASSOC); + if ($fileData ) { + $file = $fileData['filename']; + $filename = $fileData['urltext']; + } + $intro = ($event['intro']) + ? substr(strip_tags($event['intro']), 0, 250) + : substr(strip_tags($event['description']), 0, 250); $eventData = array( - 'status' => (($event['visable'] == '1') - ? $this->config['status_numb']['Active'] - : $this->config['status_numb']['Inactive']), - 'created' => $event['create_date'], - 'updated' => $event['create_date'], - 'approved' => $event['approved_date'], - 'name' => $event['header'], - 'intro' => $intro, - 'descr' => $event['descr'], - 'image' => $event['img'], - 'file1' => $event['file'], - 'file1_descr' => $event['filename'], - 'cost' => $event['cost'], - 'url' => $event['url'], - 'old_event_id' => $event['id'], - 'ref_type' => $refType, - 'ref_dest' => $foundMemberId, - 'admin_name' => $event['admin_contact_name'], - 'admin_org' => $event['admin_org_name'], - 'admin_email' => $event['admin_email'], - 'admin_phone' => $event['admin_phone'], - 'contact_email' => $event['email'], - 'contact_name' => $event['contact'], - 'contact_phone' => $event['phone'], - 'notes' => $event['notes'], - 'hide_address' => $event['notes'], - ); - echo '
$eventData: ' . print_r($eventData, true) . '
'; - echo ''; - $this->wpdb->insert( - GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'events', - $eventData, - array( - '%d', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%d', - '%d', - '%d', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - '%s', - ) + 'status' => (($event['active'] == '1') + ? $this->config['status_numb']['Active'] + : $this->config['status_numb']['Inactive']), + 'created' => $event['created'], + 'updated' => $event['updated'], + 'approved' => $event['approved'], + 'name' => $event['header'], + 'intro' => $intro, + 'descr' => $event['description'], + 'image' => $event['image'], + 'file1' => $file, + 'file1_descr' => $filename, + 'cost' => $event['cost'], + 'url' => $event['website'], + 'old_event_id' => $event['id'], + 'ref_type' => $refType, + 'ref_dest' => $foundMemberId, + 'admin_name' => $event['admin_contact'], + 'admin_org' => $event['admin_org'], + 'admin_email' => $event['admin_email'], + 'admin_phone' => $event['admin_phone'], + 'contact_email' => $event['contact_email'], + 'contact_name' => $event['contact_name'], + 'contact_phone' => $event['contact_phone'], + 'notes' => $event['notes'], + 'hide_address' => $event['hide_address'], + 'use_member_location' => $event['use_memberloc'] + ); + $eventDataFormat = array( + '%d', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%d', + '%d', + '%d', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%s', + '%d', + '%d', ); - $eventId = $this->wpdb->insert_id; - //var_dump( $eventId ); - //echo '
$eventId: from insert ' . print_r($eventId, true) . '
'; - if ( !$eventId ) { - echo '
SQL Error: ' . $this->wpdb->last_error . '
'; - } + } + + echo '
$eventData: ' . print_r($eventData, true) . '
'; + echo ''; + $this->wpdb->insert( + GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'events', + $eventData, + $eventDataFormat + ); + $eventId = $this->wpdb->insert_id; + var_dump( $eventId ); + echo '
$eventId: from insert ' . print_r($eventId, true) . '
'; + if ( !$eventId ) { + echo '
SQL Error: ' . $this->wpdb->last_error . '
'; + echo '
SQL Error: ' . $this->wpdb->print_error() . '
'; } // checking for $eventId //echo '
$eventId: ' . print_r($eventId, true) . '
'; @@ -813,10 +833,30 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement ) ); } + if ( $event['category'] ) { + $this->wpdb->insert( + GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'event_categories', + array( + 'event' => $eventId, + 'category' => $this->oldCatMap[$event['category']] + ), + array( + '%d', + '%d' + ) + ); + } // recurrences for the event - $recurringEvent = $event['reacur']; - if ( $recurringEvent && ( $event['bdate'] == $event['edate'] ) ) { - $recurringEvent = 0; + if (isset($event['reacur'])) { + $recurringEvent = $event['reacur']; + if ( $recurringEvent && ( $event['bdate'] == $event['edate'] ) ) { + $recurringEvent = 0; + } + } else { + $recurringEvent = $event['recurr']; + if ( $recurringEvent && ( $event['starting'] == $event['ending'] ) ) { + $recurringEvent = 0; + } } $dayOfWeek = $monthOfYear = @@ -852,21 +892,37 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement } $monthOfYear = 4095; } - $btime = $this->getTime($event['btime']); - $etime = $this->getTime($event['etime']); + if ( isset($event['btime']) ) { + $btime = $this->getTime($event['btime']); + $etime = $this->getTime($event['etime']); + } else { + $btime = $this->getTime($event['starthour']); + $etime = $this->getTime($event['endhour']); + } $startTimeOnly = ($btime && !$etime); if ( $startTimeOnly ) { $etime = $btime; } - $allDay = ( $event['all_day'] || !$btime ); + if ( isset($event['all_day']) ) { + $allDay = ( $event['all_day'] || !$btime ); + } else { + $allDay = ( $event['allday'] || !$btime ); + } + if (isset($event['bdate'])) { + $fromDate = $event['bdate']; + $toDate = $event['edate']; + } else { + $fromDate = $event['starting']; + $toDate = $event['ending']; + } $recurData =array( 'event' => $eventId, 'name' => 'Imported Event Schedule', 'start_time' => $btime, 'end_time' => $etime, 'start_time_only' => $startTimeOnly, - 'from_date' => $event['bdate'], - 'to_date' => $event['edate'], + 'from_date' => $fromDate, + 'to_date' => $toDate, 'all_day' => $allDay, 'recurring' => $recurringEvent, 'month_of_year' => $monthOfYear, @@ -901,7 +957,7 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement $Recurrences->createRecurrenceTimesEntries( $recurId, true, true ); // location for the event $hasLocation = ( - ($event['loc']) + ($event['loc'] || $event['place']) || ($event['contact']) || ($event['phone']) || ($event['url']) @@ -911,6 +967,10 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement $locationData = $locationFormat = array(); $locationData['event'] = $eventId; $locationFormat[] = '%d'; + if ($event['place']) { + $locationData['name'] = $event['place']; + $locationFormat[] = '%s'; + } if ($event['loc']) { $locationData['name'] = $event['loc']; $locationFormat[] = '%s'; @@ -939,23 +999,6 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement $locationData['lon'] = $event['lon']; $locationFormat[] = '%s'; } - if ($event['contact']) { - // break up the contact name db is expecting first and - // last name separately - list( $firstName, $lastName ) = explode( ' ', $event['contact'], 2 ); - $locationData['contact_fname'] = $firstName; - $locationFormat[] = '%s'; - $locationData['contact_lname'] = $lastName; - $locationFormat[] = '%s'; - } - if ($event['phone']) { - $locationData['contact_phone'] = $event['phone']; - $locationFormat[] = '%s'; - } - if ($event['email']) { - $locationData['contact_email'] = $event['email']; - $locationFormat[] = '%s'; - } $this->wpdb->insert( GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'locations', $locationData,