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}