From: Steve Sutton Date: Wed, 16 Mar 2016 17:20:32 +0000 (-0400) Subject: More with importing events X-Git-Tag: v1.0.0^2~162^2~25 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=350c5f9d93e2a6de3b2705173fb18a07054b2a91;p=WP-Plugins%2Fglm-member-db-events.git More with importing events now have the time for events --- diff --git a/models/admin/management/events.php b/models/admin/management/events.php index eee64a0..55eea7e 100644 --- a/models/admin/management/events.php +++ b/models/admin/management/events.php @@ -60,6 +60,7 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement * @access public */ public $categories = array(); + public $oldCatMap = array(); /** * events * @@ -420,9 +421,12 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement '%d' ) ); - $this->categories[$this->wpdb->insert_id] = trim($category['name']); + $catid = $this->wpdb->insert_id; + $this->categories[$catid] = trim($category['name']); + $this->oldCatMap[$category['id']] = $catid; } else { $this->categories[$found['id']] = trim($category['name']); + $this->oldCatMap[$category['id']] = $found['id']; } } } catch(PDOException $e) { @@ -432,14 +436,38 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement return $return; } + public function getTime($time) + { + if (!$time) { + return false; + } + if (!preg_match('%(\d{1,2}):?(\d{2})? ?(\w{1,2})?%', $time, $timeParts)) { + //die('not found'); + return false; + } + $hour = (!$timeParts[3] || in_array(strtolower(trim($timeParts[3])), array('pm', 'p'))) + ? ( ((int)$timeParts[1] === 12) ? 12 : (int)$timeParts[1] += 12 ) + : ( ((int)$timeParts[1] === 12) ? 0 : (int)$timeParts[1] ); + // parse the hour from event + $dateTime = new DateTime(); + $dateTime->setTime($hour, (int)$timeParts[2] ); + return $dateTime->format('H:i'); + } + public function addEvents() { + // clear the events tables first + $this->wpdb->query( "DELETE FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events" ); + $this->wpdb->query( "DELETE FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "recurrences" ); + $this->wpdb->query( "DELETE FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times" ); + $this->wpdb->query( "DELETE FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "event_categories" ); $Recurrences = new GlmDataEventsRecurrences($this->wpdb, $this->config); - $sql = " + $return = ''; + $sql = " SELECT * FROM {$this->settings['schema']}.{$this->settings['tablename']} WHERE edate >= '{$this->settings['sdate']}'::DATE"; - $sql .= " AND reacur "; + $sql .=" AND reacur "; try { $events = $this->dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC); $return .= '
$events: ' . print_r($events, true) . '
'; @@ -451,6 +479,7 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement 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', @@ -462,7 +491,7 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement 'updated' => $event['create_date'], 'approved' => $event['approved_date'], 'name' => $event['header'], - 'intro' => $event['descr'], + 'intro' => $intro, 'descr' => $event['descr'], 'image' => $event['image'], ), @@ -481,9 +510,7 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement ); $eventId = $found['id']; } else { - $this->wpdb->insert( - GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'events', - array( + $eventData = array( 'status' => (($event['visable'] == '1') ? $this->config['status_numb']['active'] : $this->config['status_numb']['Inactive']), @@ -491,11 +518,18 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement 'updated' => $event['create_date'], 'approved' => $event['approved_date'], 'name' => $event['header'], - 'intro' => $event['descr'], + 'intro' => $intro, 'descr' => $event['descr'], 'image' => $event['image'], 'old_event_id' => $event['id'] - ), + ); + echo '
$eventData: ' . print_r($eventData, true) . '
'; + echo '
var_dump ';
+                    var_dump($eventData['intro']);
+                    echo '
'; + $this->wpdb->insert( + GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'events', + $eventData, array( '%d', '%s', @@ -509,16 +543,33 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement ) ); $eventId = $this->wpdb->insert_id; + var_dump( $eventId ); echo '
$eventId: from insert ' . print_r($eventId, true) . '
'; if ( !$eventId ) { - echo $this->wpdb->last_error; + echo '
SQL Error: ' . $this->wpdb->last_error . '
'; } } echo '
$eventId: ' . print_r($eventId, true) . '
'; if (!$eventId) { die('something is wrong no eventId'); } + if ( $event['topicid'] ) { + $this->wpdb->insert( + GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'event_categories', + array( + 'event' => $eventId, + 'category' => $this->oldCatMap[$event['topicid']] + ), + array( + '%d', + '%d' + ) + ); + } $allDates = !$event['reacur']; + if ( !$allDates && ( $event['bdate'] == $event['edate'] ) ) { + $allDates = 1; + } $allDay = $event['all_day']; $dayOfWeek = $monthOfYear = @@ -541,7 +592,10 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement $weekOfMonth = 4; break; case '4': - $weekOfMonth = 6; + $weekOfMonth = 8; + break; + case '5': + $weekOfMonth = 16; break; } } else { @@ -549,12 +603,24 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement } $monthOfYear = 4095; } + $btime = $this->getTime($event['btime']); + if ( $btime ) { + $btime = $event['bdate'] . ' ' . $btime; + } else { + $btime = $event['bdate']; + } + $etime = $this->getTime($event['etime']); + if ( $etime ) { + $etime = $event['edate'] . ' ' . $etime; + } else { + $etime = $event['edate']; + } $this->wpdb->insert( GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'recurrences', array( 'event' => $eventId, - 'start_time' => $event['bdate'], - 'end_time' => $event['bdate'], + 'start_time' => $btime, + 'end_time' => $etime, 'from_date' => $event['bdate'], 'to_date' => $event['edate'], 'all_day' => $allDay,