wp_enqueue_script('jquery-ui-dialog');
wp_enqueue_script('jquery-ui-autocomplete');
- // jQuery UI Style
- wp_enqueue_style('wp-jquery-ui-dialog');
-
// Jquery DatePicker
wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_style('jquery-style', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css');
)
);
- add_shortcode('glm-members-list',
- array(
- $this,
- 'controller'
- )
- );
+ // Now add any shortcodes from the config 'shortcodes' table
+ while (list($key, $val) = each($this->config['shortcodes'])) {
- add_shortcode('glm-member-detail',
- array(
- $this,
- 'controller'
- )
- );
+ add_shortcode($key,
+ array(
+ $this,
+ 'controller'
+ )
+ );
+
+ }
}
* there is an additional action related to that menu item that needs to be
* executed rather than the default menu action.
*
+ * NOTE: For the front-end, all actions are triggered by short-codes and
+ * possibly filters. In this context, the term "menu" simply refers to
+ * a category of short-code actions. This indicates where the action to
+ * perform this shortcode can be found in the 'model', and 'view' directories.
+ *
* All models should return an array containing the following.
*
* 'status'
public function controller ($atts, $content = null, $shortcode)
{
- // Set shortcode attribute defaults
- switch ($shortcode) {
-
- case 'glm-members-list':
- $action = 'list';
- $request = shortcode_atts(
- array(
- 'map' => true,
- 'category' => false,
- 'category-name' => false,
- 'alpha' => false,
- 'search' => false,
- 'amenities' => false,
- 'detail-page' => false,
- 'show' => false
- ),
- $atts,
- 'glm-members'
- );
- break;
-
- case 'glm-member-detail':
- $action = 'detail';
- $request = shortcode_atts(
- array(
- 'map' => true,
- 'id' => false,
- 'show' => false
- ),
- $atts,
- 'glm-members'
- );
- break;
-
- }
-
/*
* Because WordPress insists on forcing the timezone to UTC
* we need to save the current timezone setting, set the one
$this->addNotice("<pre>".print_r($consts,1)."</pre>", 'DataBlock', "Defined Parameters");
$this->addNotice("<pre>".print_r($_REQUEST,1)."</pre>", 'DataBlock', "Request Data");
+
} else {
$this->clearNotices();
}
/*
- * Determine model to execute
+ * Determine model to execute from the supplied shortcode
*/
- // Default action is "index"
- $menuItem = 'members';
+ // Check if the specified shortcode is valid one supplied by this plugin or an add-on
+ $shortcodeData = false;
+ $viewPath = false;
+ if (isset($this->config['shortcodes'][$shortcode])) {
- // Get any requested "action" from a form submission - Overrides shortcode attributes
- if (isset($_REQUEST['glm_action']) && $_REQUEST['glm_action'] != '') {
- $a = sanitize_text_field($_REQUEST['glm_action']);
- if ($a != '') {
- $action = $a;
- }
- }
+ // Get information on the selected shortcode and set the view path
+ $shortcodeData = $this->config['shortcodes'][$shortcode];
+ $viewPath = GLM_MEMBERS_WORDPRESS_PLUGIN_PATH.$shortcodeData['plugin'].'/views';
- // Loop till we have a final action
- $loopCheck = 0;
- $actionData = array(
- 'request' => $request
- );
+ // If a database table is specified then get defaults from there - otherwise they're already in the attributes array
+ if (isset($shortcodeData['table']) && $shortcodeData['table'] != false) {
- do {
+ // Get the default attribute values
+ $defaults = $this->wpdb->get_row("SELECT * FROM ".$shortcodeData['table']." WHERE id = 1;", ARRAY_A);
+ if ($defaults) {
- if (GLM_MEMBERS_PLUGIN_FRONT_DEBUG) {
- glmMembersFront::addNotice("<b>Requested Action:</b> Menu item = $menuItem, Action = $action", 'Process');
- }
+ while (list($key, $val) = each($shortcodeData['attributes'])) {
+ if (isset($defaults[$key]) && $val != false) {
+ $shortcodeData['attributes'][$key] = $defaults[$val];
+ }
+ }
- $modelRedirect = false;
+ } else {
+ $errorMsg .= '<b>Missing shortcode default values table entry in table '.$shortcodeData['table'].'</b><br>';
+ }
+ }
- // Verify that we have the requested menu item in the valid actions
+ // Set the menu and action for the requested shortcode
+ $menuItem = $shortcodeData['menu'];
+ $action = $shortcodeData['action'];
- if (! isset($this->config['validActions']['frontActions'][$menuItem])) {
- $modelRedirect = true;
- $menuItem = 'error';
- $action = 'index';
- $errorMsg .= "<b>Model doesn't exist:</b> " . $modelName;
+ // Get any requested "action" from a form submission - Overrides short-code default action
+ if (isset($_REQUEST['glm_action']) && $_REQUEST['glm_action'] != '') {
+ $a = sanitize_text_field($_REQUEST['glm_action']);
+ if ($a != '') {
+ $action = $a;
+ }
}
- // Verify Menu item and action using array at top of this file
- if (! isset($this->config['validActions']['frontActions']) ||
- ! isset($action,
- $this->config['validActions']['frontActions'][$menuItem])) {
- $menuItem = 'error';
- $action = 'badAction';
- }
+ // Set the default attributes and create a filter to update them
+ $actionData = array(
+ 'request' => shortcode_atts(
+ $shortcodeData['attributes'],
+ $atts,
+ $shortcode
+ )
+ );
+
+ } else {
+ $errorMsg .= "<b>Provided short-code is not valid: </b>$shortcode<br>";
+ }
+
+ // If there's been no error so far, try to process the supplied action
+ if($errorMsg == '') {
/*
- * Execute the selected model
+ * Processing loop - Loop till we have a final action
*/
+ $loopCheck = 0;
+ do {
+
+ if (GLM_MEMBERS_PLUGIN_FRONT_DEBUG) {
+ glmMembersFront::addNotice("<b>Requested Action:</b> Menu item = $menuItem, Action = $action", 'Process');
+ }
+
+ // If the menu item is "error" reset the view path
+ if ($menuItem == 'error') {
+ $viewPath = GLM_MEMBERS_PLUGIN_PATH . '/views';
+ }
- // Build model and path and class names
- $modelName = GLM_MEMBERS_PLUGIN_PATH . '/models/front/' . $menuItem .
- '/' . $action . '.php';
- $className = 'GlmMembersFront_' . $menuItem . '_' . $action;
+ $modelRedirect = false;
- // If model file doesn't exist - we have an error
- if (!file_exists($modelName)) {
+ // Verify that we have the requested menu item in the valid actions
- $modelRedirect = true;
- $menuItem = 'error';
- $action = 'index';
- $errorMsg .= "<b>Model doesn't exist:</b> " . $modelName;
+ if (! isset($this->config['validActions']['frontActions'][$menuItem])) {
+ $errorMsg .= "<b>Model doesn't exist:</b> " . $modelName;
+ }
- // Otherwise, load and run the model
- } else {
+ // Verify Menu item and action as valid action
+ if (! isset($this->config['validActions']['frontActions']) ||
+ ! isset($action,
+ $this->config['validActions']['frontActions'][$menuItem])) {
+ $errorMsg = '<b>Invalid action requested:</br> '.$action;
+ }
- // Load the model file
- require_once ($modelName);
+ /*
+ * Execute the selected model
+ */
- // check for an invalid model class name
- if (! class_exists($className)) {
- $modelRedirect = true;
- $menuItem = 'error';
- $action = 'index';
- $errorMsg .= "<b>Model class doesn't exist:</b> " .
- $className;
+ // Get name of plugin where model and view are located - and set the view path
+ $plugIn = $this->config['validActions']['frontActions'][$menuItem][$action];
+
+ // Build model and path and class names
+ $modelName = GLM_MEMBERS_WORDPRESS_PLUGIN_PATH . "$plugIn/models/front/$menuItem/$action.php";
+ $className = 'GlmMembersFront_' . $menuItem . '_' . $action;
+
+ // If model file doesn't exist - we have an error
+ if (!file_exists($modelName)) {
+
+ $errorMsg .= "<b>Model doesn't exist:</b> " . $modelName;
+
+ // Otherwise, load and run the model
} else {
- // Check if this is a re-direct with parameters
- $args = false;
+ // Load the model file, if it hasn't already
+ if (!class_exists($className)) {
+ require_once ($modelName);
+ }
- // Instantiate the model and ask it to perform the work
- $model = new $className($this->wpdb, $this->config);
- $results = $model->modelAction($actionData);
+ // check for an invalid model class name
+ if (! class_exists($className)) {
- // Check if there's been a model redirect request
- if ($results['modelRedirect']) {
+ $errorMsg .= "<b>Model class doesn't exist:</b> ".$className;
- // Set the new model action
- $action = $results['modelRedirect'];
+ } else {
- // Check if there's also a menu item change
- if ($results['menuItemRedirect']) {
- $menuItem = $results['menuItemRedirect'];
- }
+ // Check if this is a re-direct with parameters
+ $args = false;
+
+ // Instantiate the model and ask it to perform the work
+ $model = new $className($this->wpdb, $this->config);
+ $results = $model->modelAction($actionData);
+
+ // Check if there's been a model redirect request
+ if ($results['modelRedirect']) {
- // Check if there's data to pass to the new model
- if (isset($results['data']) &&
- count($results['data']) > 0) {
- $actionData = $results['data'];
+ // Set the new model action
+ $action = $results['modelRedirect'];
+
+ // Check if there's also a menu item change
+ if ($results['menuItemRedirect']) {
+ $menuItem = $results['menuItemRedirect'];
+ }
+
+ // Check if there's data to pass to the new model
+ if (isset($results['data']) &&
+ count($results['data']) > 0) {
+ $actionData = $results['data'];
+ }
+
+ $modelRedirect = true;
}
- $modelRedirect = true;
- }
+ // Get the specified view file
+ $view = false;
+ if (isset($results['view'])) {
+ $view = $results['view'];
+ }
- // Get the specified view file
- $view = false;
- if (isset($results['view'])) {
- $view = $results['view'];
- }
+ // Get the specified view file
+ $viewFile = GLM_MEMBERS_WORDPRESS_PLUGIN_PATH . "$plugIn/views/$view";
- // Check for invalid or missing view file
- if (! $view || ! is_file(
- GLM_MEMBERS_PLUGIN_PATH . '/views/' . $view)) {
- $modelRedirect = true;
- $menuItem = 'error';
- $action = 'index';
- $errorMsg .= "<b>Bad or missing view file:</b> " . $view;
- }
- } // model class exists
- }
+ // Check for invalid or missing view file
+ if (!$view || !is_file($viewFile)) {
+ $errorMsg .= "<b>Bad or missing view file:</b> " . $view;
+ }
- // This is just a sanity check on this loop to keep it from getting
- // out of control
- if (++$loopCheck > 10) {
- die('<h1>Serious failure looping on model load in "controllers/front.php".</h1>');
- }
+ } // model class exists
+ }
- if (GLM_MEMBERS_PLUGIN_FRONT_DEBUG && $modelRedirect) {
- $this->addNotice('<b>Redirecting...</b>', 'Process');
- }
+ // This is just a sanity check on this loop to keep it from getting out of control
+ if (++$loopCheck > 10) {
+ die('<h1>Serious failure looping on model load in "controllers/front.php".</h1>');
+ }
- // Loop again if there's a model redirect
- } while ($modelRedirect);
+ if (GLM_MEMBERS_PLUGIN_FRONT_DEBUG && $modelRedirect) {
+ $this->addNotice('<b>Redirecting...</b>', 'Process');
+ }
- /*
- * Check model results
- */
+ // Loop again if there's a model redirect
+ } while ($modelRedirect);
- // Get suggested view
- $view = $results['view'];
+ /*
+ * Check model results
+ */
- // If there's a general model failure use the error view
- if (! $results['status']) {
- $view = 'front/error/index.html';
- }
+ // Get suggested view
+ $view = $results['view'];
- // Check for modified settings to save in conf
- if (isset($results['settings'])) {
- while (list($key, $val) = each($results['settings'])) {
- $this->config['settings'][$key] = $val;
+ // Check for modified settings to save in conf
+ if (isset($results['settings'])) {
+ while (list($key, $val) = each($results['settings'])) {
+ $this->config['settings'][$key] = $val;
+ }
}
+
+ } // if errorMsg
+
+ // If there was an error
+ if ($errorMsg != '') {
+ $viewPath = GLM_MEMBERS_WORDPRESS_PLUGIN_PATH.GLM_MEMBERS_PLUGIN_SLUG.'/views';
+ $view = 'front/error/index.html';
+ require_once (GLM_MEMBERS_WORDPRESS_PLUGIN_PATH.GLM_MEMBERS_PLUGIN_SLUG.'/models/front/error/index.php');
+ $model = new GlmMembersFront_error_index($this->wpdb, $this->config);
+ $results = $model->modelAction($actionData);
}
/*
// Load Smarty Template support
$smarty = new smartyTemplateSupport();
+ // Update the Smarty view path based on plugin/add-on that's providing the action
+ $smarty->template->setTemplateDir($viewPath);
+
// Add standard parameters
$smarty->templateAssign ( 'errorMsg', $errorMsg);
$smarty->templateAssign ( 'frontDebug', GLM_MEMBERS_PLUGIN_FRONT_DEBUG);
$smarty->templateAssign ( 'thisURL', GLM_MEMBERS_PLUGIN_CURRENT_URL );
$smarty->templateAssign ( 'glmPluginName', GLM_MEMBERS_PLUGIN_NAME );
$smarty->templateAssign ( 'glmPluginMediaURL', GLM_MEMBERS_PLUGIN_MEDIA_URL );
+ $smarty->templateAssign ( 'ref_type_numb', $this->config['ref_type_numb']);
$smarty->templateAssign ( 'thisYear', date ( 'Y' ) );
$smarty->templateAssign ( 'settings', $this->config['settings']);
$smarty->templateAssign ( 'terms', $this->config['terms']);
+ $smarty->templateAssign('thisAction', $action);
// Add data from model to Smarty template
if (is_array($results['data']) && count($results['data']) > 0) {
}
}
- $smarty->templateAssign('thisAction', $action);
-
// If view debug has been requested
if (GLM_MEMBERS_PLUGIN_FRONT_DEBUG) {
* done for consistency, particularly for database maintenance
*/
require_once(GLM_MEMBERS_PLUGIN_SETUP_PATH.'/validActions.php');
+require_once(GLM_MEMBERS_PLUGIN_SETUP_PATH.'/shortcodes.php');
require_once(GLM_MEMBERS_PLUGIN_DB_SCRIPTS.'/dbVersions.php');
$config['addOns'] = array(
GLM_MEMBERS_PLUGIN_SLUG => array(
'short_name' => GLM_MEMBERS_PLUGIN_SHORT_NAME,
'slug' => GLM_MEMBERS_PLUGIN_SLUG,
'actions' => $glmMembersValidActions,
+ 'shortcodes' => $glmMembersShortcodes,
+ 'shortcodesDescription' => $glmMembersShortcodesDescription,
'database' => array(
'dbPrefix' => GLM_MEMBERS_PLUGIN_DB_PREFIX,
'dbCurrentVersion' => GLM_MEMBERS_PLUGIN_DB_VERSION,
// Create hook for registering add-on plugins and their features
$config['addOns'] = apply_filters('glm-member-db-register-addon', $config['addOns']);
-// If any add-ons have registered, integrate their actions and drop the actions array from the $config object as they're not needed there
+// If any add-ons have registered
$config['validActions'] = array();
+$config['shortcodes'] = array();
if (count($config['addOns']) > 0) {
+
+ // For each add-on that's registered
foreach ($config['addOns'] as $a) {
- // Add valid actions
+ // Add their valid actions to the main validActions config array
if (isset($a['actions'])) {
$config['validActions'] = array_merge_recursive($config['validActions'], $a['actions']);
}
- // Check for add-on config file
+ // Add their shortcodes to the main shortcodes config array
+ if (isset($a['shortcodes'])) {
+ $config['shortcodes'] = array_merge_recursive($config['shortcodes'], $a['shortcodes']);
+ }
+
+ // If the add-on has additional config parameters
$iniFile = GLM_MEMBERS_WORDPRESS_PLUGIN_PATH.'/'.$a['slug'].'/config/plugin.ini';
if (isset($iniFile)) {
new glmMembersFront($wpdb, $config);
}
-
/*
* Function to display admin notices.
*
/*
* Configure Smarty Templates for this site
*/
+ $this->template->debugging = false;
$this->template->setTemplateDir ( GLM_MEMBERS_PLUGIN_PATH . '/views' );
$this->template->setCompileDir ( GLM_MEMBERS_PLUGIN_PATH . '/misc/smarty/templates_c' );
$this->template->setCacheDir ( GLM_MEMBERS_PLUGIN_PATH . '/misc/smarty/cache' );
+++ /dev/null
-Nothing in the directories found here should be committed, only the directories (i.e. "images")
\ No newline at end of file
+++ /dev/null
--- Gaslight Media Members Database
--- File Created: 12/09/14 15:27:15
--- Database Version: 1.0.43
--- Database Creation Script
---
--- To permit each query below to be executed separately,
--- all queries must be separated by a line with four dashes
-
--- Accommodation Types
-CREATE TABLE {prefix}accommodation_types (
- id INT NOT NULL AUTO_INCREMENT,
- facility_type INT NULL, -- See "Facility Types" in config/plugin.ini
- name TINYTEXT NULL, -- Name of accommodation type
- descr TEXT NULL, -- Description of accommodation type
- short_descr TINYTEXT NULL, -- Short description of accommodation type
- PRIMARY KEY (id),
- INDEX(facility_type),
- INDEX(name(20))
-);
-
-----
-
--- Accommodations
-CREATE TABLE {prefix}accommodations (
- id INT NOT NULL AUTO_INCREMENT,
- active BOOLEAN NULL, -- Accommodation record is active flag
- name TINYTEXT NULL, -- Name of the accommodation record
- accommodation_type INT NULL, -- Pointer to Accommodation type in accommodation_types table
- descr TEXT NULL, -- Description of accommodation
- short_descr TINYTEXT NULL, -- Short description of accommodation
- url TINYTEXT NULL, -- URL for info regarding this accommodation
- notes TEXT NULL, -- Notes regarding this accommodation - Not displayed on front-end
- create_time TIMESTAMP NULL, -- Date/time this accommondation was created
- modify_time TIMESTAMP NULL, -- Date/time this accommodation was last updated
- quant INT NULL, -- Quantity of this accommodation
- reservation_url TINYTEXT NULL, -- URL to use for making reservaionn
- reservation_id TINYTEXT NULL, -- ID to use as a reference to this accommodation when making reservations
- year_round TINYINT(1) NULL, -- Accommodation is available year-round
- ref_type INT NULL, -- Type of entity this accommodation is associated with
- ref_dest INT NULL, -- Pointer to the specific entity of ref_type this accommodation is associated with
- PRIMARY KEY (id),
- INDEX(accommodation_type),
- INDEX(name(20)),
- INDEX(ref_type),
- INDEX(ref_dest)
-);
-
-----
-
--- Accounts
-CREATE TABLE {prefix}accounts (
- id INT NOT NULL AUTO_INCREMENT,
- member INT NULL,
- payment_type INT NULL,
- invoice_delivery INT NULL,
- PRIMARY KEY (id),
- INDEX(member)
-);
-
-----
-
--- Activities
-CREATE TABLE {prefix}activities (
- id INT NOT NULL AUTO_INCREMENT,
- active BOOLEAN NULL, -- Activity is active flag
- activity_type INT NULL, -- ***** NEED TO ADD ACTIVITY_TYPES TABLE AND SUPPORT FOR THAT *****
- name TINYTEXT NULL, -- Activity name
- descr TEXT NULL, -- Description of activity
- short_descr TINYTEXT NULL, -- Shot description of activity
- phone TINYTEXT NULL, -- Phone number to contact someone regarding this activity
- url TINYTEXT NULL, -- URL for info regarding this activity
- notes TEXT NULL, -- Notes regarding this activity - Not displayed on front-end
- create_time TIMESTAMP NULL, -- Date/time this activity was created
- modify_time TIMESTAMP NULL, -- Date/time this activity was last updated
- ref_type INT NULL, -- Type of entity this activity is associated with
- ref_dest INT NULL, -- Pointer to the specific entity of type ref_type
- PRIMARY KEY (id),
- INDEX(activity_type),
- INDEX(name(20)),
- INDEX(ref_type),
- INDEX(ref_dest)
-);
-
-----
-
--- Amenities
-CREATE TABLE {prefix}amenities (
- id INT NOT NULL AUTO_INCREMENT,
- active TINYINT(1) NULL, -- Amenity is active flag
- name TINYTEXT NULL, -- Name of amenity
- descr TEXT NULL, -- Description of amenity
- short_descr TINYTEXT NULL, -- Short description of amenity
- ref_type INT NULL, -- Type of entity these amenitites are associated with - see plugin.ini ref_type tables
- uses_value BOOLEAN NULL, -- Flag indicating whether the amenity requires a quantity number
- PRIMARY KEY (id),
- INDEX(name(20))
-);
-
-----
-
--- Amenity Reference - Links a specific amenity to a specific entity of type ref_type
-CREATE TABLE {prefix}amenity_ref (
- id INT NOT NULL AUTO_INCREMENT,
- amenity INT NULL, -- Pointer to amenity in amenities table
- ref_type INT NULL, -- Copy of ref_type from matching ameities table entry - to simplify searches
- ref_dest INT NULL, -- Pointer to the specific entity of type ref_type
- amenity_value TINYTEXT NULL, -- Quanity if amenity uses values
- PRIMARY KEY (id),
- INDEX(ref_type),
- INDEX(ref_dest)
-);
-
-----
-
--- Member Cateogries - used with member information records
-CREATE TABLE {prefix}categories (
- id INT NOT NULL AUTO_INCREMENT,
- name TINYTEXT NULL, -- Name of this category
- descr TEXT NULL, -- Description of this category
- short_descr TINYTEXT NULL, -- Short description of this category
- parent INT NULL, -- Pointer to parent category in this table - if there is one
- PRIMARY KEY (id)
-);
-
-----
-
--- Mapping of categories to speific member information records
-CREATE TABLE {prefix}category_member_info (
- id INT NOT NULL AUTO_INCREMENT,
- category INT NULL, -- Pointer to category in categories table
- member_info INT NULL, -- Pointer to member infomation record
- PRIMARY KEY (id),
- CONSTRAINT {prefix}categories_fk_1
- FOREIGN KEY (category)
- REFERENCES {prefix}categories (id)
- ON DELETE CASCADE,
- INDEX(category),
- INDEX(member_info)
-);
-
-----
-
--- Cities
-CREATE TABLE {prefix}cities (
- id INT NOT NULL AUTO_INCREMENT,
- name TINYTEXT NULL, -- Name of city
- PRIMARY KEY (id)
-);
-
-----
-
--- Contacts - used by various entities
-CREATE TABLE {prefix}contacts (
- id INT NOT NULL AUTO_INCREMENT,
- active BOOLEAN NULL, -- Contact is active flag
- access INT NULL, -- Access type - See access table in plugin.ini
- fname TINYTEXT NULL, -- First name of contact
- lname TINYTEXT NULL, -- Last name of contact
- contact_type INT NULL, -- Contact type - see contact_type table (individual, role, ...)
- contact_role INT NULL, -- Contact WordPress user Role
- org TINYTEXT NULL, -- Organization name
- title TINYTEXT NULL, -- Title/Position
- descr TEXT NULL, -- Description of position/responsibilities - Displayed
- image TINYTEXT NULL, -- Image
- addr1 TINYTEXT NULL, -- Address line 1 - Address is for contact, not necessarily for organization
- addr2 TINYTEXT NULL, -- Address line 2
- city INT NULL, -- Pointer to city in cities table
- state TINYTEXT NULL, -- Two character state code - matches states.ini entries
- country TINYTEXT NULL, -- Two character country code - matches countries.ini entries
- zip TINYTEXT NULL, -- ZIP/Postal Code
- lat FLOAT NULL, -- Latitude of contact location
- lon FLOAT NULL, -- Longitude of contact location
- url TINYTEXT NULL, -- URL to information regarding this contact
- office_phone TINYTEXT NULL, -- Office phone number
- home_phone TINYTEXT NULL, -- Home phone number - or after-hours phone number
- mobile_phone TINYTEXT NULL, -- Mobile phone number
- alt_phone TINYTEXT NULL, -- An alternate phone number
- fax TINYTEXT NULL, -- FAX number (do people still use these?)
- email TINYTEXT NULL, -- E-Mail address
- alt_email TINYTEXT NULL, -- Alternate E-Mail address - Also used to log-in
- username TINYTEXT NULL, -- Optional username to use for login
- password TINYTEXT NULL, -- Encrypted password
- notes TEXT NULL, -- Notes - Not displayed on front-end
- create_time TIMESTAMP NULL, -- Create date/time
- modify_time TIMESTAMP NULL, -- Last modified date/time
- ref_type INT NULL, -- Type of entity this contact is associated with
- ref_dest INT NULL, -- Pointer to the specific entity of ref_type this contact is associated with
- PRIMARY KEY (id),
- INDEX(fname(20)),
- INDEX(lname(20)),
- INDEX(city),
- INDEX(zip(10)),
- INDEX(lat),
- INDEX(lon),
- INDEX(email(20))
-);
-
-----
-
--- Facilities - Facilities are separate functional units of a member, either physically or operationally
--- For example, separate facilities could be individual properties (hotels, motels) or could be operationally
--- separate hotel and restaurant at the same location. A facility is an entity under a member "location".
-CREATE TABLE {prefix}facilities (
- id INT NOT NULL AUTO_INCREMENT,
- active BOOLEAN NULL, -- Facility is active flag
- facility_type INT NULL, -- Facility type - see plugin.ini facility type
- location INT NULL, -- Pointer to one of the member's locations - see locations table
- name TINYTEXT NULL, -- Name of this facility
- descr TEXT NULL, -- Description
- short_descr TINYTEXT NULL, -- Short description
- addr1 TINYTEXT NULL, -- Address line 1
- addr2 TINYTEXT NULL, -- Address line 2
- city INT NULL, -- Pointer to city in cities table
- state TINYTEXT NULL, -- Two character state code - matches states.ini entries
- country TINYTEXT NULL, -- Two character country code - matches countries.ini entries
- zip TINYTEXT NULL, -- ZIP/Postal code
- lat FLOAT NULL, -- Latitude of facility
- lon FLOAT NULL, -- Longitude of facility
- phone TINYTEXT NULL, -- Primary phone number
- toll_free TINYTEXT NULL, -- Toll Free phone number
- url TINYTEXT NULL, -- URL for information specifically regarding this facility
- logo TINYTEXT NULL, -- Logo
- notes TEXT NULL, -- Notes - Not displayed on front-end
- create_time TIMESTAMP NULL, -- Create date/time
- modify_time TIMESTAMP NULL, -- Last modified date/time
- PRIMARY KEY (id),
- INDEX(name(20)),
- INDEX(city),
- INDEX(zip(10)),
- INDEX(lat),
- INDEX(lon)
-);
-
-----
-
--- Donwloadable Files - files are stored under /wp-content/uploads/glm-member-db/files/
-CREATE TABLE {prefix}files (
- id INT NOT NULL AUTO_INCREMENT,
- name TINYTEXT NULL, -- Name of this file
- file_name TINYTEXT NULL, -- Physical file name for this file
- descr TEXT NULL, -- Description
- short_descr TINYTEXT NULL, -- Short descroption
- size INT NULL, -- Download size of this file
- pending BOOLEAN NULL, -- File is pending review flag
- create_date DATE NULL, -- Date file was uploaded
- ref_type INT NULL, -- Type of entity this file is associated with
- ref_dest INT NULL, -- Pointer to the specific entity of ref_type this file is associated with
- PRIMARY KEY (id),
- INDEX(name(20)),
- INDEX(file_name(20)),
- INDEX(ref_type),
- INDEX(ref_dest)
-);
-
-----
-
--- Detail on golf courses
-CREATE TABLE {prefix}golf (
- id INT NOT NULL AUTO_INCREMENT,
- active BOOLEAN NULL, -- This golf course is active flag
- name TINYTEXT NULL, -- Name of Golf course
- descr TEXT NULL, -- Description
- short_descr TINYTEXT NULL, -- Short Description
- rating TINYTEXT NULL, -- Rating
- par TINYTEXT NULL, -- Par
- yardage TINYTEXT NULL, -- Total yardage
- slope TINYTEXT NULL, -- Slope rating
- walking TINYINT(1) NULL, -- Walking course
- holes INT NULL, -- Number of holes
- reservation_url TINYTEXT NULL, -- URL for making reservations for this course
- ref_type INT NULL, -- Type of entity this golf course is associated with
- ref_dest INT NULL, -- Pointer to the specific entity of ref_type this golf course is associated with
- PRIMARY KEY (id),
- INDEX(name(20)),
- INDEX(ref_type),
- INDEX(ref_dest)
-);
-
-----
-
--- Images - Images are stored under /wp-content/uploads/glm-member-db/images/{size}/
-CREATE TABLE {prefix}images (
- id INT NOT NULL AUTO_INCREMENT,
- name TINYTEXT NULL, -- Original name of the image - might be URL if copied via HTTP
- status TINYINT(1) NULL, -- Display/Use status - See plugin.ini status table
- selected_image BOOLEAN NULL, -- A single special image in the current gallery for this entity
- featured_image BOOLEAN null, -- Image is a member of a group of featured images
- file_name TINYTEXT NULL, -- Stored file name for the image
- descr TEXT NULL, -- Description
- caption TINYTEXT NULL, -- Caption for the image
- position INT NULL, -- Numeric position for sequence of display
- ref_type INT NULL, -- Type of entity this image is associated with
- ref_dest INT NULL, -- Pointer to the specific entity of ref_type this image is associated with
- PRIMARY KEY (id),
- INDEX(name(20)),
- INDEX(file_name(20)),
- INDEX(ref_type),
- INDEX(ref_dest)
-);
-
-----
-
--- Member locations - Locations are physically separate campuses where facilities exist
-CREATE TABLE {prefix}locations (
- id INT NOT NULL AUTO_INCREMENT,
- active BOOLEAN NULL, -- This location is active flag
- member INT NULL, -- Pointer to main member record
- member_info INT NULL, -- Pointer to associated member info record
- name TINYTEXT NULL, -- Name of location
- descr TEXT NULL, -- Description
- short_descr TINYTEXT NULL, -- Short Description
- addr1 TINYTEXT NULL, -- Address line 1 - Main address for this location
- addr2 TINYTEXT NULL, -- Address line 2
- city INT NULL, -- Pointer to city in cities table
- state TINYTEXT NULL, -- Two character state code - matches states.ini entries
- country TINYTEXT NULL, -- Two character country code - matches countries.ini entries
- zip TINYTEXT NULL, -- ZIP/Postal code
- lat FLOAT NULL, -- Latitude of location
- lon FLOAT NULL, -- Longitude of location
- region INT NULL, -- Pointer to region where location exists
- phone TINYTEXT NULL, -- Primary phone number
- toll_free TINYTEXT NULL, -- Toll Free phone number
- url TINYTEXT NULL, -- URL for information regarding this location
- logo TINYTEXT NULL, -- Logo
- notes TEXT NULL, -- Notes - not displayed on front-end
- create_time TIMESTAMP NULL, -- Create date/time
- modify_time TIMESTAMP NULL, -- Last Update date/time
- PRIMARY KEY (id),
- INDEX(name(20)),
- INDEX(city),
- INDEX(zip(10)),
- INDEX(lat),
- INDEX(lon),
- INDEX(region)
-);
-
-----
-
--- Meals offered by a restaurant
-CREATE TABLE {prefix}meals (
- id INT NOT NULL AUTO_INCREMENT,
- active BOOLEAN NULL, -- Meal is active flag
- name TINYTEXT NULL, -- Name of this meal (typically Breakfast, Lunch, Dinner, Brunch, ...)
- descr TEXT NULL, -- Description of the meal
- short_descr TINYTEXT NULL, -- Short description
- menu TEXT NULL, -- Text menu for this meal
- menu_file TINYTEXT NULL, -- File name of downloadable menu file (PDF, etc.)
- daily BOOLEAN NULL, -- Flag indicating if meal is available daily
- daily_start_time TIME NULL, -- Daily meal - Time of day this meal starts
- daily_end_time TIME NULL, -- Daily meal - Time of day this meal ends
- daily_res_req BOOLEAN NULL, -- Daily meal - Reservations requested
- sunday BOOLEAN NULL, -- Flag indicating if meal is available Sunday
- sun_menu TEXT NULL, -- Optional menu text for Sunday
- sun_start_time TIME NULL, -- Sunday - Time of day this meal starts
- sun_end_time TIME NULL, -- Sunday - Time of day this meal ends
- sun_res_req BOOLEAN NULL, -- Sunday - Reservations requested
- monday BOOLEAN NULL, -- Flag indicating if meal is available Monday
- mon_menu TEXT NULL, -- Optional menu text for Monday
- mon_start_time TIME NULL, -- Monday - Time of day this meal starts
- mon_end_time TIME NULL, -- Monday - Time of day this meal ends
- mon_res_req BOOLEAN NULL, -- Monday - Reservations requested
- tuesday BOOLEAN NULL, -- Flag indicating if meal is available Tuesday
- tue_menu TEXT NULL, -- Optional menu text for Tuesday
- tue_start_time TIME NULL, -- Tuesday - Time of day this meal starts
- tue_end_time TIME NULL, -- Tuesday - Time of day this meal ends
- tue_res_req BOOLEAN NULL, -- Tuesday - Reservations requested
- wednesday BOOLEAN NULL, -- Flag indicating if meal is available Wednesday
- wed_menu TEXT NULL, -- Optional menu text for Wednesday
- wed_start_time TIME NULL, -- Wednesday - Time of day this meal starts
- wed_end_time TIME NULL, -- Wednesday - Time of day this meal ends
- wed_res_req BOOLEAN NULL, -- Wednesday - Reservations requested
- thursday BOOLEAN NULL, -- Flag indicating if meal is available Thursday
- thu_menu TEXT NULL, -- Optional menu text for Thursday
- thu_start_time TIME NULL, -- Thursday - Time of day this meal starts
- thu_end_time TIME NULL, -- Thursday - Time of day this meal ends
- thu_res_req BOOLEAN NULL, -- Thursday - Reservations requested
- friday BOOLEAN NULL, -- Flag indicating if meal is available Friday
- fri_menu TEXT NULL, -- Optional menu text for Friday
- fri_start_time TIME NULL, -- Friday - Time of day this meal starts
- fri_end_time TIME NULL, -- Friday - Time of day this meal ends
- fri_res_req BOOLEAN NULL, -- Friday - Reservations requested
- saturday BOOLEAN NULL, -- Flag indicating if meal is available Saturday
- sat_menu TEXT NULL, -- Optional menu text for Saturday
- sat_start_time TIME NULL, -- Saturday - Time of day this meal starts
- sat_end_time TIME NULL, -- Saturday - Time of day this meal ends
- sat_res_req BOOLEAN NULL, -- Saturday - Reservations requested
- restaurant INT NULL, -- Pointer to restaurant that has this meal
- PRIMARY KEY (id),
- INDEX(name(20)),
- INDEX(restaurant)
-);
-
-----
-
--- Primary member records - One for each member
-CREATE TABLE {prefix}members (
- id INT NOT NULL AUTO_INCREMENT,
- access INT NULL, -- Access type - See access table in plugin.ini
- member_type INT NULL, -- Pointer to member type in member_type table
- created DATE NULL, -- Date member record was created
- name TINYTEXT NULL, -- Member name
- member_slug TINYTEXT NULL, -- Member name slug for canonical URLs (lowercase, "-" for spaces, no punctuation)
- PRIMARY KEY (id),
- INDEX(name(20)),
- INDEX(member_slug(20)),
- INDEX(created)
-);
-
-----
-
--- Member information version record - May be multiples per member - Only one with stauts "Active" for a distinct date range
-CREATE TABLE {prefix}member_info (
- id INT NOT NULL AUTO_INCREMENT,
- member INT NULL, -- Pointer to member record in table members
- member_name TINYTEXT NULL, -- Copy of member name from members table entry for fast reference
- status INT NULL, -- Status of this member information record - See plugin.ini status table
- reference_name TINYTEXT NULL, -- Refernce name for this member information record - Not displayed on front-end
- descr TEXT NULL, -- Description
- short_descr TEXT NULL, -- Short description
- addr1 TINYTEXT NULL, -- Address line 1 - Main member address (main location) or
- addr2 TINYTEXT NULL, -- Address line 2
- city INT NULL, -- Pointer to City in cities table
- state TINYTEXT NULL, -- Two character state code - matches states.ini entries
- country TINYTEXT NULL, -- Two character country code - matches countries.ini entries
- zip TINYTEXT NULL, -- ZIP/Postal code
- lat FLOAT NULL, -- Latitude of member's location
- lon FLOAT NULL, -- Longitude of member's location
- region INT NULL, -- Pointer to entry in regions table
- phone TINYTEXT NULL, -- Primary phone number
- toll_free TINYTEXT NULL, -- Toll Free phone number
- url TINYTEXT NULL, -- URL with information about this member
- email TINYTEXT NULL, -- Main E-Mail address for this member
- logo TINYTEXT NULL, -- Member logo
- cc_type INT NULL, -- Bitmap of credit card types accepted - See credit_card array in plugin.ini
- notes TEXT NULL, -- General notes - Not displayed in front-end
- create_time TIMESTAMP NULL, -- Create date/time
- modify_time TIMESTAMP NULL, -- Last update date/time
- PRIMARY KEY (id),
- INDEX(status),
- INDEX(city),
- INDEX(zip(10)),
- INDEX(lat),
- INDEX(lon),
- INDEX(region)
-);
-
-----
-
--- Member type - Can be used to assign members to different "classes" of membership (i.e. Full, Associate, Premium)
--- Mostly for internal use by the member organization, but could be displayed - Consider a short_description if they are.
-CREATE TABLE {prefix}member_type (
- id INT NOT NULL AUTO_INCREMENT,
- name TINYTEXT NULL, -- Name of member type
- descr TINYTEXT NULL, -- Description of member type
- PRIMARY KEY (id)
-);
-
-----
-
--- Regions - Used to segment members into various geographical regions - can be cities, counties, or other logical regions
-CREATE TABLE {prefix}regions (
- id INT NOT NULL AUTO_INCREMENT,
- name TINYTEXT NULL, -- Name of region
- descr TEXT NULL, -- Descrption of region
- short_descr TINYTEXT NULL, -- Short descroption of region
- PRIMARY KEY (id)
-);
-
-----
-
--- Resturaunt Types - Various general types of restaurants (i.e. Fast Food, Ethnic, Fine food, ...)
-CREATE TABLE {prefix}restaurant_types (
- id INT NOT NULL AUTO_INCREMENT,
- name TINYTEXT NULL, -- Name of restaurant type
- descr TEXT NULL, -- Description
- short_descr TINYTEXT NULL, -- Short Description
- PRIMARY KEY (id),
- INDEX(name(20))
-);
-
-----
-
--- Restaurants
-CREATE TABLE {prefix}restaurants (
- id INT NOT NULL AUTO_INCREMENT,
- active BOOLEAN NULL, -- This restaurant is active flag
- name TINYTEXT NULL, -- Name of restaurant
- restaurant_type INT NULL, -- Pointer to restaurant_types table entry
- descr TEXT NULL, -- Description
- short_descr TINYTEXT NULL, -- Short Description
- url TINYTEXT NULL, -- URL of Web page about this restaurant
- reservation_url TINYTEXT NULL, -- Reservations URL
- phone TINYTEXT NULL, -- Phone number / reservations number
- hours_descr TINYTEXT NULL, -- Description of restaurant hours
- alcohol BOOLEAN NULL, -- Flag indicating whether restaurant serves alcohol
- non_smoking BOOLEAN NULL, -- Flag indicating whether restaurant is non-smoking only
- notes TEXT NULL, -- General notes
- ref_type INT NULL, -- Type of entity this restaurant is associated with
- ref_dest INT NULL, -- Pointer to the specific entity of ref_type this restaurant is associated with
- PRIMARY KEY (id),
- INDEX(restaurant_type),
- INDEX(name(20)),
- INDEX(ref_type),
- INDEX(ref_dest)
-);
-
-----
-
--- General settings available on Management page in admin - Only 1 entry in this table
--- Items in this table should be all self-explanatory
-CREATE TABLE {prefix}settings_general (
- id INT NOT NULL AUTO_INCREMENT,
- admin_debug BOOLEAN DEFAULT '1',
- admin_debug_verbose BOOLEAN DEFAULT '0',
- front_debug BOOLEAN DEFAULT '0',
- front_debug_verbose BOOLEAN DEFAULT '0',
- google_maps_api_key TINYTEXT DEFAULT '',
- maps_default_lat FLOAT DEFAULT '45.3749',
- maps_default_lon FLOAT DEFAULT '-84.9592',
- maps_default_zoom INTEGER DEFAULT '10',
- time_zone TINYTEXT DEFAULT NULL,
- canonical_member_page TINYTEXT DEFAULT NULL,
- list_show_map BOOLEAN DEFAULT '1',
- list_show_list BOOLEAN DEFAULT '1',
- list_show_search BOOLEAN DEFAULT '1',
- list_show_search_text BOOLEAN DEFAULT '1',
- list_show_search_category BOOLEAN DEFAULT '1',
- list_show_search_amenities BOOLEAN DEFAULT '1',
- list_show_search_alpha BOOLEAN DEFAULT '1',
- list_show_detail_link BOOLEAN DEFAULT '1',
- list_show_logo BOOLEAN DEFAULT '1',
- list_logo_size TINYTEXT NULL,
- list_show_address BOOLEAN DEFAULT '1',
- list_show_street BOOLEAN DEFAULT '1',
- list_show_citystatezip BOOLEAN DEFAULT '1',
- list_show_country BOOLEAN DEFAULT '1',
- list_show_region BOOLEAN DEFAULT '1',
- list_show_descr BOOLEAN DEFAULT '0',
- list_show_short_descr BOOLEAN DEFAULT '1',
- list_show_phone BOOLEAN DEFAULT '1',
- list_show_tollfree BOOLEAN DEFAULT '1',
- list_show_url BOOLEAN DEFAULT '1',
- list_show_url_newtarget BOOLEAN DEFAULT '1',
- list_show_email BOOLEAN DEFAULT '1',
- list_show_categories BOOLEAN DEFAULT '1',
- list_show_creditcards BOOLEAN DEFAULT '1',
- list_show_amenities BOOLEAN DEFAULT '0',
- list_map_show_detaillink BOOLEAN DEFAULT '1',
- list_map_show_logo BOOLEAN DEFAULT '0',
- list_map_logo_size TINYTEXT NULL,
- list_map_show_descr BOOLEAN DEFAULT '0',
- list_map_show_short_descr BOOLEAN DEFAULT '1',
- list_map_show_address BOOLEAN DEFAULT '1',
- list_map_show_street BOOLEAN DEFAULT '1',
- list_map_show_citystatezip BOOLEAN DEFAULT '1',
- list_map_show_country BOOLEAN DEFAULT '1',
- list_map_show_region BOOLEAN DEFAULT '1',
- list_map_show_phone BOOLEAN DEFAULT '1',
- list_map_show_tollfree BOOLEAN DEFAULT '1',
- list_map_show_url BOOLEAN DEFAULT '1',
- list_map_show_url_newtarget BOOLEAN DEFAULT '1',
- list_map_show_email BOOLEAN DEFAULT '1',
- list_map_show_categories BOOLEAN DEFAULT '0',
- list_map_show_creditcards BOOLEAN DEFAULT '0',
- list_map_show_amenities BOOLEAN DEFAULT '0',
- detail_show_map BOOLEAN DEFAULT '1',
- detail_show_directions BOOLEAN DEFAULT '1',
- detail_show_logo BOOLEAN DEFAULT '1',
- detail_logo_size TINYTEXT NULL,
- detail_show_descr BOOLEAN DEFAULT '1',
- detail_show_short_descr BOOLEAN DEFAULT '0',
- detail_show_address BOOLEAN DEFAULT '1',
- detail_show_street BOOLEAN DEFAULT '1',
- detail_show_citystatezip BOOLEAN DEFAULT '1',
- detail_show_country BOOLEAN DEFAULT '1',
- detail_show_region BOOLEAN DEFAULT '1',
- detail_show_phone BOOLEAN DEFAULT '1',
- detail_show_tollfree BOOLEAN DEFAULT '1',
- detail_show_url BOOLEAN DEFAULT '1',
- detail_show_url_newtarget BOOLEAN DEFAULT '1',
- detail_show_email BOOLEAN DEFAULT '1',
- detail_show_categories BOOLEAN DEFAULT '1',
- detail_show_creditcards BOOLEAN DEFAULT '1',
- detail_show_amenities BOOLEAN DEFAULT '1',
- detail_show_imagegallery BOOLEAN DEFAULT '1',
- detail_show_coupons BOOLEAN DEFAULT '0',
- detail_show_packages BOOLEAN DEFAULT '0',
- detail_map_show_logo BOOLEAN DEFAULT '0',
- detail_map_logo_size TINYTEXT NULL,
- detail_map_show_descr BOOLEAN DEFAULT '0',
- detail_map_show_short_descr BOOLEAN DEFAULT '1',
- detail_map_show_address BOOLEAN DEFAULT '1',
- detail_map_show_street BOOLEAN DEFAULT '1',
- detail_map_show_citystatezip BOOLEAN DEFAULT '1',
- detail_map_show_country BOOLEAN DEFAULT '1',
- detail_map_show_region BOOLEAN DEFAULT '1',
- detail_map_show_phone BOOLEAN DEFAULT '1',
- detail_map_show_tollfree BOOLEAN DEFAULT '1',
- detail_map_show_url BOOLEAN DEFAULT '1',
- detail_map_show_url_newtarget BOOLEAN DEFAULT '1',
- detail_map_show_email BOOLEAN DEFAULT '1',
- detail_map_show_categories BOOLEAN DEFAULT '0',
- detail_map_show_creditcards BOOLEAN DEFAULT '0',
- detail_map_show_amenities BOOLEAN DEFAULT '0',
- PRIMARY KEY (id)
-);
-
-----
-
--- Set default entry
-INSERT INTO {prefix}settings_general
- ( id, time_zone, canonical_member_page )
- VALUES
- ( 1, 'America/Detroit', 'member-detail' )
-;
-
-----
-
--- Terms used in site modifiable on Management page in admin - Only 1 entry in this table
--- Tems in this table should be all self-explanatory
-CREATE TABLE {prefix}settings_terms (
- id INT NOT NULL AUTO_INCREMENT,
- term_admin_menu_members TINYTEXT NULL,
- term_admin_menu_member_list TINYTEXT NULL,
- term_admin_menu_member TINYTEXT NULL,
- term_admin_menu_configure TINYTEXT NULL,
- term_admin_menu_settings TINYTEXT NULL,
- term_admin_menu_shortcodes TINYTEXT NULL,
- term_admin_menu_members_dashboard TINYTEXT NULL,
- term_admin_menu_members_list TINYTEXT NULL,
- term_admin_menu_members_reports TINYTEXT NULL,
- term_admin_menu_member_dashboard TINYTEXT NULL,
- term_admin_menu_member_info TINYTEXT NULL,
- term_admin_menu_member_locations TINYTEXT NULL,
- term_admin_menu_member_facilities TINYTEXT NULL,
- term_admin_menu_member_attractions TINYTEXT NULL,
- term_admin_menu_member_contacts TINYTEXT NULL,
- term_admin_menu_configure_member_types TINYTEXT NULL,
- term_admin_menu_configure_member_cats TINYTEXT NULL,
- term_admin_menu_configure_accom_types TINYTEXT NULL,
- term_admin_menu_configure_amenities TINYTEXT NULL,
- term_admin_menu_configure_cities TINYTEXT NULL,
- term_admin_menu_configure_regions TINYTEXT NULL,
- term_admin_menu_settings_general TINYTEXT NULL,
- term_admin_menu_settings_terms TINYTEXT NULL,
- term_admin_menu_settings_development TINYTEXT NULL,
- term_member TINYTEXT NULL,
- term_member_cap TINYTEXT NULL,
- term_member_plur TINYTEXT NULL,
- term_member_plur_cap TINYTEXT NULL,
- term_location TINYTEXT NULL,
- term_location_cap TINYTEXT NULL,
- term_location_plur TINYTEXT NULL,
- term_location_plur_cap TINYTEXT NULL,
- term_facility TINYTEXT NULL,
- term_facility_cap TINYTEXT NULL,
- term_facility_plur TINYTEXT NULL,
- term_facility_plur_cap TINYTEXT NULL,
- term_attraction TINYTEXT NULL,
- term_attraction_cap TINYTEXT NULL,
- term_attraction_plur TINYTEXT NULL,
- term_attraction_plur_cap TINYTEXT NULL,
- term_contact TINYTEXT NULL,
- term_contact_cap TINYTEXT NULL,
- term_contact_plur TINYTEXT NULL,
- term_contact_plur_cap TINYTEXT NULL,
- PRIMARY KEY (id)
-);
-
-----
-
--- Default terms entry
-INSERT INTO {prefix}settings_terms
- (
- id,
- term_admin_menu_members,
- term_admin_menu_member_list,
- term_admin_menu_member,
- term_admin_menu_configure,
- term_admin_menu_settings,
- term_admin_menu_shortcodes,
- term_admin_menu_members_dashboard,
- term_admin_menu_members_list,
- term_admin_menu_members_reports,
- term_admin_menu_member_dashboard,
- term_admin_menu_member_info,
- term_admin_menu_member_locations,
- term_admin_menu_member_facilities,
- term_admin_menu_member_attractions,
- term_admin_menu_member_contacts,
- term_admin_menu_configure_member_types,
- term_admin_menu_configure_member_cats,
- term_admin_menu_configure_accom_types,
- term_admin_menu_configure_amenities,
- term_admin_menu_configure_cities,
- term_admin_menu_configure_regions,
- term_admin_menu_settings_general,
- term_admin_menu_settings_terms,
- term_admin_menu_settings_development,
- term_member,
- term_member_cap,
- term_member_plur,
- term_member_plur_cap,
- term_location,
- term_location_cap,
- term_location_plur,
- term_location_plur_cap,
- term_facility,
- term_facility_cap,
- term_facility_plur,
- term_facility_plur_cap,
- term_attraction,
- term_attraction_cap,
- term_attraction_plur,
- term_attraction_plur_cap,
- term_contact,
- term_contact_cap,
- term_contact_plur,
- term_contact_plur_cap
- )
- VALUES
- (
- 1,
- 'Members',
- 'Member',
- 'Member',
- 'Configure',
- 'Management',
- 'Shortcodes',
- 'Dashboard',
- 'Member List',
- 'Reports',
- 'Member Dashboard',
- 'Member Info',
- 'Locations',
- 'Facilities',
- 'Attractions',
- 'Contacts',
- 'Member Types',
- 'Member Categories',
- 'Accommodation Types',
- 'Amenities',
- 'Cities',
- 'Regions',
- 'General Settings',
- 'Terms & Phrases',
- 'Development',
- 'member',
- 'Member',
- 'members',
- 'Members',
- 'location',
- 'Location',
- 'locations',
- 'Locations',
- 'facility',
- 'Facility',
- 'facilities',
- 'Facilities',
- 'attraction',
- 'Attraction',
- 'attractions',
- 'Attractions',
- 'contact',
- 'Contact',
- 'contacts',
- 'Contacts'
- )
-;
-
-----
-
--- Social Media types (i.e. Facebook, Twitter, ...)
-CREATE TABLE {prefix}social_media (
- id INT NOT NULL AUTO_INCREMENT,
- name TINYTEXT NULL, -- Name of this social media service
- descr TEXT NULL, -- Description
- short_descr TINYTEXT NULL, -- Short Description
- PRIMARY KEY (id)
-);
-
-----
-
--- Social media to entity cross-reference table
-CREATE TABLE {prefix}social_media_ref (
- id INT NOT NULL AUTO_INCREMENT,
- ref_type INT NULL, -- Type of entity this entry is associated with
- ref_dest INT NULL, -- Pointer to the specific entity of ref_type
- social_media INT NULL, -- Pointer to entry in social_media table
- url TINYTEXT NULL, -- URL to this social media service
- PRIMARY KEY (id),
- INDEX(ref_type),
- INDEX(ref_dest),
- INDEX(social_media)
-);
+++ /dev/null
--- Gaslight Media Members Database
--- File Created: 12/09/14 15:27:15
--- Database Version: 1.0.43
--- Database Deletion Script
--- Note: Tables with DELETE CASCADE must appear before referenced table
-
-DROP TABLE IF EXISTS
- {prefix}accommodation_types,
- {prefix}accommodations,
- {prefix}accounts,
- {prefix}activties,
- {prefix}amenities,
- {prefix}amenity_ref,
- {prefix}category_member_info,
- {prefix}categories,
- {prefix}cities,
- {prefix}contacts,
- {prefix}facilities,
- {prefix}files,
- {prefix}golf,
- {prefix}images,
- {prefix}locations,
- {prefix}meals,
- {prefix}members,
- {prefix}member_info,
- {prefix}member_type,
- {prefix}regions,
- {prefix}restaurant_types,
- {prefix}restaurants,
- {prefix}settings_general,
- {prefix}settings_terms,
- {prefix}social_media,
- {prefix}social_media_ref
-;
-
+++ /dev/null
-<?php
-/*
- * Gaslight Media Members Database
- *
- * Database Update Script for version 1.0.28
- */
-
-// Update member_info records with member name slug for URLs
-$infoRecords = $this->wpdb->get_results('SELECT id, member_name FROM '.GLM_MEMBERS_PLUGIN_DB_PREFIX.'member_info;', ARRAY_A);
-if ($infoRecords && count($infoRecords) > 0) {
- foreach ($infoRecords as $i) {
- $slug = sanitize_title($i['member_name']);
- $this->wpdb->update(
- GLM_MEMBERS_PLUGIN_DB_PREFIX.'member_info',
- array(
- 'member_slug' => $slug
- ),
- array( 'id' => $i['id'] ),
- array( '%s' ),
- array( '%d')
- );
- }
-}
-
-?>
\ No newline at end of file
+++ /dev/null
--- Gaslight Media Members Database
--- File Created: 12/09/14 15:27:15
--- Database Version: 1.0.28
--- Database Update From Previous Version Script
---
--- To permit each query below to be executed separately,
--- all queries must be separated by a line with four dashses
-
-
-ALTER TABLE {prefix}member_info ADD COLUMN member_slug TINYTEXT;
-
-----
-
-ALTER TABLE {prefix}settings_general ADD COLUMN list_show_email BOOLEAN DEFAULT true;
-
-----
-
-ALTER TABLE {prefix}settings_general ADD COLUMN list_map_show_email BOOLEAN DEFAULT true;
-
-----
-
-ALTER TABLE {prefix}settings_general ADD COLUMN maps_default_zoom integer DEFAULT 10;
-
-----
-
-ALTER TABLE {prefix}settings_general ADD COLUMN canonical_member_page TINYTEXT;
-
-----
-
-UPDATE {prefix}settings_general SET canonical_member_page = 'member';
-
-----
-
-ALTER TABLE {prefix}settings_general ADD COLUMN detail_show_email BOOLEAN DEFAULT true;
-
-----
-
-ALTER TABLE {prefix}settings_general ADD COLUMN detail_map_show_email BOOLEAN DEFAULT true;
-
-----
-
-ALTER TABLE {prefix}settings_general ADD COLUMN detail_show_coupons BOOLEAN DEFAULT false;
-
-----
-
-ALTER TABLE {prefix}settings_general ADD COLUMN detail_show_packages BOOLEAN DEFAULT false;
-
+++ /dev/null
-<?php
-/*
- * Gaslight Media Members Database
- *
- * Database Update Script for version 1.0.28
- */
-
-// Update member_info records with member name slug for URLs
-$memberRecords = $this->wpdb->get_results('SELECT id, name FROM '.GLM_MEMBERS_PLUGIN_DB_PREFIX.'members;', ARRAY_A);
-if ($memberRecords && count($memberRecords) > 0) {
- foreach ($memberRecords as $m) {
- $slug = sanitize_title($m['name']);
- $this->wpdb->update(
- GLM_MEMBERS_PLUGIN_DB_PREFIX.'members',
- array(
- 'member_slug' => $slug
- ),
- array( 'id' => $m['id'] ),
- array( '%s' ),
- array( '%d')
- );
- }
-}
-
-?>
\ No newline at end of file
+++ /dev/null
--- Gaslight Media Members Database
--- File Created: 12/09/14 15:27:15
--- Database Version: 1.0.28
--- Database Update From Previous Version Script
---
--- To permit each query below to be executed separately,
--- all queries must be separated by a line with four dashses
-
-ALTER TABLE {prefix}members ADD COLUMN member_slug TINYTEXT;
-
-----
-
-ALTER TABLE {prefix}member_info DROP COLUMN member_slug;
-
-----
-
-ALTER TABLE {prefix}member_info MODIFY short_descr TEXT;
-
+++ /dev/null
--- Gaslight Media Members Database
--- File Created: 12/09/14 15:27:15
--- Database Version: 1.0.28
--- Database Update From Previous Version Script
---
--- To permit each query below to be executed separately,
--- all queries must be separated by a line with four dashses
-
-RENAME TABLE {prefix}activties to {prefix}activities;
-
-----
-
-ALTER TABLE {prefix}contacts ADD COLUMN username TINYTEXT;
-
-----
-
-ALTER TABLE {prefix}activities DROP COLUMN facility;
-
-----
-
-ALTER TABLE {prefix}accommodations ADD COLUMN url TINYTEXT;
-
-----
-
-ALTER TABLE {prefix}accommodations ADD COLUMN notes TEXT;
-
-----
-
-ALTER TABLE {prefix}accommodations ADD COLUMN create_time TIMESTAMP;
-
-----
-
-ALTER TABLE {prefix}accommodations ADD COLUMN modify_time TIMESTAMP;
-
-----
-
-ALTER TABLE {prefix}contacts MODIFY state TINYTEXT;
-
-----
-
-ALTER TABLE {prefix}contacts MODIFY country TINYTEXT;
-
-----
-
-ALTER TABLE {prefix}contacts DROP COLUMN permissions;
-
-----
-
-ALTER TABLE {prefix}facilities MODIFY state TINYTEXT;
-
-----
-
-ALTER TABLE {prefix}facilities MODIFY country TINYTEXT;
-
-----
-
-ALTER TABLE {prefix}files MODIFY pending BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}locations DROP COLUMN location_type;
-
-----
-
-ALTER TABLE {prefix}locations ADD COLUMN member_info INT;
-
-----
-
-ALTER TABLE {prefix}locations MODIFY state TINYTEXT;
-
-----
-
-ALTER TABLE {prefix}locations MODIFY country TINYTEXT;
-
-----
-
-ALTER TABLE {prefix}meals ADD COLUMN menu_file TINYTEXT;
-
-----
-
-ALTER TABLE {prefix}meals DROP COLUMN special_menu;
-
-----
-
-ALTER TABLE {prefix}meals DROP COLUMN daily_time;
-
-----
-
-ALTER TABLE {prefix}meals ADD COLUMN daily BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY daily_res_req BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY sunday BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY sun_res_req BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY monday BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY tuesday BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY wednesday BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY thursday BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY friday BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY saturday BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY mon_res_req BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY tue_res_req BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY wed_res_req BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY thu_res_req BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY fri_res_req BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals MODIFY sat_res_req BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}meals DROP COLUMN ref_type;
-
-----
-
-ALTER TABLE {prefix}meals DROP COLUMN ref_dest;
-
-----
-
-CREATE INDEX meal_restaurant ON {prefix}meals (restaurant);
-
-----
-
-ALTER TABLE {prefix}restaurant_types DROP COLUMN active;
-
-----
-
-ALTER TABLE {prefix}restaurants DROP COLUMN menu;
-
-----
-
-ALTER TABLE {prefix}restaurants DROP COLUMN special_menu;
-
-----
-
-ALTER TABLE {prefix}restaurants MODIFY alcohol BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}restaurants MODIFY non_smoking BOOLEAN;
-
-----
-
-ALTER TABLE {prefix}contacts ADD COLUMN contact_role INT;
-
-----
-
-ALTER TABLE {prefix}contacts ADD COLUMN access int null;
-
-----
-
-ALTER TABLE {prefix}contacts ADD COLUMN title tinytext null;
-
-----
-
-ALTER TABLE {prefix}contacts ADD COLUMN descr text null;
-
-----
-
-ALTER TABLE {prefix}contacts ADD COLUMN image tinytext null;
-
-----
-
-ALTER TABLE {prefix}images ADD COLUMN selected BOOLEAN null;
-
-----
-
-ALTER TABLE {prefix}images ADD COLUMN featured BOOLEAN null;
public function modelAction($actionData = false) {
+ $shortcodesDescription = '';
+
+ // For each add-on that's registered
+ foreach ($this->config['addOns'] as $a) {
+echo "Addon: ".$a['name']."<br>";
+
+ // Add their shortcodes descriptions
+ if (isset($a['shortcodesDescription'])) {
+echo "Have descr<br>";
+ $shortcodesDescription .= $a['shortcodesDescription'];
+ }
+
+ }
+
// Return status, any suggested view, and any data to controller
return array(
- 'status' => true,
- 'modelRedirect' => false,
- 'view' => 'admin/shortcodes/index.html',
- 'data' => false
+ 'status' => true,
+ 'modelRedirect' => false,
+ 'view' => 'admin/shortcodes/index.html',
+ 'data' => array(
+ 'shortcodesDescription' => $shortcodesDescription,
+ 'junk' => 'My Junk'
+ )
);
}
--- /dev/null
+-- Gaslight Media Members Database
+-- File Created: 12/09/14 15:27:15
+-- Database Version: 1.0.43
+-- Database Creation Script
+--
+-- To permit each query below to be executed separately,
+-- all queries must be separated by a line with four dashes
+
+-- Accommodation Types
+CREATE TABLE {prefix}accommodation_types (
+ id INT NOT NULL AUTO_INCREMENT,
+ facility_type INT NULL, -- See "Facility Types" in config/plugin.ini
+ name TINYTEXT NULL, -- Name of accommodation type
+ descr TEXT NULL, -- Description of accommodation type
+ short_descr TINYTEXT NULL, -- Short description of accommodation type
+ PRIMARY KEY (id),
+ INDEX(facility_type),
+ INDEX(name(20))
+);
+
+----
+
+-- Accommodations
+CREATE TABLE {prefix}accommodations (
+ id INT NOT NULL AUTO_INCREMENT,
+ active BOOLEAN NULL, -- Accommodation record is active flag
+ name TINYTEXT NULL, -- Name of the accommodation record
+ accommodation_type INT NULL, -- Pointer to Accommodation type in accommodation_types table
+ descr TEXT NULL, -- Description of accommodation
+ short_descr TINYTEXT NULL, -- Short description of accommodation
+ url TINYTEXT NULL, -- URL for info regarding this accommodation
+ notes TEXT NULL, -- Notes regarding this accommodation - Not displayed on front-end
+ create_time TIMESTAMP NULL, -- Date/time this accommondation was created
+ modify_time TIMESTAMP NULL, -- Date/time this accommodation was last updated
+ quant INT NULL, -- Quantity of this accommodation
+ reservation_url TINYTEXT NULL, -- URL to use for making reservaionn
+ reservation_id TINYTEXT NULL, -- ID to use as a reference to this accommodation when making reservations
+ year_round TINYINT(1) NULL, -- Accommodation is available year-round
+ ref_type INT NULL, -- Type of entity this accommodation is associated with
+ ref_dest INT NULL, -- Pointer to the specific entity of ref_type this accommodation is associated with
+ PRIMARY KEY (id),
+ INDEX(accommodation_type),
+ INDEX(name(20)),
+ INDEX(ref_type),
+ INDEX(ref_dest)
+);
+
+----
+
+-- Accounts
+CREATE TABLE {prefix}accounts (
+ id INT NOT NULL AUTO_INCREMENT,
+ member INT NULL,
+ payment_type INT NULL,
+ invoice_delivery INT NULL,
+ PRIMARY KEY (id),
+ INDEX(member)
+);
+
+----
+
+-- Activities
+CREATE TABLE {prefix}activities (
+ id INT NOT NULL AUTO_INCREMENT,
+ active BOOLEAN NULL, -- Activity is active flag
+ activity_type INT NULL, -- ***** NEED TO ADD ACTIVITY_TYPES TABLE AND SUPPORT FOR THAT *****
+ name TINYTEXT NULL, -- Activity name
+ descr TEXT NULL, -- Description of activity
+ short_descr TINYTEXT NULL, -- Shot description of activity
+ phone TINYTEXT NULL, -- Phone number to contact someone regarding this activity
+ url TINYTEXT NULL, -- URL for info regarding this activity
+ notes TEXT NULL, -- Notes regarding this activity - Not displayed on front-end
+ create_time TIMESTAMP NULL, -- Date/time this activity was created
+ modify_time TIMESTAMP NULL, -- Date/time this activity was last updated
+ ref_type INT NULL, -- Type of entity this activity is associated with
+ ref_dest INT NULL, -- Pointer to the specific entity of type ref_type
+ PRIMARY KEY (id),
+ INDEX(activity_type),
+ INDEX(name(20)),
+ INDEX(ref_type),
+ INDEX(ref_dest)
+);
+
+----
+
+-- Amenities
+CREATE TABLE {prefix}amenities (
+ id INT NOT NULL AUTO_INCREMENT,
+ active TINYINT(1) NULL, -- Amenity is active flag
+ name TINYTEXT NULL, -- Name of amenity
+ descr TEXT NULL, -- Description of amenity
+ short_descr TINYTEXT NULL, -- Short description of amenity
+ ref_type INT NULL, -- Type of entity these amenitites are associated with - see plugin.ini ref_type tables
+ uses_value BOOLEAN NULL, -- Flag indicating whether the amenity requires a quantity number
+ PRIMARY KEY (id),
+ INDEX(name(20))
+);
+
+----
+
+-- Amenity Reference - Links a specific amenity to a specific entity of type ref_type
+CREATE TABLE {prefix}amenity_ref (
+ id INT NOT NULL AUTO_INCREMENT,
+ amenity INT NULL, -- Pointer to amenity in amenities table
+ ref_type INT NULL, -- Copy of ref_type from matching ameities table entry - to simplify searches
+ ref_dest INT NULL, -- Pointer to the specific entity of type ref_type
+ amenity_value TINYTEXT NULL, -- Quanity if amenity uses values
+ PRIMARY KEY (id),
+ INDEX(ref_type),
+ INDEX(ref_dest)
+);
+
+----
+
+-- Member Cateogries - used with member information records
+CREATE TABLE {prefix}categories (
+ id INT NOT NULL AUTO_INCREMENT,
+ name TINYTEXT NULL, -- Name of this category
+ descr TEXT NULL, -- Description of this category
+ short_descr TINYTEXT NULL, -- Short description of this category
+ parent INT NULL, -- Pointer to parent category in this table - if there is one
+ PRIMARY KEY (id)
+);
+
+----
+
+-- Mapping of categories to speific member information records
+CREATE TABLE {prefix}category_member_info (
+ id INT NOT NULL AUTO_INCREMENT,
+ category INT NULL, -- Pointer to category in categories table
+ member_info INT NULL, -- Pointer to member infomation record
+ PRIMARY KEY (id),
+ CONSTRAINT {prefix}categories_fk_1
+ FOREIGN KEY (category)
+ REFERENCES {prefix}categories (id)
+ ON DELETE CASCADE,
+ INDEX(category),
+ INDEX(member_info)
+);
+
+----
+
+-- Cities
+CREATE TABLE {prefix}cities (
+ id INT NOT NULL AUTO_INCREMENT,
+ name TINYTEXT NULL, -- Name of city
+ PRIMARY KEY (id)
+);
+
+----
+
+-- Contacts - used by various entities
+CREATE TABLE {prefix}contacts (
+ id INT NOT NULL AUTO_INCREMENT,
+ active BOOLEAN NULL, -- Contact is active flag
+ access INT NULL, -- Access type - See access table in plugin.ini
+ fname TINYTEXT NULL, -- First name of contact
+ lname TINYTEXT NULL, -- Last name of contact
+ contact_type INT NULL, -- Contact type - see contact_type table (individual, role, ...)
+ contact_role INT NULL, -- Contact WordPress user Role
+ org TINYTEXT NULL, -- Organization name
+ title TINYTEXT NULL, -- Title/Position
+ descr TEXT NULL, -- Description of position/responsibilities - Displayed
+ image TINYTEXT NULL, -- Image
+ addr1 TINYTEXT NULL, -- Address line 1 - Address is for contact, not necessarily for organization
+ addr2 TINYTEXT NULL, -- Address line 2
+ city INT NULL, -- Pointer to city in cities table
+ state TINYTEXT NULL, -- Two character state code - matches states.ini entries
+ country TINYTEXT NULL, -- Two character country code - matches countries.ini entries
+ zip TINYTEXT NULL, -- ZIP/Postal Code
+ lat FLOAT NULL, -- Latitude of contact location
+ lon FLOAT NULL, -- Longitude of contact location
+ url TINYTEXT NULL, -- URL to information regarding this contact
+ office_phone TINYTEXT NULL, -- Office phone number
+ home_phone TINYTEXT NULL, -- Home phone number - or after-hours phone number
+ mobile_phone TINYTEXT NULL, -- Mobile phone number
+ alt_phone TINYTEXT NULL, -- An alternate phone number
+ fax TINYTEXT NULL, -- FAX number (do people still use these?)
+ email TINYTEXT NULL, -- E-Mail address
+ alt_email TINYTEXT NULL, -- Alternate E-Mail address - Also used to log-in
+ username TINYTEXT NULL, -- Optional username to use for login
+ password TINYTEXT NULL, -- Encrypted password
+ notes TEXT NULL, -- Notes - Not displayed on front-end
+ create_time TIMESTAMP NULL, -- Create date/time
+ modify_time TIMESTAMP NULL, -- Last modified date/time
+ ref_type INT NULL, -- Type of entity this contact is associated with
+ ref_dest INT NULL, -- Pointer to the specific entity of ref_type this contact is associated with
+ PRIMARY KEY (id),
+ INDEX(fname(20)),
+ INDEX(lname(20)),
+ INDEX(city),
+ INDEX(zip(10)),
+ INDEX(lat),
+ INDEX(lon),
+ INDEX(email(20))
+);
+
+----
+
+-- Facilities - Facilities are separate functional units of a member, either physically or operationally
+-- For example, separate facilities could be individual properties (hotels, motels) or could be operationally
+-- separate hotel and restaurant at the same location. A facility is an entity under a member "location".
+CREATE TABLE {prefix}facilities (
+ id INT NOT NULL AUTO_INCREMENT,
+ active BOOLEAN NULL, -- Facility is active flag
+ facility_type INT NULL, -- Facility type - see plugin.ini facility type
+ location INT NULL, -- Pointer to one of the member's locations - see locations table
+ name TINYTEXT NULL, -- Name of this facility
+ descr TEXT NULL, -- Description
+ short_descr TINYTEXT NULL, -- Short description
+ addr1 TINYTEXT NULL, -- Address line 1
+ addr2 TINYTEXT NULL, -- Address line 2
+ city INT NULL, -- Pointer to city in cities table
+ state TINYTEXT NULL, -- Two character state code - matches states.ini entries
+ country TINYTEXT NULL, -- Two character country code - matches countries.ini entries
+ zip TINYTEXT NULL, -- ZIP/Postal code
+ lat FLOAT NULL, -- Latitude of facility
+ lon FLOAT NULL, -- Longitude of facility
+ phone TINYTEXT NULL, -- Primary phone number
+ toll_free TINYTEXT NULL, -- Toll Free phone number
+ url TINYTEXT NULL, -- URL for information specifically regarding this facility
+ logo TINYTEXT NULL, -- Logo
+ notes TEXT NULL, -- Notes - Not displayed on front-end
+ create_time TIMESTAMP NULL, -- Create date/time
+ modify_time TIMESTAMP NULL, -- Last modified date/time
+ PRIMARY KEY (id),
+ INDEX(name(20)),
+ INDEX(city),
+ INDEX(zip(10)),
+ INDEX(lat),
+ INDEX(lon)
+);
+
+----
+
+-- Donwloadable Files - files are stored under /wp-content/uploads/glm-member-db/files/
+CREATE TABLE {prefix}files (
+ id INT NOT NULL AUTO_INCREMENT,
+ name TINYTEXT NULL, -- Name of this file
+ file_name TINYTEXT NULL, -- Physical file name for this file
+ descr TEXT NULL, -- Description
+ short_descr TINYTEXT NULL, -- Short descroption
+ size INT NULL, -- Download size of this file
+ pending BOOLEAN NULL, -- File is pending review flag
+ create_date DATE NULL, -- Date file was uploaded
+ ref_type INT NULL, -- Type of entity this file is associated with
+ ref_dest INT NULL, -- Pointer to the specific entity of ref_type this file is associated with
+ PRIMARY KEY (id),
+ INDEX(name(20)),
+ INDEX(file_name(20)),
+ INDEX(ref_type),
+ INDEX(ref_dest)
+);
+
+----
+
+-- Detail on golf courses
+CREATE TABLE {prefix}golf (
+ id INT NOT NULL AUTO_INCREMENT,
+ active BOOLEAN NULL, -- This golf course is active flag
+ name TINYTEXT NULL, -- Name of Golf course
+ descr TEXT NULL, -- Description
+ short_descr TINYTEXT NULL, -- Short Description
+ rating TINYTEXT NULL, -- Rating
+ par TINYTEXT NULL, -- Par
+ yardage TINYTEXT NULL, -- Total yardage
+ slope TINYTEXT NULL, -- Slope rating
+ walking TINYINT(1) NULL, -- Walking course
+ holes INT NULL, -- Number of holes
+ reservation_url TINYTEXT NULL, -- URL for making reservations for this course
+ ref_type INT NULL, -- Type of entity this golf course is associated with
+ ref_dest INT NULL, -- Pointer to the specific entity of ref_type this golf course is associated with
+ PRIMARY KEY (id),
+ INDEX(name(20)),
+ INDEX(ref_type),
+ INDEX(ref_dest)
+);
+
+----
+
+-- Images - Images are stored under /wp-content/uploads/glm-member-db/images/{size}/
+CREATE TABLE {prefix}images (
+ id INT NOT NULL AUTO_INCREMENT,
+ name TINYTEXT NULL, -- Original name of the image - might be URL if copied via HTTP
+ status TINYINT(1) NULL, -- Display/Use status - See plugin.ini status table
+ selected_image BOOLEAN NULL, -- A single special image in the current gallery for this entity
+ featured_image BOOLEAN null, -- Image is a member of a group of featured images
+ file_name TINYTEXT NULL, -- Stored file name for the image
+ descr TEXT NULL, -- Description
+ caption TINYTEXT NULL, -- Caption for the image
+ position INT NULL, -- Numeric position for sequence of display
+ ref_type INT NULL, -- Type of entity this image is associated with
+ ref_dest INT NULL, -- Pointer to the specific entity of ref_type this image is associated with
+ PRIMARY KEY (id),
+ INDEX(name(20)),
+ INDEX(file_name(20)),
+ INDEX(ref_type),
+ INDEX(ref_dest)
+);
+
+----
+
+-- Member locations - Locations are physically separate campuses where facilities exist
+CREATE TABLE {prefix}locations (
+ id INT NOT NULL AUTO_INCREMENT,
+ active BOOLEAN NULL, -- This location is active flag
+ member INT NULL, -- Pointer to main member record
+ member_info INT NULL, -- Pointer to associated member info record
+ name TINYTEXT NULL, -- Name of location
+ descr TEXT NULL, -- Description
+ short_descr TINYTEXT NULL, -- Short Description
+ addr1 TINYTEXT NULL, -- Address line 1 - Main address for this location
+ addr2 TINYTEXT NULL, -- Address line 2
+ city INT NULL, -- Pointer to city in cities table
+ state TINYTEXT NULL, -- Two character state code - matches states.ini entries
+ country TINYTEXT NULL, -- Two character country code - matches countries.ini entries
+ zip TINYTEXT NULL, -- ZIP/Postal code
+ lat FLOAT NULL, -- Latitude of location
+ lon FLOAT NULL, -- Longitude of location
+ region INT NULL, -- Pointer to region where location exists
+ phone TINYTEXT NULL, -- Primary phone number
+ toll_free TINYTEXT NULL, -- Toll Free phone number
+ url TINYTEXT NULL, -- URL for information regarding this location
+ logo TINYTEXT NULL, -- Logo
+ notes TEXT NULL, -- Notes - not displayed on front-end
+ create_time TIMESTAMP NULL, -- Create date/time
+ modify_time TIMESTAMP NULL, -- Last Update date/time
+ PRIMARY KEY (id),
+ INDEX(name(20)),
+ INDEX(city),
+ INDEX(zip(10)),
+ INDEX(lat),
+ INDEX(lon),
+ INDEX(region)
+);
+
+----
+
+-- Meals offered by a restaurant
+CREATE TABLE {prefix}meals (
+ id INT NOT NULL AUTO_INCREMENT,
+ active BOOLEAN NULL, -- Meal is active flag
+ name TINYTEXT NULL, -- Name of this meal (typically Breakfast, Lunch, Dinner, Brunch, ...)
+ descr TEXT NULL, -- Description of the meal
+ short_descr TINYTEXT NULL, -- Short description
+ menu TEXT NULL, -- Text menu for this meal
+ menu_file TINYTEXT NULL, -- File name of downloadable menu file (PDF, etc.)
+ daily BOOLEAN NULL, -- Flag indicating if meal is available daily
+ daily_start_time TIME NULL, -- Daily meal - Time of day this meal starts
+ daily_end_time TIME NULL, -- Daily meal - Time of day this meal ends
+ daily_res_req BOOLEAN NULL, -- Daily meal - Reservations requested
+ sunday BOOLEAN NULL, -- Flag indicating if meal is available Sunday
+ sun_menu TEXT NULL, -- Optional menu text for Sunday
+ sun_start_time TIME NULL, -- Sunday - Time of day this meal starts
+ sun_end_time TIME NULL, -- Sunday - Time of day this meal ends
+ sun_res_req BOOLEAN NULL, -- Sunday - Reservations requested
+ monday BOOLEAN NULL, -- Flag indicating if meal is available Monday
+ mon_menu TEXT NULL, -- Optional menu text for Monday
+ mon_start_time TIME NULL, -- Monday - Time of day this meal starts
+ mon_end_time TIME NULL, -- Monday - Time of day this meal ends
+ mon_res_req BOOLEAN NULL, -- Monday - Reservations requested
+ tuesday BOOLEAN NULL, -- Flag indicating if meal is available Tuesday
+ tue_menu TEXT NULL, -- Optional menu text for Tuesday
+ tue_start_time TIME NULL, -- Tuesday - Time of day this meal starts
+ tue_end_time TIME NULL, -- Tuesday - Time of day this meal ends
+ tue_res_req BOOLEAN NULL, -- Tuesday - Reservations requested
+ wednesday BOOLEAN NULL, -- Flag indicating if meal is available Wednesday
+ wed_menu TEXT NULL, -- Optional menu text for Wednesday
+ wed_start_time TIME NULL, -- Wednesday - Time of day this meal starts
+ wed_end_time TIME NULL, -- Wednesday - Time of day this meal ends
+ wed_res_req BOOLEAN NULL, -- Wednesday - Reservations requested
+ thursday BOOLEAN NULL, -- Flag indicating if meal is available Thursday
+ thu_menu TEXT NULL, -- Optional menu text for Thursday
+ thu_start_time TIME NULL, -- Thursday - Time of day this meal starts
+ thu_end_time TIME NULL, -- Thursday - Time of day this meal ends
+ thu_res_req BOOLEAN NULL, -- Thursday - Reservations requested
+ friday BOOLEAN NULL, -- Flag indicating if meal is available Friday
+ fri_menu TEXT NULL, -- Optional menu text for Friday
+ fri_start_time TIME NULL, -- Friday - Time of day this meal starts
+ fri_end_time TIME NULL, -- Friday - Time of day this meal ends
+ fri_res_req BOOLEAN NULL, -- Friday - Reservations requested
+ saturday BOOLEAN NULL, -- Flag indicating if meal is available Saturday
+ sat_menu TEXT NULL, -- Optional menu text for Saturday
+ sat_start_time TIME NULL, -- Saturday - Time of day this meal starts
+ sat_end_time TIME NULL, -- Saturday - Time of day this meal ends
+ sat_res_req BOOLEAN NULL, -- Saturday - Reservations requested
+ restaurant INT NULL, -- Pointer to restaurant that has this meal
+ PRIMARY KEY (id),
+ INDEX(name(20)),
+ INDEX(restaurant)
+);
+
+----
+
+-- Primary member records - One for each member
+CREATE TABLE {prefix}members (
+ id INT NOT NULL AUTO_INCREMENT,
+ access INT NULL, -- Access type - See access table in plugin.ini
+ member_type INT NULL, -- Pointer to member type in member_type table
+ created DATE NULL, -- Date member record was created
+ name TINYTEXT NULL, -- Member name
+ member_slug TINYTEXT NULL, -- Member name slug for canonical URLs (lowercase, "-" for spaces, no punctuation)
+ PRIMARY KEY (id),
+ INDEX(name(20)),
+ INDEX(member_slug(20)),
+ INDEX(created)
+);
+
+----
+
+-- Member information version record - May be multiples per member - Only one with stauts "Active" for a distinct date range
+CREATE TABLE {prefix}member_info (
+ id INT NOT NULL AUTO_INCREMENT,
+ member INT NULL, -- Pointer to member record in table members
+ member_name TINYTEXT NULL, -- Copy of member name from members table entry for fast reference
+ status INT NULL, -- Status of this member information record - See plugin.ini status table
+ reference_name TINYTEXT NULL, -- Refernce name for this member information record - Not displayed on front-end
+ descr TEXT NULL, -- Description
+ short_descr TEXT NULL, -- Short description
+ addr1 TINYTEXT NULL, -- Address line 1 - Main member address (main location) or
+ addr2 TINYTEXT NULL, -- Address line 2
+ city INT NULL, -- Pointer to City in cities table
+ state TINYTEXT NULL, -- Two character state code - matches states.ini entries
+ country TINYTEXT NULL, -- Two character country code - matches countries.ini entries
+ zip TINYTEXT NULL, -- ZIP/Postal code
+ lat FLOAT NULL, -- Latitude of member's location
+ lon FLOAT NULL, -- Longitude of member's location
+ region INT NULL, -- Pointer to entry in regions table
+ phone TINYTEXT NULL, -- Primary phone number
+ toll_free TINYTEXT NULL, -- Toll Free phone number
+ url TINYTEXT NULL, -- URL with information about this member
+ email TINYTEXT NULL, -- Main E-Mail address for this member
+ logo TINYTEXT NULL, -- Member logo
+ cc_type INT NULL, -- Bitmap of credit card types accepted - See credit_card array in plugin.ini
+ notes TEXT NULL, -- General notes - Not displayed in front-end
+ create_time TIMESTAMP NULL, -- Create date/time
+ modify_time TIMESTAMP NULL, -- Last update date/time
+ PRIMARY KEY (id),
+ INDEX(status),
+ INDEX(city),
+ INDEX(zip(10)),
+ INDEX(lat),
+ INDEX(lon),
+ INDEX(region)
+);
+
+----
+
+-- Member type - Can be used to assign members to different "classes" of membership (i.e. Full, Associate, Premium)
+-- Mostly for internal use by the member organization, but could be displayed - Consider a short_description if they are.
+CREATE TABLE {prefix}member_type (
+ id INT NOT NULL AUTO_INCREMENT,
+ name TINYTEXT NULL, -- Name of member type
+ descr TINYTEXT NULL, -- Description of member type
+ PRIMARY KEY (id)
+);
+
+----
+
+-- Regions - Used to segment members into various geographical regions - can be cities, counties, or other logical regions
+CREATE TABLE {prefix}regions (
+ id INT NOT NULL AUTO_INCREMENT,
+ name TINYTEXT NULL, -- Name of region
+ descr TEXT NULL, -- Descrption of region
+ short_descr TINYTEXT NULL, -- Short descroption of region
+ PRIMARY KEY (id)
+);
+
+----
+
+-- Resturaunt Types - Various general types of restaurants (i.e. Fast Food, Ethnic, Fine food, ...)
+CREATE TABLE {prefix}restaurant_types (
+ id INT NOT NULL AUTO_INCREMENT,
+ name TINYTEXT NULL, -- Name of restaurant type
+ descr TEXT NULL, -- Description
+ short_descr TINYTEXT NULL, -- Short Description
+ PRIMARY KEY (id),
+ INDEX(name(20))
+);
+
+----
+
+-- Restaurants
+CREATE TABLE {prefix}restaurants (
+ id INT NOT NULL AUTO_INCREMENT,
+ active BOOLEAN NULL, -- This restaurant is active flag
+ name TINYTEXT NULL, -- Name of restaurant
+ restaurant_type INT NULL, -- Pointer to restaurant_types table entry
+ descr TEXT NULL, -- Description
+ short_descr TINYTEXT NULL, -- Short Description
+ url TINYTEXT NULL, -- URL of Web page about this restaurant
+ reservation_url TINYTEXT NULL, -- Reservations URL
+ phone TINYTEXT NULL, -- Phone number / reservations number
+ hours_descr TINYTEXT NULL, -- Description of restaurant hours
+ alcohol BOOLEAN NULL, -- Flag indicating whether restaurant serves alcohol
+ non_smoking BOOLEAN NULL, -- Flag indicating whether restaurant is non-smoking only
+ notes TEXT NULL, -- General notes
+ ref_type INT NULL, -- Type of entity this restaurant is associated with
+ ref_dest INT NULL, -- Pointer to the specific entity of ref_type this restaurant is associated with
+ PRIMARY KEY (id),
+ INDEX(restaurant_type),
+ INDEX(name(20)),
+ INDEX(ref_type),
+ INDEX(ref_dest)
+);
+
+----
+
+-- General settings available on Management page in admin - Only 1 entry in this table
+-- Items in this table should be all self-explanatory
+CREATE TABLE {prefix}settings_general (
+ id INT NOT NULL AUTO_INCREMENT,
+ admin_debug BOOLEAN DEFAULT '1',
+ admin_debug_verbose BOOLEAN DEFAULT '0',
+ front_debug BOOLEAN DEFAULT '0',
+ front_debug_verbose BOOLEAN DEFAULT '0',
+ google_maps_api_key TINYTEXT DEFAULT '',
+ maps_default_lat FLOAT DEFAULT '45.3749',
+ maps_default_lon FLOAT DEFAULT '-84.9592',
+ maps_default_zoom INTEGER DEFAULT '10',
+ time_zone TINYTEXT DEFAULT NULL,
+ canonical_member_page TINYTEXT DEFAULT NULL,
+ list_show_map BOOLEAN DEFAULT '1',
+ list_show_list BOOLEAN DEFAULT '1',
+ list_show_search BOOLEAN DEFAULT '1',
+ list_show_search_text BOOLEAN DEFAULT '1',
+ list_show_search_category BOOLEAN DEFAULT '1',
+ list_show_search_amenities BOOLEAN DEFAULT '1',
+ list_show_search_alpha BOOLEAN DEFAULT '1',
+ list_show_detail_link BOOLEAN DEFAULT '1',
+ list_show_logo BOOLEAN DEFAULT '1',
+ list_logo_size TINYTEXT NULL,
+ list_show_address BOOLEAN DEFAULT '1',
+ list_show_street BOOLEAN DEFAULT '1',
+ list_show_citystatezip BOOLEAN DEFAULT '1',
+ list_show_country BOOLEAN DEFAULT '1',
+ list_show_region BOOLEAN DEFAULT '1',
+ list_show_descr BOOLEAN DEFAULT '0',
+ list_show_short_descr BOOLEAN DEFAULT '1',
+ list_show_phone BOOLEAN DEFAULT '1',
+ list_show_tollfree BOOLEAN DEFAULT '1',
+ list_show_url BOOLEAN DEFAULT '1',
+ list_show_url_newtarget BOOLEAN DEFAULT '1',
+ list_show_email BOOLEAN DEFAULT '1',
+ list_show_categories BOOLEAN DEFAULT '1',
+ list_show_creditcards BOOLEAN DEFAULT '1',
+ list_show_amenities BOOLEAN DEFAULT '0',
+ list_map_show_detaillink BOOLEAN DEFAULT '1',
+ list_map_show_logo BOOLEAN DEFAULT '0',
+ list_map_logo_size TINYTEXT NULL,
+ list_map_show_descr BOOLEAN DEFAULT '0',
+ list_map_show_short_descr BOOLEAN DEFAULT '1',
+ list_map_show_address BOOLEAN DEFAULT '1',
+ list_map_show_street BOOLEAN DEFAULT '1',
+ list_map_show_citystatezip BOOLEAN DEFAULT '1',
+ list_map_show_country BOOLEAN DEFAULT '1',
+ list_map_show_region BOOLEAN DEFAULT '1',
+ list_map_show_phone BOOLEAN DEFAULT '1',
+ list_map_show_tollfree BOOLEAN DEFAULT '1',
+ list_map_show_url BOOLEAN DEFAULT '1',
+ list_map_show_url_newtarget BOOLEAN DEFAULT '1',
+ list_map_show_email BOOLEAN DEFAULT '1',
+ list_map_show_categories BOOLEAN DEFAULT '0',
+ list_map_show_creditcards BOOLEAN DEFAULT '0',
+ list_map_show_amenities BOOLEAN DEFAULT '0',
+ detail_show_map BOOLEAN DEFAULT '1',
+ detail_show_directions BOOLEAN DEFAULT '1',
+ detail_show_logo BOOLEAN DEFAULT '1',
+ detail_logo_size TINYTEXT NULL,
+ detail_show_descr BOOLEAN DEFAULT '1',
+ detail_show_short_descr BOOLEAN DEFAULT '0',
+ detail_show_address BOOLEAN DEFAULT '1',
+ detail_show_street BOOLEAN DEFAULT '1',
+ detail_show_citystatezip BOOLEAN DEFAULT '1',
+ detail_show_country BOOLEAN DEFAULT '1',
+ detail_show_region BOOLEAN DEFAULT '1',
+ detail_show_phone BOOLEAN DEFAULT '1',
+ detail_show_tollfree BOOLEAN DEFAULT '1',
+ detail_show_url BOOLEAN DEFAULT '1',
+ detail_show_url_newtarget BOOLEAN DEFAULT '1',
+ detail_show_email BOOLEAN DEFAULT '1',
+ detail_show_categories BOOLEAN DEFAULT '1',
+ detail_show_creditcards BOOLEAN DEFAULT '1',
+ detail_show_amenities BOOLEAN DEFAULT '1',
+ detail_show_imagegallery BOOLEAN DEFAULT '1',
+ detail_show_coupons BOOLEAN DEFAULT '0',
+ detail_show_packages BOOLEAN DEFAULT '0',
+ detail_map_show_logo BOOLEAN DEFAULT '0',
+ detail_map_logo_size TINYTEXT NULL,
+ detail_map_show_descr BOOLEAN DEFAULT '0',
+ detail_map_show_short_descr BOOLEAN DEFAULT '1',
+ detail_map_show_address BOOLEAN DEFAULT '1',
+ detail_map_show_street BOOLEAN DEFAULT '1',
+ detail_map_show_citystatezip BOOLEAN DEFAULT '1',
+ detail_map_show_country BOOLEAN DEFAULT '1',
+ detail_map_show_region BOOLEAN DEFAULT '1',
+ detail_map_show_phone BOOLEAN DEFAULT '1',
+ detail_map_show_tollfree BOOLEAN DEFAULT '1',
+ detail_map_show_url BOOLEAN DEFAULT '1',
+ detail_map_show_url_newtarget BOOLEAN DEFAULT '1',
+ detail_map_show_email BOOLEAN DEFAULT '1',
+ detail_map_show_categories BOOLEAN DEFAULT '0',
+ detail_map_show_creditcards BOOLEAN DEFAULT '0',
+ detail_map_show_amenities BOOLEAN DEFAULT '0',
+ PRIMARY KEY (id)
+);
+
+----
+
+-- Set default entry
+INSERT INTO {prefix}settings_general
+ ( id, time_zone, canonical_member_page )
+ VALUES
+ ( 1, 'America/Detroit', 'member-detail' )
+;
+
+----
+
+-- Terms used in site modifiable on Management page in admin - Only 1 entry in this table
+-- Tems in this table should be all self-explanatory
+CREATE TABLE {prefix}settings_terms (
+ id INT NOT NULL AUTO_INCREMENT,
+ term_admin_menu_members TINYTEXT NULL,
+ term_admin_menu_member_list TINYTEXT NULL,
+ term_admin_menu_member TINYTEXT NULL,
+ term_admin_menu_configure TINYTEXT NULL,
+ term_admin_menu_settings TINYTEXT NULL,
+ term_admin_menu_shortcodes TINYTEXT NULL,
+ term_admin_menu_members_dashboard TINYTEXT NULL,
+ term_admin_menu_members_list TINYTEXT NULL,
+ term_admin_menu_members_reports TINYTEXT NULL,
+ term_admin_menu_member_dashboard TINYTEXT NULL,
+ term_admin_menu_member_info TINYTEXT NULL,
+ term_admin_menu_member_locations TINYTEXT NULL,
+ term_admin_menu_member_facilities TINYTEXT NULL,
+ term_admin_menu_member_attractions TINYTEXT NULL,
+ term_admin_menu_member_contacts TINYTEXT NULL,
+ term_admin_menu_configure_member_types TINYTEXT NULL,
+ term_admin_menu_configure_member_cats TINYTEXT NULL,
+ term_admin_menu_configure_accom_types TINYTEXT NULL,
+ term_admin_menu_configure_amenities TINYTEXT NULL,
+ term_admin_menu_configure_cities TINYTEXT NULL,
+ term_admin_menu_configure_regions TINYTEXT NULL,
+ term_admin_menu_settings_general TINYTEXT NULL,
+ term_admin_menu_settings_terms TINYTEXT NULL,
+ term_admin_menu_settings_development TINYTEXT NULL,
+ term_member TINYTEXT NULL,
+ term_member_cap TINYTEXT NULL,
+ term_member_plur TINYTEXT NULL,
+ term_member_plur_cap TINYTEXT NULL,
+ term_location TINYTEXT NULL,
+ term_location_cap TINYTEXT NULL,
+ term_location_plur TINYTEXT NULL,
+ term_location_plur_cap TINYTEXT NULL,
+ term_facility TINYTEXT NULL,
+ term_facility_cap TINYTEXT NULL,
+ term_facility_plur TINYTEXT NULL,
+ term_facility_plur_cap TINYTEXT NULL,
+ term_attraction TINYTEXT NULL,
+ term_attraction_cap TINYTEXT NULL,
+ term_attraction_plur TINYTEXT NULL,
+ term_attraction_plur_cap TINYTEXT NULL,
+ term_contact TINYTEXT NULL,
+ term_contact_cap TINYTEXT NULL,
+ term_contact_plur TINYTEXT NULL,
+ term_contact_plur_cap TINYTEXT NULL,
+ PRIMARY KEY (id)
+);
+
+----
+
+-- Default terms entry
+INSERT INTO {prefix}settings_terms
+ (
+ id,
+ term_admin_menu_members,
+ term_admin_menu_member_list,
+ term_admin_menu_member,
+ term_admin_menu_configure,
+ term_admin_menu_settings,
+ term_admin_menu_shortcodes,
+ term_admin_menu_members_dashboard,
+ term_admin_menu_members_list,
+ term_admin_menu_members_reports,
+ term_admin_menu_member_dashboard,
+ term_admin_menu_member_info,
+ term_admin_menu_member_locations,
+ term_admin_menu_member_facilities,
+ term_admin_menu_member_attractions,
+ term_admin_menu_member_contacts,
+ term_admin_menu_configure_member_types,
+ term_admin_menu_configure_member_cats,
+ term_admin_menu_configure_accom_types,
+ term_admin_menu_configure_amenities,
+ term_admin_menu_configure_cities,
+ term_admin_menu_configure_regions,
+ term_admin_menu_settings_general,
+ term_admin_menu_settings_terms,
+ term_admin_menu_settings_development,
+ term_member,
+ term_member_cap,
+ term_member_plur,
+ term_member_plur_cap,
+ term_location,
+ term_location_cap,
+ term_location_plur,
+ term_location_plur_cap,
+ term_facility,
+ term_facility_cap,
+ term_facility_plur,
+ term_facility_plur_cap,
+ term_attraction,
+ term_attraction_cap,
+ term_attraction_plur,
+ term_attraction_plur_cap,
+ term_contact,
+ term_contact_cap,
+ term_contact_plur,
+ term_contact_plur_cap
+ )
+ VALUES
+ (
+ 1,
+ 'Members',
+ 'Member',
+ 'Member',
+ 'Configure',
+ 'Management',
+ 'Shortcodes',
+ 'Dashboard',
+ 'Member List',
+ 'Reports',
+ 'Member Dashboard',
+ 'Member Info',
+ 'Locations',
+ 'Facilities',
+ 'Attractions',
+ 'Contacts',
+ 'Member Types',
+ 'Member Categories',
+ 'Accommodation Types',
+ 'Amenities',
+ 'Cities',
+ 'Regions',
+ 'General Settings',
+ 'Terms & Phrases',
+ 'Development',
+ 'member',
+ 'Member',
+ 'members',
+ 'Members',
+ 'location',
+ 'Location',
+ 'locations',
+ 'Locations',
+ 'facility',
+ 'Facility',
+ 'facilities',
+ 'Facilities',
+ 'attraction',
+ 'Attraction',
+ 'attractions',
+ 'Attractions',
+ 'contact',
+ 'Contact',
+ 'contacts',
+ 'Contacts'
+ )
+;
+
+----
+
+-- Social Media types (i.e. Facebook, Twitter, ...)
+CREATE TABLE {prefix}social_media (
+ id INT NOT NULL AUTO_INCREMENT,
+ name TINYTEXT NULL, -- Name of this social media service
+ descr TEXT NULL, -- Description
+ short_descr TINYTEXT NULL, -- Short Description
+ PRIMARY KEY (id)
+);
+
+----
+
+-- Social media to entity cross-reference table
+CREATE TABLE {prefix}social_media_ref (
+ id INT NOT NULL AUTO_INCREMENT,
+ ref_type INT NULL, -- Type of entity this entry is associated with
+ ref_dest INT NULL, -- Pointer to the specific entity of ref_type
+ social_media INT NULL, -- Pointer to entry in social_media table
+ url TINYTEXT NULL, -- URL to this social media service
+ PRIMARY KEY (id),
+ INDEX(ref_type),
+ INDEX(ref_dest),
+ INDEX(social_media)
+);
--- /dev/null
+-- Gaslight Media Members Database
+-- File Created: 12/09/14 15:27:15
+-- Database Version: 1.0.43
+-- Database Deletion Script
+-- Note: Tables with DELETE CASCADE must appear before referenced table
+
+DROP TABLE IF EXISTS
+ {prefix}accommodation_types,
+ {prefix}accommodations,
+ {prefix}accounts,
+ {prefix}activties,
+ {prefix}amenities,
+ {prefix}amenity_ref,
+ {prefix}category_member_info,
+ {prefix}categories,
+ {prefix}cities,
+ {prefix}contacts,
+ {prefix}facilities,
+ {prefix}files,
+ {prefix}golf,
+ {prefix}images,
+ {prefix}locations,
+ {prefix}meals,
+ {prefix}members,
+ {prefix}member_info,
+ {prefix}member_type,
+ {prefix}regions,
+ {prefix}restaurant_types,
+ {prefix}restaurants,
+ {prefix}settings_general,
+ {prefix}settings_terms,
+ {prefix}social_media,
+ {prefix}social_media_ref
+;
+
--- /dev/null
+<?php
+/*
+ * Gaslight Media Members Database
+ *
+ * Database Update Script for version 1.0.28
+ */
+
+// Update member_info records with member name slug for URLs
+$infoRecords = $this->wpdb->get_results('SELECT id, member_name FROM '.GLM_MEMBERS_PLUGIN_DB_PREFIX.'member_info;', ARRAY_A);
+if ($infoRecords && count($infoRecords) > 0) {
+ foreach ($infoRecords as $i) {
+ $slug = sanitize_title($i['member_name']);
+ $this->wpdb->update(
+ GLM_MEMBERS_PLUGIN_DB_PREFIX.'member_info',
+ array(
+ 'member_slug' => $slug
+ ),
+ array( 'id' => $i['id'] ),
+ array( '%s' ),
+ array( '%d')
+ );
+ }
+}
+
+?>
\ No newline at end of file
--- /dev/null
+-- Gaslight Media Members Database
+-- File Created: 12/09/14 15:27:15
+-- Database Version: 1.0.28
+-- Database Update From Previous Version Script
+--
+-- To permit each query below to be executed separately,
+-- all queries must be separated by a line with four dashses
+
+
+ALTER TABLE {prefix}member_info ADD COLUMN member_slug TINYTEXT;
+
+----
+
+ALTER TABLE {prefix}settings_general ADD COLUMN list_show_email BOOLEAN DEFAULT true;
+
+----
+
+ALTER TABLE {prefix}settings_general ADD COLUMN list_map_show_email BOOLEAN DEFAULT true;
+
+----
+
+ALTER TABLE {prefix}settings_general ADD COLUMN maps_default_zoom integer DEFAULT 10;
+
+----
+
+ALTER TABLE {prefix}settings_general ADD COLUMN canonical_member_page TINYTEXT;
+
+----
+
+UPDATE {prefix}settings_general SET canonical_member_page = 'member';
+
+----
+
+ALTER TABLE {prefix}settings_general ADD COLUMN detail_show_email BOOLEAN DEFAULT true;
+
+----
+
+ALTER TABLE {prefix}settings_general ADD COLUMN detail_map_show_email BOOLEAN DEFAULT true;
+
+----
+
+ALTER TABLE {prefix}settings_general ADD COLUMN detail_show_coupons BOOLEAN DEFAULT false;
+
+----
+
+ALTER TABLE {prefix}settings_general ADD COLUMN detail_show_packages BOOLEAN DEFAULT false;
+
--- /dev/null
+<?php
+/*
+ * Gaslight Media Members Database
+ *
+ * Database Update Script for version 1.0.28
+ */
+
+// Update member_info records with member name slug for URLs
+$memberRecords = $this->wpdb->get_results('SELECT id, name FROM '.GLM_MEMBERS_PLUGIN_DB_PREFIX.'members;', ARRAY_A);
+if ($memberRecords && count($memberRecords) > 0) {
+ foreach ($memberRecords as $m) {
+ $slug = sanitize_title($m['name']);
+ $this->wpdb->update(
+ GLM_MEMBERS_PLUGIN_DB_PREFIX.'members',
+ array(
+ 'member_slug' => $slug
+ ),
+ array( 'id' => $m['id'] ),
+ array( '%s' ),
+ array( '%d')
+ );
+ }
+}
+
+?>
\ No newline at end of file
--- /dev/null
+-- Gaslight Media Members Database
+-- File Created: 12/09/14 15:27:15
+-- Database Version: 1.0.28
+-- Database Update From Previous Version Script
+--
+-- To permit each query below to be executed separately,
+-- all queries must be separated by a line with four dashses
+
+ALTER TABLE {prefix}members ADD COLUMN member_slug TINYTEXT;
+
+----
+
+ALTER TABLE {prefix}member_info DROP COLUMN member_slug;
+
+----
+
+ALTER TABLE {prefix}member_info MODIFY short_descr TEXT;
+
--- /dev/null
+-- Gaslight Media Members Database
+-- File Created: 12/09/14 15:27:15
+-- Database Version: 1.0.28
+-- Database Update From Previous Version Script
+--
+-- To permit each query below to be executed separately,
+-- all queries must be separated by a line with four dashses
+
+RENAME TABLE {prefix}activties to {prefix}activities;
+
+----
+
+ALTER TABLE {prefix}contacts ADD COLUMN username TINYTEXT;
+
+----
+
+ALTER TABLE {prefix}activities DROP COLUMN facility;
+
+----
+
+ALTER TABLE {prefix}accommodations ADD COLUMN url TINYTEXT;
+
+----
+
+ALTER TABLE {prefix}accommodations ADD COLUMN notes TEXT;
+
+----
+
+ALTER TABLE {prefix}accommodations ADD COLUMN create_time TIMESTAMP;
+
+----
+
+ALTER TABLE {prefix}accommodations ADD COLUMN modify_time TIMESTAMP;
+
+----
+
+ALTER TABLE {prefix}contacts MODIFY state TINYTEXT;
+
+----
+
+ALTER TABLE {prefix}contacts MODIFY country TINYTEXT;
+
+----
+
+ALTER TABLE {prefix}contacts DROP COLUMN permissions;
+
+----
+
+ALTER TABLE {prefix}facilities MODIFY state TINYTEXT;
+
+----
+
+ALTER TABLE {prefix}facilities MODIFY country TINYTEXT;
+
+----
+
+ALTER TABLE {prefix}files MODIFY pending BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}locations DROP COLUMN location_type;
+
+----
+
+ALTER TABLE {prefix}locations ADD COLUMN member_info INT;
+
+----
+
+ALTER TABLE {prefix}locations MODIFY state TINYTEXT;
+
+----
+
+ALTER TABLE {prefix}locations MODIFY country TINYTEXT;
+
+----
+
+ALTER TABLE {prefix}meals ADD COLUMN menu_file TINYTEXT;
+
+----
+
+ALTER TABLE {prefix}meals DROP COLUMN special_menu;
+
+----
+
+ALTER TABLE {prefix}meals DROP COLUMN daily_time;
+
+----
+
+ALTER TABLE {prefix}meals ADD COLUMN daily BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY daily_res_req BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY sunday BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY sun_res_req BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY monday BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY tuesday BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY wednesday BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY thursday BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY friday BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY saturday BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY mon_res_req BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY tue_res_req BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY wed_res_req BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY thu_res_req BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY fri_res_req BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals MODIFY sat_res_req BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}meals DROP COLUMN ref_type;
+
+----
+
+ALTER TABLE {prefix}meals DROP COLUMN ref_dest;
+
+----
+
+CREATE INDEX meal_restaurant ON {prefix}meals (restaurant);
+
+----
+
+ALTER TABLE {prefix}restaurant_types DROP COLUMN active;
+
+----
+
+ALTER TABLE {prefix}restaurants DROP COLUMN menu;
+
+----
+
+ALTER TABLE {prefix}restaurants DROP COLUMN special_menu;
+
+----
+
+ALTER TABLE {prefix}restaurants MODIFY alcohol BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}restaurants MODIFY non_smoking BOOLEAN;
+
+----
+
+ALTER TABLE {prefix}contacts ADD COLUMN contact_role INT;
+
+----
+
+ALTER TABLE {prefix}contacts ADD COLUMN access int null;
+
+----
+
+ALTER TABLE {prefix}contacts ADD COLUMN title tinytext null;
+
+----
+
+ALTER TABLE {prefix}contacts ADD COLUMN descr text null;
+
+----
+
+ALTER TABLE {prefix}contacts ADD COLUMN image tinytext null;
+
+----
+
+ALTER TABLE {prefix}images ADD COLUMN selected BOOLEAN null;
+
+----
+
+ALTER TABLE {prefix}images ADD COLUMN featured BOOLEAN null;
--- /dev/null
+<?php
+/**
+ * Gaslight Media Members Database
+ * GLM Members Short Codes
+ *
+ * PHP version 5.5
+ *
+ * @category glmWordPressPlugin
+ * @package glmMembersDatabase
+ * @author Chuck Scott <cscott@gaslightmedia.com>
+ * @license http://www.gaslightmedia.com Gaslightmedia
+ * @release shortcodes.php,v 1.0 2014/10/31 19:31:47 cscott Exp $
+ * @link http://dev.gaslightmedia.com/
+ */
+
+/*
+ * Array of short-code
+ *
+ * This array lists all of the short-codes available from the main
+ * member plugin and all add-ons that provide short-code features.
+ *
+ * This array is merged with the data from any registered add-ons
+ * providing short-code features. The plugin providing the short-code
+ * is designated in the 'plugin' elemeent.
+ *
+ * A shortcode is unique to a particular plugin. To provide additional
+ * data and features to a short-code, an add-on should use filters
+ * provided by the short-code to insert data into the template array,
+ * to insert additional format into the template, or to insert
+ * text directly into the completed template output.
+ *
+ * The "attributes" array is a list of available attributes for this
+ * shortcode and their default values. If a database table is provided,
+ * then the value for each attribute is a table column where we get
+ * the default value. If no table is provided, then the value for
+ * each attribute is the actual default value for that attribute.
+ * In the case that the data is taken from the database table, the
+ * "id" for the table entry where the data is stored is assumed to
+ * be 1.
+ *
+ * Note that if the value for a particular attribute is false, then
+ * it is not read from the database even if the table is specified
+ * but might be supplied at run-time as an attribute in the short-code.
+ * All attributes that might be specified in the shortcode must be
+ * listed in the 'attributes' array below. If an attribute is not
+ * specified here, it can't be read from the short-code.
+ *
+ * The following is an explanation of this array.
+ *
+ * array(
+ * '{shortcode-slug} => array(
+ * 'plugin' => '{plugin (add-on) slug}', // Identifies which plugin is providing the short-code
+ * 'menu' => '{menu name}', // Menu name in this context is simply where to find the action
+ * 'action' => '{shortcode action name}, // Action used to execute this shortcode
+ * 'table' => '{table prefix}{table name}', // Database table where default attribute values are stored
+ * 'attributes' => array( // An array of all shortcode attributes (options)
+ * '{attr name}' => '{field name}', // Available attribute names and the database field names with the default value
+ * ....
+ * ),
+ * ... additional short-codes
+ * )
+ *
+ */
+
+$glmMembersShortcodes = array(
+ 'glm-members-list' => array(
+ 'plugin' => GLM_MEMBERS_PLUGIN_SLUG,
+ 'menu' => 'members',
+ 'action' => 'list',
+ 'table' => GLM_MEMBERS_PLUGIN_DB_PREFIX.'settings_general',
+ 'attributes' => array(
+ 'category' => false,
+ 'category-name' => false,
+ 'show' => false,
+ 'map' => 'list_show_map',
+ 'map-name-link' => 'list_map_show_detaillink',
+ 'map-logo' => 'list_map_show_logo',
+ 'map-description' => 'list_map_show_descr',
+ 'map-short-description' => 'list_map_show_short_descr',
+ 'map-address' => 'list_map_show_address',
+ 'map-street' => 'list_map_show_street',
+ 'map-city-state-zip' => 'list_map_show_citystatezip',
+ 'map-country' => 'list_map_show_country',
+ 'map-region' => 'list_map_show_region',
+ 'map-phone' => 'list_map_show_phone',
+ 'map-toll-free' => 'list_map_show_tollfree',
+ 'map-url' => 'list_map_show_url',
+ 'map-url-new-target' => 'list_map_show_url_newtarget',
+ 'map-email' => 'list_map_show_email',
+ 'map-categories' => 'list_map_show_categories',
+ 'map-credit-cards' => 'list_map_show_creditcards',
+ 'map-amentities' => 'list_map_show_amenities',
+ 'search' => 'list_show_search',
+ 'search-text' => 'list_show_search_text',
+ 'search-categories' => 'list_show_search_category',
+ 'search-amenities' => 'list_show_search_amenities',
+ 'search-alpha' => 'list_show_search_alpha',
+ 'list' => 'list_show_list',
+ 'name-link' => 'list_show_detail_link',
+ 'logo' => 'list_show_logo',
+ 'address' => 'list_show_address',
+ 'street' => 'list_show_street',
+ 'city-state-zip' => 'list_show_citystatezip',
+ 'country' => 'list_show_country',
+ 'region' => 'list_show_region',
+ 'description' => 'list_show_descr',
+ 'short-description' => 'list_show_short_descr',
+ 'phone' => 'list_show_phone',
+ 'toll-free' => 'list_show_tollfree',
+ 'url' => 'list_show_url',
+ 'url-new-target' => 'list_show_url_newtarget',
+ 'email' => 'list_show_email',
+ 'categories' => 'list_show_categroies',
+ 'credit-cards' => 'list_show_creditcards',
+ 'amentities' => 'list_show_amenities'
+ )
+ ),
+ 'glm-member-detail' => array(
+ 'plugin' => GLM_MEMBERS_PLUGIN_SLUG,
+ 'menu' => 'members',
+ 'action' => 'detail',
+ 'table' => GLM_MEMBERS_PLUGIN_DB_PREFIX.'settings_general',
+ 'attributes' => array(
+ 'id' => false,
+ 'show' => false,
+ 'map' => 'detail_show_map',
+ 'map-logo' => 'detail_map_show_logo',
+ 'map-description' => 'detail_map_show_descr',
+ 'map-short-description' => 'detail_map_show_short_descr',
+ 'map-address' => 'detail_map_show_address',
+ 'map-street' => 'detail_map_show_street',
+ 'map-city-state-zip' => 'detail_map_show_citystatezip',
+ 'map-country' => 'detail_map_show_country',
+ 'map-region' => 'detail_map_show_region',
+ 'map-phone' => 'detail_map_show_phone',
+ 'map-toll-free' => 'detail_map_show_tollfree',
+ 'map-url' => 'detail_map_show_url',
+ 'map-url-new-target' => 'detail_map_show_url_newtarget',
+ 'map-email' => 'detail_map_show_email',
+ 'map-categories' => 'detail_map_show_categories',
+ 'map-credit-cards' => 'detail_map_show_creditcards',
+ 'map-amentities' => 'detail_map_show_amenities',
+ 'logo' => 'detail_show_logo',
+ 'address' => 'detail_show_address',
+ 'street' => 'detail_show_street',
+ 'city-state-zip' => 'detail_show_citystatezip',
+ 'country' => 'detail_show_country',
+ 'region' => 'detail_show_region',
+ 'description' => 'detail_show_descr',
+ 'short-description' => 'detail_show_short_descr',
+ 'phone' => 'detail_show_phone',
+ 'toll-free' => 'detail_show_tollfree',
+ 'url' => 'detail_show_url',
+ 'url-new-target' => 'detail_show_url_newtarget',
+ 'email' => 'detail_show_email',
+ 'categories' => 'detail_show_categories',
+ 'credit-cards' => 'detail_show_creditcards',
+ 'amentities' => 'detail_show_amenities'
+ )
+ )
+);
+
+$glmMembersShortcodesDescription = '
+
+<!-- glm-members-list -->
+
+ <tr>
+ <th>[glm-members-list]</th>
+ <td> </td>
+ <td width="50%">
+ <p>
+ Displays a list of members and a map with markers for each member. Optionally,
+ the attributes below may used to modify the display of this page.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <th>
+ category="{ category ID(s) }"
+ </th>
+ <td>
+ <p>
+ The "category" attribute is used display only members in a specific category or
+ categories. To select multiple categories, separate the categories with a ",".
+ Categories are specified by ID number. The ID for each category is
+ shown in the Member Categories list.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <th>
+ show="{ content to show }"
+ </th>
+ <td>
+ <p>
+ The "show" attribute is used control what content should be displayed in the
+ member list. The default is to show the content selected in the "Management",
+ "General Settings" page under "Member List Page Options".
+ </p>
+ <p>
+ Content to show or not show is specified by a comma separated list of the
+ items listed below. Each item must be preceded by either a "+" or a "-" to
+ indicate whether the that content should or should not be shown.
+ </p>
+ <p>
+ There are two special items "all" and "none". These should not have a "+" or
+ "-" in front of them and should be the first item in the comma separated
+ list. These can be used to turn all content on or turn all content off. Any
+ items listed after this will add or remove those items from being displayed.
+ </p>
+ <p>
+ The only content that may not be disabled is the member name. This will always
+ show regardless of any settings, although there is a setting to show this as a
+ link or not as a link.
+ </p>
+ <p>
+ <table width="100%">
+ <tr><th colspan=3">Global Options</th></tr>
+ <tr><td>all</td><td>none</td></tr>
+ <tr><th colspan=3">Map Options</th></tr>
+ <tr><td>map</td><td>map-name-link</td><td>map-logo</td></tr>
+ <tr><td>map-description</td><td>map-short-description</td><td>map-address</td></tr>
+ <tr><td>map-street</td><td>map-city-state-zip</td><td>map-country</td></tr>
+ <tr><td>map-region</td><td>map-phone</td><td>map-toll-free</td></tr>
+ <tr><td>map-url</td><td>map-url-new-target</td><td>map-email</td></tr>
+ <tr><td>map-categories</td><td>map-credit-cards</td><td>map-amenities</td></tr>
+ <tr><th colspan=3">Search Form Options</th></tr>
+ <tr><td>search</td><td>search-text</td><td>search-categories</td></tr>
+ <tr><td>search-amenities</td><td>search-alpha</td></tr>
+ <tr><th colspan=3">Member List Options</th></tr>
+ <tr><td>list</td><td>name-link</td><td>logo</td></tr>
+ <tr><td>address</td><td>street</td><td>city-state-zip</td></tr>
+ <tr><td>country</td><td>region</td><td>description</td></tr>
+ <tr><td>short-description</td><td>phone</td><td>toll-free</td></tr>
+ <tr><td>url</td><td>url-new-target</td><td>email</td></tr>
+ <tr><td>categories</td><td>credit-cards</td><td>amenities</td></tr>
+ </table>
+ </p>
+ </td>
+ </tr>
+
+<!-- glm-member-detail -->
+
+ <tr>
+ <th>[glm-member-detail]</th>
+ <td> </td>
+ <td>
+ <p>
+ Displays details for a specific member along with a map showing their location. The
+ "id" attribute below is required to specify which member to display.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <th>
+ id="{ member ID }"
+ </th>
+ <td>
+ <p>
+ This is an optional attribute for [glm-member-detail] that specifies the ID of
+ the desired member. The ID for a member is displayed both in the left column
+ of the member list and at the top of the Member Dashboard. Only one ID may
+ be specified. If this attribute is not supplied, the page will look for a
+ member name slug as the last part of the path in the URL and try to locate
+ an active member information record with "Name for URLs" set to the same
+ string.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td> </td>
+ <th>
+ show="{ content to show }"
+ </th>
+ <td>
+ <p>
+ The "show" attribute is used control what content should be displayed in
+ member detail. The default is to show the content selected in the "Management",
+ "General Settings" page under "Member Detail Page Options".
+ </p>
+ <p>
+ Content to show or not show is specified by a comma separated list of the
+ items listed below. Each item must be preceded by either a "+" or a "-" to
+ indicate whether the that content should or should not be shown.
+ </p>
+ <p>
+ There are two special items "all" and "none". These should not have a "+" or
+ "-" in front of them and should be the first item in the comma separated
+ list. These can be used to turn all content on or turn all content off. Any
+ items listed after this will add or remove those items from being displayed.
+ </p>
+ <p>
+ The only content that may not be disabled is the member name. This will always
+ show regardless of any settings, although there is a setting to show this as a
+ link or not as a link.
+ </p>
+ <p>
+ <table width="100%">
+ <tr><th colspan=3">Global Options</th></tr>
+ <tr><td>all</td><td>none</td></tr>
+ <tr><th colspan=3">Map Options</th></tr>
+ <tr><td>map</td><td>map-logo</td><td>map-description</td></tr>
+ <tr><td>map-short-description</td><td>map-address</td><td>map-street</td></tr>
+ <tr><td>map-city-state-zip</td><td>map-country</td><td>map-region</td></tr>
+ <tr><td>map-phone</td><td>map-toll-free</td><td>map-url</td></tr>
+ <tr><td>map-url-new-target</td><td>map-email</td><td>map-categories</td></tr>
+ <tr><td>map-credit-cards</td><td>map-amenities</td></tr>
+ <tr><th colspan=3">Directions Options</th></tr>
+ <tr><td>directions</td></tr>
+ <tr><th colspan=3">Member Detail Options</th></tr>
+ <tr><td>logo</td><td>address</td><td>street</td></tr>
+ <tr><td>city-state-zip</td><td>country</td><td>region</td></tr>
+ <tr><td>description</td><td>short-description</td><td>phone</td></tr>
+ <tr><td>toll-free</td><td>url</td><td>url-new-target</td></tr>
+ <tr><td>email</td><td>categories</td><td>credit-cards</td></tr>
+ <tr><td>amenities</td></tr>
+ </table>
+ </p>
+ </td>
+ </tr>
+
+';
* DB plugin when this plugin registers itself.
*/
-/**
- * Array of valid menu items and actions.
- *
- * The higher level elements are valid menu items. These correlate to
- * actual menu or sub menu items that are hooks back to this controller
- * class.
- *
- * The lower level items below each menu item are actions that may be specified
- * by a "glmMembersAction" form field.
- *
- * The string after the action is the slug of the plugin where the model/view
- * is to perform that action.
- *
- * This array is extended to include valid menus and actions from any add-on
- * plugins.
- */
-
$glmMembersValidActions = array(
'adminActions' => array(
'ajax' => array(
information versions on the Member index page.
</td>
</tr>
+
+
+ <tr>
+ <th>glm_members_permit_admin_widget_members</th>
+ <td>Filter</td>
+ <td>
+ Hook to test if the logged in user is permitted to search members in the Dashboard Widget.
+ </td>
+ </tr>
+ <tr>
+ <th>glm_members_permit_admin_widget_warnings</th>
+ <td>Filter</td>
+ <td>
+ Hook to test if the logged in user is permitted to see configuration and other members
+ warnings in the Dashboard Widget.
+ </td>
+ </tr>
+ <tr>
+ <th>glm_members_permit_admin_widget_pending_info</th>
+ <td>Filter</td>
+ <td>
+ Hook to test if the logged in user is permitted to see a list of pending information
+ records for all members in the Dashboard Widget.
+ </td>
+ </tr>
+ <tr>
+ <th>glm_members_permit_admin_member_index_list_inactive_info</th>
+ <td>Filter</td>
+ <td>
+ Hook to test if the logged in user is permitted to see a list of inactive member information.
+ </td>
+ </tr>
+ <tr>
+ <th>glm_members_permit_admin_member_info_edit</th>
+ <td>Filter</td>
+ <td>
+ Hook to test if the logged in user is permitted to edit member information.
+ </td>
+ </tr>
+ <tr>
+ <th>glm_members_permit_admin_profile_index_edit_profile</th>
+ <td>Filter</td>
+ <td>
+ Hook to test if the logged in user is permitted to edit their own profile.
+ </td>
+ </tr>
+
+ <tr><th colspan="3" class="glm-notice"><p>Contacts Add-On</p></th></tr>
<tr>
<th>glm_members_permit_admin_member_contacts_tab</th>
<td>Filter</td>
Hook to test if the logged in user is permitted to edit a contact.
</td>
</tr>
+
+
+ <tr><th colspan="3" class="glm-notice"><p>Packaging Add-On</p></th></tr>
<tr>
- <th>glm_members_permit_admin_widget_members</th>
+ <th>glm_members_permit_admin_members_packages_tab</th>
<td>Filter</td>
<td>
- Hook to test if the logged in user is permitted to search members in the Dashboard Widget.
+ Hook to test if the logged in user is permitted to see multi-member packaging tab.
</td>
</tr>
<tr>
- <th>glm_members_permit_admin_widget_warnings</th>
+ <th>glm_members_permit_admin_members_packaging_add_package</th>
<td>Filter</td>
<td>
- Hook to test if the logged in user is permitted to see configuration and other members
- warnings in the Dashboard Widget.
+ Hook to test if the logged in user is permitted to add a new multi-member package.
</td>
</tr>
<tr>
- <th>glm_members_permit_admin_widget_pending_info</th>
+ <th>glm_members_permit_admin_members_packaging_edit_package</th>
<td>Filter</td>
<td>
- Hook to test if the logged in user is permitted to see a list of pending information
- records for all members in the Dashboard Widget.
+ Hook to test if the logged in user is permitted to edit a multi-member package.
</td>
</tr>
<tr>
- <th>glm_members_permit_admin_member_index_list_inactive_info</th>
+ <th>glm_members_permit_admin_members_packages_tab</th>
<td>Filter</td>
<td>
- Hook to test if the logged in user is permitted to see a list of inactive member information.
+ Hook to test if the logged in user is permitted to see the member packaging tab.
</td>
</tr>
<tr>
- <th>glm_members_permit_admin_member_info_edit</th>
+ <th>glm_members_permit_admin_member_packaging_add_package</th>
<td>Filter</td>
<td>
- Hook to test if the logged in user is permitted to edit member information.
+ Hook to test if the logged in user is permitted to add a new Member package.
</td>
</tr>
<tr>
- <th>glm_members_permit_admin_profile_index_edit_profile</th>
+ <th>glm_members_permit_admin_member_packaging_edit_package</th>
<td>Filter</td>
<td>
- Hook to test if the logged in user is permitted to edit their own profile.
+ Hook to test if the logged in user is permitted to edit a member package.
</td>
</tr>
+
</table>
be sure to leave a space between the attributes. An example is shown below.
</p>
<p><pre>[glm-members-list category="11"]</pre></p>
-
+
+ <p> </p>
+
<table class="glm-admin-table">
<tr><th>Shortcode</th><th>Attribute</th><th>Description</th></tr>
-<!-- glm-members-list -->
-
- <tr>
- <th>[glm-members-list]</th>
- <td> </td>
- <td width="50%">
- <p>
- Displays a list of members and a map with markers for each member. Optionally,
- the attributes below may used to modify the display of this page.
- </p>
- </td>
- </tr>
- <tr>
- <td> </td>
- <th>
- category="{ category ID(s) }"
- </th>
- <td>
- <p>
- The "category" attribute is used display only members in a specific category or
- ctegories. To select multiple categories, separate the categories with a ",".
- Categories are specified by ID number. The ID for each category is
- shown in the Member Categories list.
- </p>
- </td>
- </tr>
- <tr>
- <td> </td>
- <th>
- show="{ content to show }"
- </th>
- <td>
- <p>
- The "show" attribute is used control what content should be displayed in the
- member list. The default is to show the content selected in the "Management",
- "General Settings" page under "Member List Page Options".
- </p>
- <p>
- Content to show or not show is specified by a comma separated list of the
- items listed below. Each item must be preceeded by either a "+" or a "-" to
- indecate whether the that content should or should not be shown.
- </p>
- <p>
- There are two special items "all" and "none". These should not have a "+" or
- "-" in front of them and should be the first item in the comma separated
- list. These can be used to turn all content on or turn all content off. Any
- items listed after this will add or remove those items from being displayed.
- </p>
- <p>
- The only content that may not be dissabled is the member name. This will always
- show regardless of any settings, although there is a setting to show this as a
- link or not as a link.
- </p>
- <p>
- <table width="100%">
- <tr><th colspan=3">Global Options</th></tr>
- <tr><td>all</td><td>none</td></tr>
- <tr><th colspan=3">Map Options</th></tr>
- <tr><td>map</td><td>map-name-link</td><td>map-logo</td></tr>
- <tr><td>map-description</td><td>map-short-description</td><td>map-address</td></tr>
- <tr><td>map-street</td><td>map-city-state-zip</td><td>map-country</td></tr>
- <tr><td>map-region</td><td>map-phone</td><td>map-toll-free</td></tr>
- <tr><td>map-url</td><td>map-url-new-target</td><td>map-email</td></tr>
- <tr><td>map-categories</td><td>map-credit-cards</td><td>map-amentities</td></tr>
- <tr><th colspan=3">Search Form Options</th></tr>
- <tr><td>search</td><td>search-text</td><td>search-categories</td></tr>
- <tr><td>search-amenities</td><td>search-alpha</td></tr>
- <tr><th colspan=3">Member List Options</th></tr>
- <tr><td>list</td><td>name-link</td><td>logo</td></tr>
- <tr><td>address</td><td>street</td><td>city-state-zip</td></tr>
- <tr><td>country</td><td>region</td><td>description</td></tr>
- <tr><td>short-description</td><td>phone</td><td>toll-free</td></tr>
- <tr><td>url</td><td>url-new-target</td><td>email</td></tr>
- <tr><td>categories</td><td>credit-cards</td><td>amentities</td></tr>
- </table>
- </p>
- </td>
- </tr>
-
-<!-- glm-member-detail -->
+ {$shortcodesDescription}
- <tr>
- <th>[glm-member-detail]</th>
- <td> </td>
- <td>
- <p>
- Displays details for a speicif member along with a map showing their location. The
- "id" attribute below is required to specify which member to display.
- </p>
- </td>
- </tr>
- <tr>
- <td> </td>
- <th>
- id="{ member ID }"
- </th>
- <td>
- <p>
- This is an optional attribute for [glm-member-detail] that specifies the ID of
- the desired member. The ID for a member is displayed both in the left column
- of the member list and at the top of the Member Dashboard. Only one ID may
- be specified. If this attribute is not supplied, the page will look for a
- member name slug as the last part of the path in the URL and try to locate
- an active member information record with "Name for URLs" set to the same
- string.
- </p>
- </td>
- </tr>
- <tr>
- <td> </td>
- <th>
- show="{ content to show }"
- </th>
- <td>
- <p>
- The "show" attribute is used control what content should be displayed in
- member detail. The default is to show the content selected in the "Management",
- "General Settings" page under "Member Detail Page Options".
- </p>
- <p>
- Content to show or not show is specified by a comma separated list of the
- items listed below. Each item must be preceeded by either a "+" or a "-" to
- indecate whether the that content should or should not be shown.
- </p>
- <p>
- There are two special items "all" and "none". These should not have a "+" or
- "-" in front of them and should be the first item in the comma separated
- list. These can be used to turn all content on or turn all content off. Any
- items listed after this will add or remove those items from being displayed.
- </p>
- <p>
- The only content that may not be dissabled is the member name. This will always
- show regardless of any settings, although there is a setting to show this as a
- link or not as a link.
- </p>
- <p>
- <table width="100%">
- <tr><th colspan=3">Global Options</th></tr>
- <tr><td>all</td><td>none</td></tr>
- <tr><th colspan=3">Map Options</th></tr>
- <tr><td>map</td><td>map-logo</td><td>map-description</td></tr>
- <tr><td>map-short-description</td><td>map-address</td><td>map-street</td></tr>
- <tr><td>map-city-state-zip</td><td>map-country</td><td>map-region</td></tr>
- <tr><td>map-phone</td><td>map-toll-free</td><td>map-url</td></tr>
- <tr><td>map-url-new-target</td><td>map-email</td><td>map-categories</td></tr>
- <tr><td>map-credit-cards</td><td>map-amentities</td></tr>
- <tr><th colspan=3">Directions Options</th></tr>
- <tr><td>directions</td></tr>
- <tr><th colspan=3">Member Detail Options</th></tr>
- <tr><td>logo</td><td>address</td><td>street</td></tr>
- <tr><td>city-state-zip</td><td>country</td><td>region</td></tr>
- <tr><td>description</td><td>short-description</td><td>phone</td></tr>
- <tr><td>toll-free</td><td>url</td><td>url-new-target</td></tr>
- <tr><td>email</td><td>categories</td><td>credit-cards</td></tr>
- <tr><td>amentities</td></tr>
- </table>
- </p>
- </td>
- </tr>
</table>
{include file='admin/footer.html'}