Updates for the common events version V1
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 27 Apr 2016 19:43:59 +0000 (15:43 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 27 Apr 2016 19:44:13 +0000 (15:44 -0400)
This handles the new tables and files in an extra table.

models/admin/management/events.php

index 35a0a48..189ee06 100644 (file)
@@ -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 '<pre>$sql: ' . print_r($sql, true) . '</pre>';
         try {
             $events = $this->dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC);
             $return .= '<pre>$events: ' . print_r($events, true) . '</pre>';
             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 '<pre>$found: ' . print_r($found, true) . '</pre>';
-                $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 '<pre>$eventData: ' . print_r($eventData, true) . '</pre>';
-                    echo '</pre>';
-                    $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 '<pre>$eventId: from insert ' . print_r($eventId, true) . '</pre>';
-                    if ( !$eventId ) {
-                        echo '<pre>SQL Error: ' . $this->wpdb->last_error . '</pre>';
-                    }
+                }
+                
+                echo '<pre>$eventData: ' . print_r($eventData, true) . '</pre>';
+                echo '</pre>';
+                $this->wpdb->insert(
+                    GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'events',
+                    $eventData,
+                    $eventDataFormat
+                );
+                $eventId  = $this->wpdb->insert_id;
+                var_dump( $eventId );
+                echo '<pre>$eventId: from insert ' . print_r($eventId, true) . '</pre>';
+                if ( !$eventId ) {
+                    echo '<pre>SQL Error: ' . $this->wpdb->last_error . '</pre>';
+                    echo '<pre>SQL Error: ' . $this->wpdb->print_error() . '</pre>';
                 }
                 // checking for $eventId
                 //echo '<pre>$eventId: ' . print_r($eventId, true) . '</pre>';
@@ -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,