Create json export for members.
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 27 Feb 2019 19:24:50 +0000 (14:24 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 27 Feb 2019 19:24:50 +0000 (14:24 -0500)
Needed for uptravel

models/admin/ajax/membersListJson.php [new file with mode: 0644]
setup/validActions.php

diff --git a/models/admin/ajax/membersListJson.php b/models/admin/ajax/membersListJson.php
new file mode 100644 (file)
index 0000000..291d123
--- /dev/null
@@ -0,0 +1,132 @@
+<?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 );
+    }
+
+}
index fd9980c..fea58a8 100644 (file)
@@ -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',