summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--includes/admin/views/giglog_import_gigs.php88
1 files changed, 77 insertions, 11 deletions
diff --git a/includes/admin/views/giglog_import_gigs.php b/includes/admin/views/giglog_import_gigs.php
index e04d0e6..2fe9776 100644
--- a/includes/admin/views/giglog_import_gigs.php
+++ b/includes/admin/views/giglog_import_gigs.php
@@ -31,7 +31,6 @@ if ( !class_exists( 'GiglogAdmin_ImportGigsPage' ) ) {
</form>
</div>
<?php
- echo giglogadmin_getunprocessed();
}
static function submit_form() {
@@ -45,19 +44,86 @@ if ( !class_exists( 'GiglogAdmin_ImportGigsPage' ) ) {
static function process_upload($file) {
global $wpdb;
- $table = 'wpg_files';
+ $concertlist = '<p>Inserted the following:</p>';
+ $newconcert= [];
$fo = new SplFileObject($file['tmp_name']);
- $r = 0;
- foreach ($fo as $newconcert) {
- $row = array(
- 'filename' => $fo,
- 'rowid' => $r++,
- 'rowcontent' => $newconcert
- );
+ foreach ($fo as $line) {
+ if ( empty($line) ) {
+ // Skip empty lines
+ continue;
+ }
+
+ $resultArray = explode("\t", $line);
+ $band = $resultArray[0];
+ $venue = $resultArray[1];
+ $condate = date('Y-m-d', strtotime($resultArray[2]));
+ $ticketlink = $resultArray[3];
+ $eventlink = $resultArray[4];
+ //first item in the row should be band $resultArray[0]; second should be venue $resultArray[1]; third should be concert date $resultArray[2];
+ //fourth item is ticketlink $resultArray[3]; fifth item is eventlink $resultArray[4];
+
+ //processing band
+ $bandsql = 'SELECT id FROM wpg_bands WHERE upper(wpgband_name)="' . $band . '"';
+ $results = $wpdb->get_results($bandsql);
+ if ($results)
+ $newconcert[0] = $results[0]->id;
+ else {
+ $wpdb->insert('wpg_bands', array(
+ 'id' => '',
+ 'wpgband_name' => $band
+ ));
+ echo ($wpdb->last_error);
+ $newconcert[0] = $wpdb->insert_id;
+ }
+ //done processing band
+
+ //processing venue
+ if (is_numeric($venue))
+ $newconcert[1] = $venue;
+ else {
+ $venuesql = 'SELECT id FROM wpg_venues WHERE upper(wpgvenue_name)="' . $venue . '"';
+ $results = $wpdb->get_results($venuesql);
+ if ($results)
+ $newconcert[1] = $results[0]->id;
+ else {
+ $wpdb->insert('wpg_venues', array(
+ 'id' => '',
+ 'wpgvenue_name' => $venue
+ ));
+ echo ($wpdb->last_error);
+ $newconcert[1] = $wpdb->insert_id;
+ }
+ }
+ //done processing venue
+
+ //not sure how to check dates, hopefully manual verification of files will take care of it
+
+ //check if concert already exists and return ID if it does. Not checking by date, to be considered
+ $csql = 'SELECT id from wpg_concerts where band = ' . $newconcert[0] . ' and venue = ' . $newconcert[1] . ' and wpgconcert_date ="' . $condate . '"';
+
+ $cresults = $wpdb->get_results($csql);
+ if ($cresults) {
+ $concertlist .= 'DUPLICATE ROW detected BAND ' . $band . ' with band ID ' . $newconcert[0];
+ $concertlist .= ', VENUE ' . $venue . ' with venue ID ' . $newconcert[1];
+ $concertlist .= ', CONCERTDATE ' . $condate;
+ $concertlist .= ' <br />';
+ } else {
+ $wpdb->insert('wpg_concerts', array(
+ 'id' => '',
+ 'band' => $newconcert[0],
+ 'venue' => $newconcert[1],
+ 'wpgconcert_date' => $condate,
+ 'wpgconcert_tickets' => $ticketlink,
+ 'wpgconcert_event' => $eventlink
+ ));
+ echo ($wpdb->last_error);
+ $newconcertid = $wpdb->insert_id;
- if ($wpdb->insert($table, $row) === false) {
- $wpdb->bail();
+ $concertlist .= 'BAND ' . $band . ' with band ID ' . $newconcert[0];
+ $concertlist .= ', VENUE ' . $venue . ' with venue ID ' . $newconcert[1];
+ $concertlist .= ', CONCERTDATE ' . $condate . ', Ticket LINK ' . $ticketlink . ', event LINK' . $eventlink;
+ $concertlist .= ' <br />';
}
}
}