--- /dev/null
+<?php
+
+/**
+ * Gaslight Media Members Database
+ * Members List JSON Export by AJAX
+ *
+ * PHP version 5.5
+ *
+ * @category glmWordPressPlugin
+ * @package glmMembersDatabase
+ * @author Chuck Scott <cscott@gaslightmedia.com>
+ * @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 );
+ }
+
+}