$result .= $this->importLeads();
break;
+ case 'setupInterests':
+ $result .= $this->importInterests();
+ break;
+
case 'import':
$total_imported_leads = 0;
$result = '';
Updated Leads: ' . $updated_leads . '</pre>';
}
+ 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 '<pre>$results: ' . print_r( $results, true ) . '</pre>';
+ 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 '<pre>$results: ' . print_r( $results, true ) . '</pre>';
+ foreach ( $results as $row ) {
+ $this->addInterestForGroup( $row['name'], $row['group'] );
+ }
+
+ }
/**
* addInterestGroup
*
}
}
+ 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
*
<h2 class="nav-tab-wrapper" style="margin-bottom: 1em;">
<a id="glm-leads-sources" data-show-table="glm-table-sources" class="glm-settings-tab nav-tab {if $option2 == ''} nav-tab-active{/if}">Settings / Source List</a>
<a id="glm-leads-import" data-show-table="glm-table-import" class="glm-settings-tab nav-tab">Gravity Forms</a>
+ <a id="glm-leads-importleads" data-show-table="glm-table-setupInterests" class="glm-settings-tab nav-tab{if $result && $option2 == 'setupInterests'} nav-tab-active{/if}">Setup Interests</a>
<a id="glm-leads-importleads" data-show-table="glm-table-importleads" class="glm-settings-tab nav-tab{if $result && $option2 == 'importleads'} nav-tab-active{/if}">Import Leads</a>
- <a id="glm-leads-importmemberleads" data-show-table="glm-table-importmemberleads" class="glm-settings-tab nav-tab{if $result && $option2 == 'importmemberleads'} nav-tab-active{/if}">Import Member Leads</a>
- <a id="glm-leads-redozip" data-show-table="glm-table-redozip" class="glm-settings-tab nav-tab{if $option2 == 'redozip'} nav-tab-active{/if}">Redo Zip</a>
+ {* <a id="glm-leads-importmemberleads" data-show-table="glm-table-importmemberleads" class="glm-settings-tab nav-tab{if $result && $option2 == 'importmemberleads'} nav-tab-active{/if}">Import Member Leads</a> *}
+ {* <a id="glm-leads-redozip" data-show-table="glm-table-redozip" class="glm-settings-tab nav-tab{if $option2 == 'redozip'} nav-tab-active{/if}">Redo Zip</a> *}
</h2>
<table id="glm-table-sources" class="glm-admin-table glm-settings-table{if $option2 != ''} glm-hidden{/if}">
</table>
</form>
+<form action="{$thisUrl}?page={$thisPage}&glm_action=leads&option=import&option2=setupInterests" method="post">
+ <input type="hidden" name="glm_action" value="leads" />
+ <input type="hidden" name="option" value="import" />
+ <input type="hidden" name="option2" value="setupInterests" />
+ <table id="glm-table-setupInterests" class="glm-admin-table glm-settings-table{if $option2 != 'setupInterests'} glm-hidden{/if}">
+ {if !$result}
+ <tr>
+ <th>Database Host:</th>
+ <td><input type="text" name="db_host" /></td>
+ </tr>
+ <tr>
+ <th>Database Name:</th>
+ <td><input type="text" name="db_name" /></td>
+ </tr>
+ <tr>
+ <th>Database User:</th>
+ <td><input type="text" name="db_user" /></td>
+ </tr>
+ <tr>
+ <th>Database Password:</th>
+ <td><input type="text" name="db_password" /></td>
+ </tr>
+ <tr>
+ <td colspan="2"><input type="submit" value="Setup Interests" /></td>
+ </tr>
+ {else}
+ <tr>
+ <td>{$result}</td>
+ </tr>
+ {/if}
+ </table>
+</form>
+
<form action="{$thisUrl}?page={$thisPage}&glm_action=leads&option=import&option2=importleads" method="post">
<input type="hidden" name="glm_action" value="leads" />
<input type="hidden" name="option" value="import" />