--- /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_verifyLatLon // 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 ) {
+
+ $oldLat = array();
+ $oldLon = array();
+ $newLat = array();
+ $newLon = array();
+ // Counters
+ $totalMembers = 0;
+ $totalGood = 0;
+ $totalBad = 0;
+
+ $dbh = new PDO(
+ 'pgsql: host=ds5 dbname=uptravel user=nobody',
+ null,
+ null,
+ array(
+ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
+ )
+ );
+ $dbh->setAttribute(
+ PDO::ATTR_ERRMODE,
+ PDO::ERRMODE_EXCEPTION
+ );
+
+ $pSql = "
+ SELECT member_id,member_name,lat,lon
+ FROM members.member
+ ORDER BY member_id";
+
+ $oldMembers = $dbh->query($pSql)->fetchAll();
+
+ if ( isset( $oldMembers ) && is_array( $oldMembers ) ) {
+ foreach ( $oldMembers as $oldMember ) {
+ $oldLat[$oldMember['member_id']] = round( $oldMember['lat'], 4, PHP_ROUND_HALF_UP );
+ $oldLon[$oldMember['member_id']] = round( $oldMember['lon'], 4, PHP_ROUND_HALF_UP );
+ }
+ }
+
+
+ // echo '<pre>$oldMembers: ' . print_r( $oldMembers, true ) . '</pre>';
+ // exit;
+
+ $sql = "
+ SELECT MI.id,MI.member,MI.member_name,MI.lat,MI.lon,M.old_member_id
+ FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX. "member_info MI
+ LEFT OUTER JOIN " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "members M
+ ON ( MI.member = M.id )
+ WHERE status = ".$this->config['status_numb']['Active']."
+ AND (
+ SELECT access
+ FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."members
+ WHERE id = MI.member
+ ) IN (
+ ".$this->config['access_numb']['NoAccess'].",
+ ".$this->config['access_numb']['Moderated'].",
+ ".$this->config['access_numb']['Full']."
+ )
+ AND M.old_member_id IS NOT NULL
+ ORDER BY M.old_member_id
+ ";
+
+ $members = $this->wpdb->get_results( $sql, ARRAY_A );
+
+ // echo '<pre>$members: ' . print_r( $members, true ) . '</pre>';
+ // echo '<p>Number of members: ' . count( $members ) . '</p>';
+
+ if ( isset( $members ) && is_array( $members ) ) {
+ foreach ( $members as $member ) {
+ $newLat[] = $member['lat'];
+ $newLon[] = $member['lon'];
+
+ if ( !$oldLon[$member['old_member_id']] ) {
+ continue;
+ }
+
+ // echo '<p>Member: ' . $member['old_member_id'] . '</p>';
+
+ // Compare lats
+ if ( $oldLat[$member['old_member_id']] == $member['lat'] ) {
+ // echo '<p>Lat matches</p>';
+ $totalGood++;
+ } else {
+ // check if off by one
+ $l = (float)$member['lat'];
+ $ol = (float)$oldLat[$member['old_member_id']];
+ if ( (float)$ol > (float)$l ) {
+ $diff = ( (float)$ol - (float)$l );
+ } else {
+ $diff = ( (float)$l - (float)$ol );
+ }
+ if ( $diff <= (float).00011 ) {
+ $totalGood++;
+ } else {
+ $totalBad++;
+ echo '<p>Member: ' . $member['old_member_id'] . '</p>';
+ echo '<pre>$l: ' . print_r( $l, true ) . '</pre>';
+ echo '<pre>$ol: ' . print_r( $ol, true ) . '</pre>';
+ echo '<pre>$diff: ' . print_r( $diff, true ) . '</pre>';
+ }
+ }
+ }
+ }
+
+ echo '<pre>$totalMembers: ' . print_r( $totalMembers, true ) . '</pre>';
+ echo '<pre>$totalGood: ' . print_r( $totalGood, true ) . '</pre>';
+ echo '<pre>$totalBad: ' . print_r( $totalBad, true ) . '</pre>';
+
+ // echo '<pre>$oldLat: ' . print_r( $oldLat, true ) . '</pre>';
+ // echo '<pre>$oldLon: ' . print_r( $oldLon, true ) . '</pre>';
+ // echo '<pre>$newLat: ' . print_r( $newLat, true ) . '</pre>';
+ // echo '<pre>$newLon: ' . print_r( $newLon, true ) . '</pre>';
+
+ // header( 'Content-Type: application/json' );
+ // echo json_encode( $members );
+ }
+
+}