From: Steve Sutton Date: Wed, 27 Feb 2019 19:24:50 +0000 (-0500) Subject: Create json export for members. X-Git-Tag: v2.12.0^2~22 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=9a9510a4047a1f9c65ff26623eedb74a8cd2e4e5;p=WP-Plugins%2Fglm-member-db.git Create json export for members. Needed for uptravel --- diff --git a/models/admin/ajax/membersListJson.php b/models/admin/ajax/membersListJson.php new file mode 100644 index 00000000..291d123e --- /dev/null +++ b/models/admin/ajax/membersListJson.php @@ -0,0 +1,132 @@ + + * @license http://www.gaslightmedia.com Gaslightmedia + * @version 0.1 + */ + + +// Load Members data abstract +require_once GLM_MEMBERS_PLUGIN_CLASS_PATH . '/data/dataMemberInfo.php'; +/** + * + * This class exports the currently selected members list + * to a printable HTML file, to a CSV file, or otherwise. + */ +class GlmMembersAdmin_ajax_membersListJson extends GlmDataMemberInfo +{ + + /** + * WordPress Database Object + * + * @var $wpdb + * @access public + */ + public $wpdb; + /** + * Plugin Configuration Data + * + * @var $config + * @access public + */ + public $config; + + /** + * Constructor + * + * This constructor sets up this model. At this time that only includes + * storing away the WordPress data object. + * + * @return object Class object + * + */ + public function __construct ( $wpdb, $config ) + { + + // Save WordPress Database object + $this->wpdb = $wpdb; + + // Save plugin configuration object + $this->config = $config; + + parent::__construct( $wpdb, $config ); + + } + + public function modelAction( $actionData = false ) { + + // Create json export of active members. + $members = array(); + + $whereParts = array( 'true' ); + + $whereParts[] = " ( + SELECT access + FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."members + WHERE id = T.member + ) IN ( + " . $this->config['access_numb']['NoAccess'] . ", + " . $this->config['access_numb']['Moderated'] . ", + " . $this->config['access_numb']['Full'] . " + ) + AND T.status = " . $this->config['status_numb']['Active']; + + $where = implode( ' AND ', $whereParts ); + + $memberList = $this->getList( $where ); + // $members = $this->getList( $where ); + + $memberIndex = 0; + foreach ( $memberList as $key => $member ) { + + $members[$memberIndex] = array( + 'Unique ID' => $member['member_pointer'], + 'Business Name' => $member['member_name'], + 'Member Type' => null, + 'Street' => $member['addr1'], + 'City' => $member['city'], + 'State' => $member['state']['name'], + 'Zip' => $member['zip'], + 'Last Update' => ( isset( $member['modify_time']['timestamp'] ) ) ? date( 'm/d/Y', $member['modify_time']['timestamp'] ) : '', + 'Description' => $member['descr'], + 'Phone' => $member['phone'], + 'Email' => $member['email'], + 'Website' => $member['url'], + 'Image Url' => null, + 'Latitude' => $member['lat'], + 'Longitude' => $member['lon'], + 'Fax' => null, + ); + + // Get social urls + $socialUrls = apply_filters( 'glm-member-db-social-data', '', $member['member_pointer'] ); + if ( $socialUrls ) { + foreach ( $socialUrls as $social ) { + $members[$memberIndex][$social['social_name']] = $social['url']; + } + } + + // Setup categories + if ( isset( $member['categories'] ) && is_array( $member['categories'] ) && !empty( $member['categories'] ) ) { + foreach ( $member['categories'] as $category ) { + $members[$memberIndex]['categories'][] = $category['name']; + } + } + + $memberIndex++; + } + + + header( 'Content-Type: application/json' ); + echo json_encode( $members ); + } + +} diff --git a/setup/validActions.php b/setup/validActions.php index fd9980c5..fea58a8e 100644 --- a/setup/validActions.php +++ b/setup/validActions.php @@ -49,6 +49,7 @@ $glmMembersValidActions = array( 'citiesMapData' => 'glm-member-db', 'countiesMapData' => 'glm-member-db', 'membersList' => 'glm-member-db', + 'membersListJson' => 'glm-member-db', ), 'dashboard' => array( 'index' => 'glm-member-db',