From: Chuck Scott
Date: Wed, 2 Sep 2015 18:52:06 +0000 (-0400)
Subject: Cleanup image dir directory and storage issues, added E-Mail address to base member...
X-Git-Tag: v1.0.2^2~1
X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=4ef0162d2f4c00f4f778f807b69482138ff70e48;p=WP-Plugins%2Fglm-member-db.git
Cleanup image dir directory and storage issues, added E-Mail address to base member info, and fixed other issue.
---
diff --git a/activate.php b/activate.php
index e02c6dbb..8320e216 100644
--- a/activate.php
+++ b/activate.php
@@ -97,6 +97,9 @@ class glmMembersPluginActivate extends glmPluginSupport
}
+ // Check for plugin uploads directory
+ $this->checkUploadsDir();
+
// Add user capabilties
$this->addRoleCapability('glm_members_edit',
array(
@@ -132,6 +135,29 @@ class glmMembersPluginActivate extends glmPluginSupport
}
}
+ /*
+ * Check if a directory for the plugin exists in the uploads directory
+ *
+ * @return void
+ * @access private
+ */
+ private function checkUploadsDir ()
+ {
+
+ // Check if uploads directory has a subdirectory for this plugin
+ if (!file_exists(GLM_MEMBERS_PLUGIN_MEDIA_PATH)) {
+ mkdir(GLM_MEMBERS_PLUGIN_MEDIA_PATH);
+ }
+
+ // Check if media directory has a subdirectory for images
+ if (!file_exists(GLM_MEMBERS_PLUGIN_IMAGES_PATH)) {
+ mkdir(GLM_MEMBERS_PLUGIN_IMAGES_PATH);
+ }
+
+ return;
+
+ }
+
/*
* Check if database is installed and if it matches the current version
*
diff --git a/classes/data/dataMemberInfo.php b/classes/data/dataMemberInfo.php
index 5ff5ea2d..2c75c6af 100644
--- a/classes/data/dataMemberInfo.php
+++ b/classes/data/dataMemberInfo.php
@@ -282,6 +282,13 @@ class GlmDataMemberInfo extends GlmDataAbstract
'use' => 'a'
),
+ // E-Mail Address
+ 'email' => array(
+ 'field' => 'email',
+ 'type' => 'email',
+ 'use' => 'a'
+ ),
+
// URL
'url' => array(
'field' => 'url',
diff --git a/classes/data/dataMembers.php b/classes/data/dataMembers.php
index 409102ed..5a2efb76 100644
--- a/classes/data/dataMembers.php
+++ b/classes/data/dataMembers.php
@@ -153,6 +153,19 @@ class GlmDataMembers extends GlmDataAbstract {
'use' => 'a'
),
+ // Active Version
+ 'active_id' => array (
+ 'field' => 'id',
+ 'as' => 'active_id',
+ 'type' => 'pointer',
+ 'p_table' => GLM_MEMBERS_PLUGIN_DB_PREFIX . 'member_info',
+ 'p_field' => 'id',
+ 'p_id' => 'member',
+ 'p_where' => 'status = '.$this->config['status_numb']['Active'],
+ 'p_static' => true,
+ 'use' => 'gl'
+ ),
+
/*
* Has pending information
*
diff --git a/defines.php b/defines.php
index 38e1ff91..16e25ff8 100644
--- a/defines.php
+++ b/defines.php
@@ -30,20 +30,23 @@ define('GLM_MEMBERS_PLUGIN_DB_VERSION', 0.1);
$urlParts = parse_url(get_bloginfo('url'));
$pageUri = explode('?', $_SERVER['REQUEST_URI']); // Bust this up to access URL path and script name only
-// URLs
$adminURL = admin_url('admin.php');
+$WPUploadDir = wp_upload_dir();
+
+// URLs
define('GLM_MEMBERS_PLUGIN_ADMIN_URL', $adminURL);
define('GLM_MEMBERS_PLUGIN_URL', plugin_dir_url(__FILE__));
define('GLM_MEMBERS_PLUGIN_BASE_URL', WP_PLUGIN_URL.'/'.GLM_MEMBERS_PLUGIN_DIR);
define('GLM_MEMBERS_PLUGIN_CURRENT_URL', $urlParts['scheme'].'://'.$urlParts['host'].$pageUri[0]);
-define('GLM_MEMBERS_PLUGIN_MEDIA_URL', WP_CONTENT_URL.'/plugins/'.GLM_MEMBERS_PLUGIN_DIR.'/media');
+define('GLM_MEMBERS_PLUGIN_MEDIA_URL', $WPUploadDir['baseurl'].'/'.GLM_MEMBERS_PLUGIN_DIR);
// Directories
define('GLM_MEMBERS_PLUGIN_PATH', dirname(__FILE__));
define('GLM_MEMBERS_PLUGIN_DB_SCRIPTS', dirname(__FILE__).'/misc/databaseScripts');
define('GLM_MEMBERS_PLUGIN_CLASS_PATH', GLM_MEMBERS_PLUGIN_PATH.'/classes');
define('GLM_MEMBERS_PLUGIN_LIB_PATH', GLM_MEMBERS_PLUGIN_PATH.'/lib');
-define('GLM_MEMBERS_PLUGIN_IMAGES_PATH', GLM_MEMBERS_PLUGIN_PATH.'/media/images');
+define('GLM_MEMBERS_PLUGIN_MEDIA_PATH', $WPUploadDir['basedir'].'/'.GLM_MEMBERS_PLUGIN_DIR);
+define('GLM_MEMBERS_PLUGIN_IMAGES_PATH', GLM_MEMBERS_PLUGIN_MEDIA_PATH.'/images');
define('GLM_MEMBERS_PLUGIN_CONFIG_PATH', GLM_MEMBERS_PLUGIN_PATH.'/config');
// Database table prefixes
diff --git a/js/imageUpload/imageUpload.js b/js/imageUpload/imageUpload.js
index ed7a728b..9fdf5f59 100644
--- a/js/imageUpload/imageUpload.js
+++ b/js/imageUpload/imageUpload.js
@@ -312,7 +312,7 @@ jQuery(document).ready(function($) {
// Parse returned data
fileData = JSON.parse(data);
-
+
// Check for success
if (fileData.status) {
@@ -334,7 +334,7 @@ jQuery(document).ready(function($) {
}
} else {
- alert('Upload failed');
+ alert("Upload Failed\nReason: " + fileData.message);
}
},
diff --git a/lib/GlmDataAbstract/DataAbstract.php b/lib/GlmDataAbstract/DataAbstract.php
index 6fb551e0..bb23efe5 100755
--- a/lib/GlmDataAbstract/DataAbstract.php
+++ b/lib/GlmDataAbstract/DataAbstract.php
@@ -159,7 +159,7 @@ abstract class GlmDataAbstract
$in = $_REQUEST[$as];
// Check for required field
- if ($f['required'] && trim($in) == '') {
+ if (isset($f['required']) && $f['required'] && trim($in) == '') {
$this->inputFieldStatus = false;
$this->inputErrorReason = 'Required input not provided.';
return $in;
@@ -363,7 +363,7 @@ abstract class GlmDataAbstract
$in = $_REQUEST[$as];
// Check for required field
- if ($f['required'] && trim($in) == '') {
+ if (isset($f['required']) && $f['required'] && trim($in) == '') {
$this->inputFieldStatus = false;
$this->inputErrorReason = 'Required input not provided.';
return $in;
@@ -460,7 +460,7 @@ abstract class GlmDataAbstract
$in = $_REQUEST[$as];
// Check for required field
- if ($f['required'] && trim($in) == '') {
+ if (isset($f['required']) && $f['required'] && trim($in) == '') {
$this->inputFieldStatus = false;
$this->inputErrorReason = 'Required input not provided.';
return $in;
@@ -556,6 +556,7 @@ abstract class GlmDataAbstract
}
function pointerOutput($f, $d, $forEdit = false, $id = false, $idfield = 'id')
{
+
/*
* This function will only return the value of the pointer field unless one
* of the following situations occurs.
@@ -575,7 +576,7 @@ abstract class GlmDataAbstract
}
// Check for WHERE option
- $where = '';
+ $where = 'WHERE true';
if (isset($f['p_where']) && $f['p_where'] != '') {
$where = 'WHERE '.$f['p_where'];
}
@@ -605,11 +606,14 @@ abstract class GlmDataAbstract
";
$res = $this->wpdb->get_row($sql, ARRAY_A);
+ if (is_admin() && GLM_MEMBERS_PLUGIN_ADMIN_DEBUG_VERBOSE) {
+ glmMembersAdmin::addNotice($sql, 'DataBlock', "pointerOutput() value data query ".$f['field'].(isset($f['as']) ? ' as '.$f['as'] : ''));
+ }
+
return $res['p_sum'];
} else {
-
$sql = "
SELECT ".$p_id." AS p_id,
".$f['p_field']." AS p_value
@@ -619,6 +623,9 @@ abstract class GlmDataAbstract
";
$p_list = $this->wpdb->get_results($sql, ARRAY_A);
+ if (is_admin() && GLM_MEMBERS_PLUGIN_ADMIN_DEBUG_VERBOSE) {
+ glmMembersAdmin::addNotice($sql, 'DataBlock', "pointerOutput() value data query ".$f['field'].(isset($f['as']) ? ' as '.$f['as'] : ''));
+ }
// Build pick select table
$pick_select = false;
@@ -683,10 +690,16 @@ abstract class GlmDataAbstract
$sql = "
SELECT ".$f['p_field']."
FROM ".$f['p_table']."
- WHERE $p_id = $d
+ $where
+ AND $p_id = $d
";
$res = $this->wpdb->get_row($sql, ARRAY_A);
+
+ if (is_admin() && GLM_MEMBERS_PLUGIN_ADMIN_DEBUG_VERBOSE) {
+ glmMembersAdmin::addNotice($sql, 'DataBlock', "pointerOutput() value data query ".$f['field'].(isset($f['as']) ? ' as '.$f['as'] : ''));
+ }
+
return $res[$f['p_field']];
}
@@ -1294,14 +1307,14 @@ abstract class GlmDataAbstract
$filter_options = FILTER_FLAG_NO_ENCODE_QUOTES;
$in = filter_input(INPUT_POST, $as, $filter, $filter_options);
- if ($f['required'] && trim($in) == '') {
+ if (isset($f['required']) && $f['required'] && trim($in) == '') {
$this->inputFieldStatus = false;
$this->inputErrorReason = 'Required input not provided.';
return $in;
}
// Check for required field
- if ($f['required'] && trim($in) == '') {
+ if (isset($f['required']) && $f['required'] && trim($in) == '') {
$this->inputFieldStatus = false;
$this->inputErrorReason = 'Required input not provided.';
return $in;
@@ -1501,14 +1514,14 @@ abstract class GlmDataAbstract
$this->inputFieldStatus = true;
$in = filter_input(INPUT_POST, $as, FILTER_VALIDATE_EMAIL);
- if ($f['required'] && trim($in) == '') {
+ if (isset($f['required']) && $f['required'] && trim($in) == '') {
$this->inputFieldStatus = false;
$this->inputErrorReason = 'E-Mail address does not appear to be valid.';
return $in;
}
// Check for required field
- if ($f['required'] && trim($in) == '') {
+ if (isset($f['required']) && $f['required'] && trim($in) == '') {
$this->inputFieldStatus = false;
$this->inputErrorReason = 'Required input not provided.';
return $in;
@@ -1684,7 +1697,7 @@ abstract class GlmDataAbstract
}
// Check for required input - Can't be 0 (epoch)
- if ($f['required']) {
+ if (isset($f['required']) && $f['required']) {
if ($in == 0) {
$this->inputErrorReason = 'Required date not supplied.';
$this->inputFieldStatus = false;
@@ -2449,7 +2462,7 @@ abstract class GlmDataAbstract
);
// Check for required field - A min of at least deg is required
- if ($f['required'] && $in['deg'] == '') {
+ if (isset($f['required']) && $f['required'] && $in['deg'] == '') {
$this->inputFieldStatus = false;
$this->inputErrorReason = 'Required latitude input not provided.';
return $in;
@@ -2577,7 +2590,7 @@ abstract class GlmDataAbstract
);
// Check for required field - A min of at least deg is required
- if ($f['required'] && $in['deg'] == '') {
+ if (isset($f['required']) && $f['required'] && $in['deg'] == '') {
$this->inputFieldStatus = false;
$this->inputErrorReason = 'Required longitude input not provided.';
return $in;
diff --git a/misc/databaseScripts/create_database_V0.1.sql b/misc/databaseScripts/create_database_V0.1.sql
index 29ffa650..78abc134 100644
--- a/misc/databaseScripts/create_database_V0.1.sql
+++ b/misc/databaseScripts/create_database_V0.1.sql
@@ -399,6 +399,7 @@ CREATE TABLE {prefix}member_info (
phone TINYTEXT NULL,
toll_free TINYTEXT NULL,
url TINYTEXT NULL,
+ email TINYTEXT NULL,
logo TINYTEXT NULL,
cc_type INT NULL,
notes TEXT NULL,
diff --git a/models/admin/ajax/imageUpload.php b/models/admin/ajax/imageUpload.php
index d765e3ed..a5d2d0ef 100644
--- a/models/admin/ajax/imageUpload.php
+++ b/models/admin/ajax/imageUpload.php
@@ -94,7 +94,7 @@ class GlmMembersAdmin_ajax_imageUpload extends GlmDataImages
// Check for valid refType - See glmMembersAdminValidActions in Admin Controller
if (!isset($_REQUEST['glm_refType']) || !isset($this->config['ref_type_table'][$_REQUEST['glm_refType']])) {
- $return['message'] = 'Invalid target table specified in AJAX call to imageUpload!';
+ $return['message'] = 'Invalid target table does not exists!';
echo json_encode($return);
die();
}
@@ -110,7 +110,7 @@ class GlmMembersAdmin_ajax_imageUpload extends GlmDataImages
// Check for valid target record ID
if (!isset($_REQUEST['glm_refDest']) || ($_REQUEST['glm_refDest']-0) <= 0) {
- $return['message'] = 'Invalid target ID specified in AJAX call to imageUpload!';
+ $return['message'] = 'Invalid target ID!';
echo json_encode($return);
die();
}
@@ -119,8 +119,8 @@ class GlmMembersAdmin_ajax_imageUpload extends GlmDataImages
// Make sure the record actually exists
$sql = "SELECT id FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX ."$refTable WHERE id = $refDest;";
$record = $this->wpdb->get_row($sql, ARRAY_A);
- if ($record['id'] != 1) {
- $return['message'] = 'Specified target ID does not exist in AJAX call to imageUpload!';
+ if (count($record['id']) != 1) {
+ $return['message'] = "Specified target record (".$record['id'].") does not exist in table (".$refTable.")!\n\n".$sql;
echo json_encode($return);
die();
}
diff --git a/views/admin/member/memberInfo.html b/views/admin/member/memberInfo.html
index 03fab00f..e7a4aeda 100644
--- a/views/admin/member/memberInfo.html
+++ b/views/admin/member/memberInfo.html
@@ -311,6 +311,13 @@
{if $memberInfo.fieldFail.url}{$memberInfo.fieldFail.url}
{/if}
+
+ E-Mail Address: |
+
+
+ {if $memberInfo.fieldFail.email} {$memberInfo.fieldFail.email} {/if}
+ |
+
Logo: |
diff --git a/views/admin/members/list.html b/views/admin/members/list.html
index 7c64ec14..d2772d31 100644
--- a/views/admin/members/list.html
+++ b/views/admin/members/list.html
@@ -49,7 +49,8 @@
{if $m.pending > 0}Pending{/if}
|
- Manage
+ Active Version
+ Manage
|
{/foreach}
diff --git a/views/front/members/detail.html b/views/front/members/detail.html
index 51a5e00f..edc0e16e 100644
--- a/views/front/members/detail.html
+++ b/views/front/members/detail.html
@@ -70,6 +70,7 @@
{if $member.phone && $detail_show_phone}
Phone: {$member.phone}{/if}
{if $member.toll_free && $detail_show_tollfree}
Toll Free: {$member.toll_free}{/if}
{if $member.url && $detail_show_url}
Web site: {$member.url}{/if}
+ {if $member.email}
E-Mail Address: {$member.email}{/if}
{if $member.region.value && $detail_show_region}
Region: {$member.region.name}{/if}
diff --git a/views/front/members/list.html b/views/front/members/list.html
index b16ab950..7e76e0d7 100644
--- a/views/front/members/list.html
+++ b/views/front/members/list.html
@@ -87,6 +87,7 @@
{if $m.phone && $list_show_phone}
Phone: {$m.phone}{/if}
{if $m.toll_free && $list_show_tollfree}
Toll Free: {$m.toll_free}{/if}
{if $m.url && $list_show_url}
Web site: {$m.url}{/if}
+ {if $m.email}
E-Mail Address: {$m.email}{/if}
{if $m.region.value && $list_show_region}
Region: {$m.region.name}{/if}
@@ -162,6 +163,7 @@
{if $m.phone && $list_map_show_phone}Phone: {$m.phone}
{/if}
{if $m.toll_free && $list_map_show_tollfree}Toll Free: {$m.toll_free}
{/if}
{if $m.url && $list_map_show_url}Web site: {$m.url}
{/if}
+ {if $m.email}E-Mail Address: {$m.email}
{/if}
{if $m.region.value && $list_map_show_region}
Region: {$m.region.name}
{/if}
{if $m.descr && $list_map_show_description}{$m.descr}
{/if}