}
+ // Check for plugin uploads directory
+ $this->checkUploadsDir();
+
// Add user capabilties
$this->addRoleCapability('glm_members_edit',
array(
}
}
+ /*
+ * 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
*
'use' => 'a'
),
+ // E-Mail Address
+ 'email' => array(
+ 'field' => 'email',
+ 'type' => 'email',
+ 'use' => 'a'
+ ),
+
// URL
'url' => array(
'field' => 'url',
'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
*
$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
// Parse returned data
fileData = JSON.parse(data);
-
+
// Check for success
if (fileData.status) {
}
} else {
- alert('Upload failed');
+ alert("Upload Failed\nReason: " + fileData.message);
}
},
$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;
$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;
$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;
}
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.
}
// Check for WHERE option
- $where = '';
+ $where = 'WHERE true';
if (isset($f['p_where']) && $f['p_where'] != '') {
$where = 'WHERE '.$f['p_where'];
}
";
$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
";
$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;
$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']];
}
$filter_options = FILTER_FLAG_NO_ENCODE_QUOTES;\r
\r
$in = filter_input(INPUT_POST, $as, $filter, $filter_options);\r
- if ($f['required'] && trim($in) == '') {\r
+ if (isset($f['required']) && $f['required'] && trim($in) == '') {\r
$this->inputFieldStatus = false;\r
$this->inputErrorReason = 'Required input not provided.';\r
return $in;\r
}\r
\r
// Check for required field\r
- if ($f['required'] && trim($in) == '') {\r
+ if (isset($f['required']) && $f['required'] && trim($in) == '') {\r
$this->inputFieldStatus = false;\r
$this->inputErrorReason = 'Required input not provided.';\r
return $in;\r
$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;
}
// 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;
);
// 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;
);
// 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;
phone TINYTEXT NULL,
toll_free TINYTEXT NULL,
url TINYTEXT NULL,
+ email TINYTEXT NULL,
logo TINYTEXT NULL,
cc_type INT NULL,
notes TEXT NULL,
// 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();
}
// 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();
}
// 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();
}
{if $memberInfo.fieldFail.url}<p>{$memberInfo.fieldFail.url}</p>{/if}
</td>
</tr>
+ <tr>
+ <th {if $memberInfo.fieldRequired.email}class="glm-required"{/if}>E-Mail Address:</th>
+ <td {if $memberInfo.fieldFail.email}class="glm-form-bad-input"{/if}>
+ <input type="text" name="email" value="{$memberInfo.fieldData.email}" class="glm-form-text-input-short" placeholder="ex: name@domain.com">
+ {if $memberInfo.fieldFail.email}<p>{$memberInfo.fieldFail.email}</p>{/if}
+ </td>
+ </tr>
<tr>
<th {if $memberInfo.fieldRequired.logo}class="glm-required"{/if}>Logo:</th>
<td {if $memberInfo.fieldFail.logo}class="glm-form-bad-input"{/if}>
{if $m.pending > 0}<span class="glm-notice">Pending</span>{/if}
</td>
<td>
- <a href="{$thisURL}?page=glm-members-admin-menu-member&glm_action=index&member={$m.id}" class="button-primary glm-right">Manage</a>
+ <a href="{$thisURL}?page=glm-members-admin-menu-member&glm_action=memberInfo&member={$m.id}&id={$m.active_id}" class="button-primary glm-right" style="margin: 0 .2em 0 .2em;">Active Version</a>
+ <a href="{$thisURL}?page=glm-members-admin-menu-member&glm_action=index&member={$m.id}" class="button-primary glm-right" style="margin: 0 .2em 0 .2em;">Manage</a>
</td>
</tr>
{/foreach}
{if $member.phone && $detail_show_phone}<br><b>Phone:</b> {$member.phone}{/if}
{if $member.toll_free && $detail_show_tollfree}<br><b>Toll Free:</b> {$member.toll_free}{/if}
{if $member.url && $detail_show_url}<br><b>Web site:</b> <a href="{$member.url}"{if $detail_show_url_newtarget} target="_blank"{/if}>{$member.url}</a>{/if}
+ {if $member.email}<br><b>E-Mail Address:</b> <a href="mailto:{$m.email}">{$member.email}</a>{/if}
{if $member.region.value && $detail_show_region}<br><b>Region:</b> {$member.region.name}{/if}
</div>
<!-- Member Logo - Medium and up-->
{if $m.phone && $list_show_phone}<br><b>Phone:</b> {$m.phone}{/if}
{if $m.toll_free && $list_show_tollfree}<br><b>Toll Free:</b> {$m.toll_free}{/if}
{if $m.url && $list_show_url}<br><b>Web site:</b> <a href="{$m.url}"{if $list_show_url_newtarget} target="_blank"{/if}>{$m.url}</a>{/if}
+ {if $m.email}<br><b>E-Mail Address:</b> <a href="mailto:{$m.email}">{$m.email}</a>{/if}
{if $m.region.value && $list_show_region}<br><p><b>Region:</b> {$m.region.name}{/if}
</div>
<!-- Member Logo - Medium and up-->
{if $m.phone && $list_map_show_phone}<b>Phone:</b> {$m.phone}<br>{/if}
{if $m.toll_free && $list_map_show_tollfree}<b>Toll Free:</b> {$m.toll_free}<br>{/if}
{if $m.url && $list_map_show_url}<b>Web site:</b> <a href="{$m.url}"{if $list_map_show_url_newtarget} target="_blank"{/if}>{$m.url}</a><br>{/if}
+ {if $m.email}<b>E-Mail Address:</b> <a href="mailto:{$m.email}">{$m.email}</a><br>{/if}
{if $m.region.value && $list_map_show_region}<p><b>Region:</b> {$m.region.name}</p>{/if}
</p>
{if $m.descr && $list_map_show_description}{$m.descr}<br>{/if}