From: Steve Sutton Date: Wed, 12 Dec 2018 16:16:20 +0000 (-0500) Subject: Add import groups and interests X-Git-Tag: v1.2.0^2~2 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=ec6b60f255de3021edaa0423da21b277f84758b2;p=WP-Plugins%2Fglm-member-db-leads.git Add import groups and interests Adding import option for fetching old database groups and intrests interests and discovery ones included for uptravel. --- diff --git a/models/admin/management/leads.php b/models/admin/management/leads.php index 4fe3ac3..b4427bf 100644 --- a/models/admin/management/leads.php +++ b/models/admin/management/leads.php @@ -240,6 +240,10 @@ class GlmMembersAdmin_management_leads // extends GlmDataLeadsManagement $result .= $this->importLeads(); break; + case 'setupInterests': + $result .= $this->importInterests(); + break; + case 'import': $total_imported_leads = 0; $result = ''; @@ -762,6 +766,68 @@ class GlmMembersAdmin_management_leads // extends GlmDataLeadsManagement Updated Leads: ' . $updated_leads . ''; } + public function importInterests() + { + // Connect to the postgresql database + $db_host = filter_var( $_REQUEST['db_host'], FILTER_SANITIZE_STRING ); + $db_name = filter_var( $_REQUEST['db_name'], FILTER_SANITIZE_STRING ); + $db_user = filter_var( $_REQUEST['db_user'], FILTER_SANITIZE_STRING ); + $db_password = filter_var( $_REQUEST['db_password'], FILTER_SANITIZE_STRING ); + $this->connectPostgresDb( $db_host, $db_name, $db_user, $db_password ); + + // Get list of interest groups + // From old database + $sql = " + SELECT * + FROM contacts.inq_group + ORDER BY id"; + + $results = $this->dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC ); + + foreach ( $results as $row ) { + $this->addGroup( $row['name'] ); + } + + // Get list of discovery groups + $sql = " + SELECT * + FROM contacts.discovery_groups + ORDER BY id"; + + $results = $this->dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC ); + + foreach ( $results as $row ) { + $this->addGroup( $row['name'] ); + } + + // Get all interests + $sql = " + SELECT CI.header AS name,IG.name AS group + FROM contacts.contact_inq CI + LEFT OUTER JOIN contacts.inq_group IG ON (IG.id = CI.groupid) + ORDER BY IG.name; + "; + + $results = $this->dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC ); + echo '
$results: ' . print_r( $results, true ) . '
'; + foreach ( $results as $row ) { + $this->addInterestForGroup( $row['name'], $row['group'] ); + } + // Get all discovery + $sql = " + SELECT CI.name,IG.name AS group + FROM contacts.contact_disc CI + LEFT OUTER JOIN contacts.discovery_groups IG ON (IG.id = CI.groupid) + ORDER BY IG.name; + "; + + $results = $this->dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC ); + echo '
$results: ' . print_r( $results, true ) . '
'; + foreach ( $results as $row ) { + $this->addInterestForGroup( $row['name'], $row['group'] ); + } + + } /** * addInterestGroup * @@ -846,6 +912,43 @@ class GlmMembersAdmin_management_leads // extends GlmDataLeadsManagement } } + public function addInterestForGroup( $name, $group ) + { + // Get group id + $group_id = $this->addGroup( $group ); + if ( !$group_id ) { + return false; + } + + // check for this interest first. + $interest_id = $this->wpdb->get_var( + $this->wpdb->prepare( + "SELECT id + FROM " . GLM_MEMBERS_LEADS_PLUGIN_DB_PREFIX . "interests + WHERE title = %s + AND group_id = %d", + $name, + $group_id + ) + ); + + if ( $interest_id ) { + return $interest_id; + } else { + // It is not in the db so add it. + $this->wpdb->insert( + GLM_MEMBERS_LEADS_PLUGIN_DB_PREFIX . 'interests', + array( + 'title' => $name, + 'group_id' => $group_id + ), + array( '%s', '%d' ) + ); + $interest_id = $this->wpdb->insert_id; + return $interest_id; + } + } + /** * addInterest * diff --git a/views/admin/management/leads.html b/views/admin/management/leads.html index d6faba1..7ff4706 100644 --- a/views/admin/management/leads.html +++ b/views/admin/management/leads.html @@ -5,9 +5,10 @@ @@ -163,6 +164,39 @@
+
+ + + + + {if !$result} + + + + + + + + + + + + + + + + + + + + {else} + + + + {/if} +
Database Host:
Database Name:
Database User:
Database Password:
{$result}
+
+