class GlmMembersAdmin_import_index
{
+ const CSV_CHARS_PER_LINE = 6000;
/**
* WordPress Database Object
*
*/
public $totalMembers = 0;
+ /**
+ * processingComplete
+ *
+ * @var bool
+ * @access public
+ */
+ public $processingComplete = false;
+
/**
* Constructor
*
$failure = false;
$option = '';
$clearData = false;
+ if ( isset( $_REQUEST['numberProcessed'] ) ) {
+ $this->numberProcessed = filter_var( $_REQUEST['numberProcessed'], FILTER_VALIDATE_INT );
+ }
$fileData = array(
'Amenity' => array(
'field' => 'amenity_file',
'name' => 'memberData.csv',
'exists' => false,
'validate' => array(
- 'id', 'member_name', 'status', 'descr', 'short_descr',
+ 'id', 'member_name', 'status', 'descr',
'addr1', 'addr2', 'city', 'state', 'country', 'zip',
'mailing_addr1', 'mailing_addr2', 'mailing_city', 'mailing_state', 'mailing_zip',
'region', 'county', 'lat', 'lon', 'phone', 'toll_free',
}
}
// Here we need to check to see if we processed all members.
- // If not we need to use the process.html view.
// Also the counter has to increment the total processed so far.
+ if ( $this->numberProcessed == $this->totalMembers ) {
+ $this->processingComplete = true;
+ }
$view = 'processMembers.html';
break;
$templateData = array(
'errors' => $this->errors,
'numberProcessed' => $this->numberProcessed,
+ 'totalMembers' => $this->totalMembers,
+ 'completed' => $this->processingComplete,
'data' => false,
'fileData' => $fileData,
'clearData' => $clearData,
$fileHeaders = array();
if ( ( $fp = fopen( $fileName, 'r' ) ) !== false ) {
// get first line to use as headers
- $fileHeaders = fgetcsv( $fp, 1000, ',' );
+ $fileHeaders = fgetcsv( $fp, SELF::CSV_CHARS_PER_LINE, ',' );
fclose( $fp );
}
if ( ( $fp = fopen( $fileName, 'r' ) ) !== false ) {
// get first line to use as headers
$rowNumber = 0;
- while ( ( $data = fgetcsv( $fp, 1000, ',' ) ) !== false ) {
+ while ( ( $data = fgetcsv( $fp, SELF::CSV_CHARS_PER_LINE, ',' ) ) !== false ) {
if ( $rowNumber == 0 ) {
$fileHeaders = $data;
} else {
return ( $errorCount == 0 );
break;
case 'member':
+ // Setup the image processing
+ require_once GLM_MEMBERS_PLUGIN_PATH.'/models/admin/ajax/imageUpload.php';
+ $ImageUpload = new GlmMembersAdmin_ajax_imageUpload($this->wpdb, $this->config);
+
$start = 1;
if ( isset( $_REQUEST['start'] ) ) {
$start = filter_var( $_REQUEST['start'], FILTER_VALIDATE_INT );
$this->members[$data['id']]['new_id'] = $this->wpdb->insert_id;
// Logo needs to be a complete url.
+ if ( isset( $data['logo'] ) ) {
+ $logo = filter_var( $data['logo'], FILTER_VALIDATE_URL );
+ if ( $logo ) {
+ $res = $ImageUpload->storeImage( $logo );
+ if ($res['newFileName']) {
+ $data['logo'] = $res['newFileName'];
+ }
+ }
+ }
+ // 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'] ) ) )
+ );
+ $short_descr = implode(' ', array_slice(explode(' ', $stripped), 0, 30));
+
+ if (strlen($short_descr) < strlen($stripped)) {
+ $short_descr .= ' ...';
+ }
// Add the member info record
$insert = $this->wpdb->insert(
'status' => $this->config['status_numb']['Active'],
'reference_name' => 'Imported Member Information',
'descr' => $data['descr'],
- 'short_descr' => $data['short_descr'],
+ 'short_descr' => $short_descr,
'addr1' => $data['addr1'],
'addr2' => $data['addr2'],
'city' => ((isset($data['city']) && isset($this->cities[$data['city']]['new_id'])) ? $this->cities[$data['city']]['new_id']: 0),
'%s', // state
'%d', // country
'%d', // region
- '%s', // county
+ '%d', // county
'%s', // zip
'%s', // mailing_addr1
'%s', // mailing_addr2