* @access public
*/
public $members = array();
+
+ public $membertypes = array();
/**
* errors
*
'field' => 'city_file',
'name' => 'cityData.csv',
'exists' => false,
- 'validate' => array( 'id', 'name' ),
+ 'validate' => array( 'id', 'name', 'lat', 'lon' ),
'type' => 'city',
),
'Region' => array(
'validate' => array( 'id', 'name' ),
'type' => 'county',
),
+ 'MemberType' => array(
+ 'field' => 'membertype_file',
+ 'name' => 'membertypeData.csv',
+ 'exists' => false,
+ 'validate' => array( 'id', 'name' ),
+ 'type' => 'membertype',
+ ),
'Member' => array(
'field' => 'member_file',
'name' => 'memberData.csv',
'exists' => false,
'validate' => array(
- 'id', 'old_member_id', 'member_name', 'status', 'short_descr', 'descr',
+ 'id', 'old_member_id', 'member_name', 'member_type', 'status', 'short_descr', 'descr',
'addr1', 'addr2', 'city', 'state', 'country', 'zip',
'mailing_addr1', 'mailing_addr2', 'mailing_city', 'mailing_state', 'mailing_zip',
'region', 'county', 'lat', 'lon', 'phone', 'toll_free',
$this->wpdb->query('DELETE FROM ' . GLM_MEMBERS_PLUGIN_DB_PREFIX . 'images');
$this->wpdb->query('DELETE FROM ' . GLM_MEMBERS_PLUGIN_DB_PREFIX . 'member_detail_stats');
$this->wpdb->query('DELETE FROM ' . GLM_MEMBERS_PLUGIN_DB_PREFIX . 'member_info');
+ $this->wpdb->query('DELETE FROM ' . GLM_MEMBERS_PLUGIN_DB_PREFIX . 'member_type');
$this->wpdb->query('DELETE FROM ' . GLM_MEMBERS_PLUGIN_DB_PREFIX . 'members');
}
case 'county':
update_option( $this->wpOptionPrefix . $file['type'], $this->counties );
break;
+ case 'membertype':
+ update_option( $this->wpOptionPrefix . $file['type'], $this->membertypes );
+ break;
}
}
}
case 'county':
$this->counties = get_option( $this->wpOptionPrefix . $file['type'], array() );
break;
+ case 'membertype':
+ $this->membertypes = get_option( $this->wpOptionPrefix . $file['type'], array() );
+ break;
}
} else if ( is_file( $uploadPath . '/' . $file['name'] ) && $fileHeader == 'Member' ) {
$fileData[$fileHeader]['results'] = $this->processFile( $uploadPath . '/' . $file['name'], $file['type'] );
$success = $this->wpdb->insert(
GLM_MEMBERS_PLUGIN_DB_PREFIX . 'cities',
array(
- 'name' => $data['name']
+ 'name' => $data['name'],
+ 'lat' => $data['lat'],
+ 'lon' => $data['lon']
),
- '%s'
+ array(
+ '%s',
+ '%s',
+ '%s'
+ )
);
if ( $success ) {
$this->cities[$data['id']]['new_id'] = $this->wpdb->insert_id;
$ret .= '<p>...</p>';
return ( $errorCount == 0 );
break;
+ case 'membertype':
+ $membertypeData = $this->readCSVFile( $fileName );
+ $ret .= '<p>Processing Member Types File</p>';
+ foreach ( $membertypeData as $data ) {
+ // import membertype names if not found
+ $membertypeId = $this->wpdb->get_var(
+ $this->wpdb->prepare(
+ "SELECT id
+ FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_type
+ WHERE name = %s",
+ $data['name']
+
+ )
+ );
+ if ( $membertypeId ) {
+ $this->membertypes[$data['name']] = $membertypeId;
+ } else {
+ $success = $this->wpdb->insert(
+ GLM_MEMBERS_PLUGIN_DB_PREFIX . 'member_type',
+ array(
+ 'name' => $data['name']
+ ),
+ '%s'
+ );
+ if ( $success ) {
+ $this->membertypes[$data['name']] = $this->wpdb->insert_id;
+ } else {
+ $errorCount++;
+ $this->errors[] = '<p>There was an error adding membertype</p>';
+ }
+ }
+ }
+ $ret .= '<p>...</p>';
+ return ( $errorCount == 0 );
+ break;
case 'county':
$countyData = $this->readCSVFile( $fileName );
$ret .= '<p>Processing County File</p>';
}
$memberData = $this->readCSVFile( $fileName );
$ret .= '<p>Processing Member File</p>';
- // Get default member type
- $memberTypeId = $this->wpdb->get_var(
- $this->wpdb->prepare(
- "SELECT id
- FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_type
- WHERE name = %s",
- 'Default'
- )
- );
- if ( !$memberTypeId ) {
- $this->wpdb->insert(
- GLM_MEMBERS_PLUGIN_DB_PREFIX . 'member_type',
- array(
- 'name' => 'Default',
- 'descr' => ''
- ),
- '%s'
- );
- $memberTypeId = $this->mpdb->insert_id;
- }
$dupeNames = 0;
$this->totalMembers = count( $memberData );
$testEnd = $start + $this->memberProcessCountPerRound;
$ending = ( $testEnd <= $this->totalMembers ) ? $testEnd : $this->totalMembers;
+ $this->wpdb->show_errors();
+
// We have to add one to $ending (array starts at 1 not 0).
$ending++;
for ( $index = $start; $index < $ending; $index++ ) {
GLM_MEMBERS_PLUGIN_DB_PREFIX . 'members',
array(
'access' => $access,
- 'member_type' => $memberTypeId,
+ 'member_type' => ((isset($data['member_type']) && isset($this->membertypes[$data['member_type']])) ? $this->membertypes[$data['member_type']]: 0),
'created' => date( 'Y-m-d' ),
'name' => $data['member_name'],
'member_slug' => sanitize_title( $data['member_name'] ),
}
}
- // create truncated short_descr from descriptions - less tags, html encoded characters, newlines, tabs, etc.
- $stripped = str_replace(
- PHP_EOL,
- '',
- preg_replace( '/\t+/', '', preg_replace( "/&#?[a-z0-9]{2,8};/i", "", strip_tags( $data['descr'] ) ) )
- );
-
- if ( isset( $this->config['settings']['short_desc_char_limit'] ) ) {
- $short_desc_char_limit = $this->config['settings']['short_desc_char_limit'];
- } else {
- $short_desc_char_limit = 120;
- }
- $ellipsis = ' ...';
-
- $short_descr = substr(implode(' ', array_slice(explode(' ', $stripped), 0, 30)), 0, $short_desc_char_limit - strlen($ellipsis));
-
- if (strlen($short_descr) < strlen($stripped)) {
- $short_descr .= $ellipsis;
- }
-
// Setup the Member Profile Status
// Initial status if not being set
$profileStatus = $this->config['status_numb']['Active'];
'status' => $profileStatus,
'reference_name' => 'Imported Member Information',
'descr' => $data['descr'],
- //'short_descr' => $short_descr,
'short_descr' => $data['short_descr'],
'addr1' => $data['addr1'],
'addr2' => $data['addr2'],
);
if ( !$insert ) {
echo '<pre>$data: ' . print_r( $data, true ) . '</pre>';
+ echo '<pre>Errors: '.$this->wpdb->print_error().'</pre>';
die( 'Error importing member data' );
}
// get last id for member_info table to use for profile id