'p_table' => GLM_MEMBERS_PLUGIN_DB_PREFIX . 'cities',
'p_field' => 'name',
'p_orderby' => 'name',
- 'p_blank' => true,
'use' => 'a'
),
case 'delete':
if ($id > 0) {
$this->deleteEntry($id, true);
+
+ // Also delete from member info
+ $this->wpdb->delete(
+ GLM_MEMBERS_PLUGIN_DB_PREFIX . 'category_member_info',
+ array(
+ 'category' => $id
+ )
+ );
}
break;
$success = true;
$haveMemberTypes = false;
$memberTypes = false;
+ $couldNotDelete = false;
$error = false;
// Check for member type id
case 'delete':
if ($id > 0) {
- $this->deleteEntry($id, true);
+ // First check if any members are using this type
+ $inUse = $this->wpdb->get_var("
+ SELECT COUNT(id)
+ FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."members
+ WHERE member_type = $id;
+ ");
+
+ // If there's no members with this type
+ if (($inUse-0) == 0) {
+ $this->deleteEntry($id, true);
+ } else {
+ $couldNotDelete = true;
+ }
}
break;
// Compile template data
$templateData = array(
'haveMemberTypes' => $haveMemberTypes,
- 'memberTypes' => $memberTypes
+ 'memberTypes' => $memberTypes,
+ 'couldNotDelete' => $couldNotDelete
);
// Return status, suggested view, and data to controller
}
}
+ // Fix bad LAT/LON values. Anything that's not a number should be set to 0 (ZERO)
+ $latVal = ($val['lat']-0);
+ $lonVal = ($val['lon']-0);
+
// Insert Member Information Record
$res = $this->wpdb->insert(
GLM_MEMBERS_PLUGIN_DB_PREFIX.'member_info',
'state' => $state[$val['state_id']]['state_abb'],
'country' => 'US',
'zip' => $val['zip'],
- 'lat' => $val['lat'],
- 'lon' => $val['lon'],
+ 'lat' => $latVal,
+ 'lon' => $lonVal,
'region' => (isset($region[$val['region']]) ? $region[$val['region']]['new_id'] : 0),
'phone' => $val['phone'],
'toll_free' => $val['toll_free'],
-- Set default entry
INSERT INTO {prefix}settings_general
- ( id, time_zone, canonical_member_page )
+ ( id, time_zone, canonical_member_page, list_logo_size, list_map_logo_size, detail_logo_size, detail_map_logo_size )
VALUES
- ( 1, 'America/Detroit', 'member-detail' )
+ ( 1, 'America/Detroit', 'member-detail', 'large', 'thumb', 'large', 'thumb' )
;
----
<th>Parent Category:</th>
<td>
<select name="parent">
- <option value=""></option>
+ <option value="0">(none)</option>
{if $haveCategories}
{foreach $categories as $t}
{if !$t.parent.value} <!-- don't show child categories -->
<th>Parent Category:</th>
<td>
<select id="editCategoryParent" name="parent">
- <option value=""></option>
+ <option value="0">(none)</option>
{if $haveCategories}
{foreach $categories as $t}
{if !$t.parent.value} <!-- don't show child categories -->
{/if}
<td>{$t.id}</td>
<td>
- <span{if $t.parent.value} class="glm-indent"{/if}>
+ <div{if $t.parent.value} class="glm-indent"{/if}>
<a class="editCategory" data-categoryID="{$t.id}" data-categoryParent="{$t.parent.value}">{$t.name}</a>
- </span>
+ </div>
</td>
<td id="editCategoryDescr_{$t.id}">
{$t.descr}
$("#newCategoryDialog").dialog({
autoOpen: false,
minWidth: 400,
+ width: 'auto',
dialogClass: "glm-dialog-no-close"
});
$("#editCategoryDialog").dialog({
autoOpen: false,
minWidth: 400,
+ width: 'auto',
dialogClass: "glm-dialog-no-close"
});
$("#deleteCategoryDialog").dialog({
autoOpen: false,
minWidth: 400,
+ width: 'auto',
dialogClass: "glm-dialog-no-close"
});
<h2>Member Types</h2>
+{if $couldNotDelete}
+ <h3 class="glm-error">
+ Member Type could not be deleted. Type is in use by at least one member.
+ <a href="{$thisURL}?page=glm-members-admin-menu-members&glm_action=list">Click here to see the members list.</a>
+ </h3>
+
+{/if}
<table class="wp-list-table widefat fixed posts glm-admin-table">
<thead>
<tr>
<!-- City Selection -->
<input id="cityName" type="hidden" name="newCityName" value=""><!-- this field is only used if adding a new city to pass the new name -->
<select name="city" id="city" class="glm-geocodeAction">
- <option value="0"><option>
+ <option value="0"></option>
{foreach from=$memberInfo.fieldData.city.list item=v}
<option value="{$v.value}"{if $v.default} selected="selected"{/if}>
{$v.name}
*/
var myLocation = false;
+ {if $member.lat != 0 && $member.lon != 0}
var memberlocation = new google.maps.LatLng({$member.lat}, {$member.lon});
+ {else}
+ var memberlocation = new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon});
+ {/if}
function initMap() {
});
// Create a marker for this member
+ {if $member.lat != 0 && $member.lon != 0}
var marker = new google.maps.Marker({
map: map,
position: new google.maps.LatLng({$member.lat}, {$member.lon}),
animation: google.maps.Animation.DROP,
title: '{$member.member|escape}'
});
-
+ {/if}
// Try HTML5 to get user geolocation
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
{if $haveMembers}
{foreach $members as $m}
-
+ {if $m.lat != 0 && $m.lon != 0}
+
// Create a marker for this member
var marker = new google.maps.Marker({
map: map,
// Extend the map bounds to include this marker
bounds.extend(marker.position);
-
+
+ {/if}
{/foreach}
// Fit map to bounds of all markers