Add Management for List Pagination.
authorSteve Sutton <steve@gaslightmedia.com>
Tue, 3 Jan 2017 18:24:53 +0000 (13:24 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Tue, 3 Jan 2017 18:37:10 +0000 (13:37 -0500)
Adding two new management options.
list_pagination Boolean (enable/disable) pagination on member list.
list_pagination_count smallint - Number of records to display per page.

classes/data/settings/dataSettingsGeneral.php
index.php
models/front/members/list.php
setup/databaseScripts/create_database_V1.1.23.sql [deleted file]
setup/databaseScripts/create_database_V1.1.24.sql [new file with mode: 0644]
setup/databaseScripts/dbVersions.php
setup/databaseScripts/update_database_V1.1.24.sql [new file with mode: 0644]
views/admin/management/index.html
views/front/members/list.html

index 9a0deb9..505433d 100644 (file)
@@ -259,6 +259,22 @@ class GlmDataSettingsGeneral extends GlmDataAbstract
                 'use' => 'a'
             ),
 
+            // Front-end Listings - Paginate List
+            'list_pagination' => array(
+                'field'   => 'list_pagination',
+                'type'    => 'checkbox',
+                'default' => true,
+                'use'     => 'a'
+            ),
+
+            // Front-end Listings - Pagination Count
+            'list_pagination_count' => array(
+                'field'   => 'list_pagination_count',
+                'type'    => 'integer',
+                'default' => 20,
+                'use'     => 'a'
+            ),
+
             // Front-end Listings - Show List
             'list_header_text' => array(
                 'field' => 'list_header_text',
@@ -1050,4 +1066,4 @@ class GlmDataSettingsGeneral extends GlmDataAbstract
     }
 }
 
-?>
\ No newline at end of file
+?>
index 3c845e7..9343c73 100644 (file)
--- a/index.php
+++ b/index.php
@@ -39,7 +39,7 @@
  */
 
 define('GLM_MEMBERS_PLUGIN_VERSION', '2.8.4');
-define('GLM_MEMBERS_PLUGIN_DB_VERSION', '1.1.23');
+define('GLM_MEMBERS_PLUGIN_DB_VERSION', '1.1.24');
 
 // Check if plugin version is not current in WordPress option and if needed updated it
 if (GLM_MEMBERS_PLUGIN_VERSION != get_option('glmMembersDatabasePluginVersion')) {
index a962a58..39223e1 100644 (file)
@@ -121,7 +121,7 @@ class GlmMembersFront_members_list extends GlmDataMemberInfo
      *
      * 'status'
      *
-     * True if successfull and false if there was a fatal failure.
+     * True if successful and false if there was a fatal failure.
      *
      * 'menuItemRedirect'
      *
@@ -136,7 +136,7 @@ class GlmMembersFront_members_list extends GlmDataMemberInfo
      *
      * 'view'
      *
-     * A suggested view name that the contoller should use instead of the
+     * A suggested view name that the controller should use instead of the
      * default view for this model or false to indicate that the default view
      * should be used.
      *
@@ -149,27 +149,27 @@ class GlmMembersFront_members_list extends GlmDataMemberInfo
     public function modelAction ($actionData = false)
     {
 
-        $where          = '';
-        $whereSep       = '';
-        $filterPending  = false;
-        $filterArchived = false;
-        $filterFeatured = false;
-        $filterName     = false;
-        $haveFilter     = false;
-        $textSearch     = '';
-        $blankStart     = false;
-        $membersFound   = false;
-        $catSearchSelected = false;
+        $where                = '';
+        $whereSep             = '';
+        $filterPending        = false;
+        $filterArchived       = false;
+        $filterFeatured       = false;
+        $filterName           = false;
+        $haveFilter           = false;
+        $textSearch           = '';
+        $blankStart           = false;
+        $membersFound         = false;
+        $catSearchSelected    = false;
         $regionSearchSelected = false;
 
-        // Paging Parmeters
-        $paging         = true;         // This might be better set in a management field
-        $numbDisplayed  = false;
-        $lastDisplayed  = false;
-        $prevStart      = false;
-        $nextStart      = false;
-        $start          = 1;
-        $limit          = 20;        // Set to the number of listings per page
+        // Paging Parameters
+        $paging        = $this->config['settings']['list_pagination']; // Now this is in management
+        $numbDisplayed = false;
+        $lastDisplayed = false;
+        $prevStart     = false;
+        $nextStart     = false;
+        $start         = 1;
+        $limit         = $this->config['settings']['list_pagination_count']; // Now this is in management
 
         // Check for URL parameter override of shortcode parameters
         if (isset($_REQUEST['categorySearch'])) {
diff --git a/setup/databaseScripts/create_database_V1.1.23.sql b/setup/databaseScripts/create_database_V1.1.23.sql
deleted file mode 100644 (file)
index 146297a..0000000
+++ /dev/null
@@ -1,567 +0,0 @@
--- Gaslight Media Members Database
--- File Created: 12/29/16 12:06:00
--- Database Version: 1.1.23
--- Database Creation Script
---
--- To permit each query below to be executed separately,
--- all queries must be separated by a line with four dashes
---
--- **** BE SURE TO ALSO UPDATE drop_database_Vxxx.sql FILE WHEN CHANGING TABLES ****
---
-
--- 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 amenities 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 amenities table entry - to simplify searches
-  ref_dest INT NULL,                        -- Pointer to the specific entity of type ref_type
-  amenity_value TINYTEXT NULL,              -- Quantity if amenity uses values
-  PRIMARY KEY (id),
-  INDEX(ref_type),
-  INDEX(ref_dest)
-);
-
-----
-
--- groups
-CREATE TABLE {prefix}amenity_groups (
-    id INT NOT NULL AUTO_INCREMENT,
-    name TINYTEXT NULL,                     -- Name of the Group
-    PRIMARY KEY (id),
-    INDEX(name(20))
-);
-
-----
-
--- Amenity Group - Links a specific amenity to groups
-CREATE TABLE {prefix}grouped_amenities (
-    id INT NOT NULL AUTO_INCREMENT,
-    group_id INT,                              -- Pointer to the group
-    amenity_id INT,                            -- Pointer to the Amenity
-    searchable BOOLEAN DEFAULT '0',         -- Flag indicating whether the amenity group will show in the search form
-    PRIMARY KEY (id)
-);
-
-----
-
--- 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 specific 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 information 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)
-);
-
-----
-
--- Member Click Through Stats Data - Totals of URL click-throughs - Preserved for 2 years
-CREATE TABLE {prefix}clickthrough_stats (
-  member INT NULL,                          -- ID of member
-  stat_type INT NULL,                       -- Type of stat 1 = day, 2 = week, 3 = month
-  stat_date DATE NULL,                      -- Date for which these stats are accumulated (date or first date of week or month)
-  clicks INT NULL,                          -- Number of Clicks
-  PRIMARY KEY (member, stat_type, stat_date),
-  INDEX (member),
-  INDEX (stat_type),
-  INDEX (stat_date)
-);
-
-----
-
--- 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,                       -- Original name of the file - might be URL if copied via HTTP
-  status TINYINT(1) NULL,                   -- Display/Use status - See plugin.ini status table
-  file_name TINYTEXT NULL,                  -- Stored file name for the file
-  descr TEXT NULL,                          -- Description
-  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)
-);
-
-----
-
--- 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 BOOLEAN NULL,                    -- A single special image in the current gallery for this entity
-  featured 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)
-);
-
-----
-
--- 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)
-  notes TEXT NULL,                          -- General notes - Not displayed in front-end
-  old_member_id INT NULL,                   -- Old member ID if imported from old database
-  featured BOOLEAN DEFAULT '0',             -- Whether the member is featured
-  PRIMARY KEY (id),
-  INDEX(name(20)),
-  INDEX(member_slug(20)),
-  INDEX(created)
-);
-
-----
-
--- Member Detail Display Stats Data - Totals of times detail page is displayed - Preserved for 2 years
-CREATE TABLE {prefix}member_detail_stats (
-  member INT NULL,                          -- ID of member
-  stat_type INT NULL,                       -- Type of stat 1 = day, 2 = week, 3 = month
-  stat_date DATE NULL,                      -- Date for which these stats are accumulated (date or first date of week or month)
-  clicks INT NULL,                          -- Number of Clicks
-  PRIMARY KEY (member, stat_type, stat_date),
-  INDEX (member),
-  INDEX (stat_type),
-  INDEX (stat_date)
-);
-
-----
-
--- Member information version record - May be multiples per member - Only one with status "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,             -- Reference name for this member information record - Not displayed on front-end
-  descr TEXT NULL,                          -- Description
-  short_descr TEXT NULL,                    -- Short description
-  addr1 TINYTEXT NULL,                      -- Main member location 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 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
-  video_url TINYTEXT NULL,                  -- Video URL
-  video_file TINYTEXT NULL,                 -- Video File Name
-  video_title TINYTEXT NULL,                -- Video Title
-  video_descr TEXT NULL,                    -- Video Description
-  video_type INT NULL,                      -- Video Type - See plugin.ini video type table.
-  live_cam_url TINYTEXT NULL,               -- Live Cam URL
-  live_cam_title TINYTEXT NULL,             -- Live Cam Title
-  live_cam_descr TEXT NULL,                 -- Live Cam Description
-  live_cam_type INT NULL,                   -- Live Cam Type - See plugin.ini video type table.
-  mailing_addr1 TINYTEXT NULL,              -- Mailing Address 1
-  mailing_addr2 TINYTEXT NULL,              -- Mailing Address 2
-  mailing_city INT NULL,                    -- Mailing City  (Pointer to City in cities table)
-  mailing_state TINYTEXT NULL,              -- Mailing State (Two character state code - matches states.ini entries)
-  mailing_zip TINYTEXT NULL,                -- Mailing ZIP/Postal code
-  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,                          -- Description of region
-  short_descr TINYTEXT NULL,                -- Short description of region
-  PRIMARY KEY (id)
-);
-
-----
-
--- 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 '0',
-  admin_debug_verbose BOOLEAN DEFAULT '0',
-  front_debug BOOLEAN DEFAULT '0',
-  front_debug_verbose BOOLEAN DEFAULT '0',
-  enable_members BOOLEAN DEFAULT '1',
-  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,
-  phone_infix TINYTEXT DEFAULT NULL,
-  default_state TINYTEXT DEFAULT NULL,
-  list_show_map BOOLEAN DEFAULT '1',
-  list_show_list BOOLEAN DEFAULT '1',
-  list_order_list SMALLINT DEFAULT '10',
-  list_show_search_filters_opened BOOLEAN DEFAULT '0',
-  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_region BOOLEAN DEFAULT '1',
-  list_show_search_alpha BOOLEAN DEFAULT '1',
-  list_floating_search BOOLEAN DEFAULT '0',
-  list_floating_search_distance_top INTEGER DEFAULT '0',    -- How far from the top the sticky Search/Filters box should hover
-  list_show_detail_link BOOLEAN DEFAULT '1',
-  list_show_logo BOOLEAN DEFAULT '1',
-  list_logo_size TINYTEXT NULL,
-  list_logo_for_mobile BOOLEAN DEFAULT '1',
-  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 '0',
-  list_show_creditcards BOOLEAN DEFAULT '0',
-  list_show_amenities BOOLEAN DEFAULT '0',
-  list_show_logo_filler BOOLEAN DEFAULT '1',
-  list_show_live_cam BOOLEAN DEFAULT '1',
-  list_map_show_opened 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',
-  list_show_packages BOOLEAN DEFAULT '0',
-  list_show_packages_link BOOLEAN DEFAULT '0',
-  list_header_text TINYTEXT DEFAULT NULL,
-  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 '0',
-  detail_show_creditcards BOOLEAN DEFAULT '0',
-  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_show_events BOOLEAN DEFAULT '0',
-  detail_show_video BOOLEAN DEFAULT '0',
-  detail_show_live_cam BOOLEAN DEFAULT '0',
-  detail_top_offset_autoscroll INTEGER DEFAULT '0', -- Determines the distance from the top when autoscrolling to a section on member detail pages
-  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',
-  members_only_support_email TINYTEXT DEFAULT '',
-  members_only_support_phone TINYTEXT DEFAULT '',
-  PRIMARY KEY (id)
-);
-
-----
-
--- Set default entry
-INSERT INTO {prefix}settings_general
-    ( id, time_zone, canonical_member_page, list_logo_size, list_map_logo_size, detail_logo_size, detail_map_logo_size )
-   VALUES
-    ( 1, 'America/Detroit', 'member-detail', 'large', 'thumb', 'large', 'thumb' )
-;
-
-----
-
--- Terms used in site modifiable on Management page in admin - Only 1 entry in this table
--- Terms 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,
-  term_webcam_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,
-    term_webcam_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',
-    'Webcam'
-    )
-;
-
-----
-
--- Theme Settings - Only 1 entry in this table
-CREATE TABLE {prefix}settings_theme (
-    id INT NOT NULL AUTO_INCREMENT,
-    PRIMARY KEY (id)
-);
-
-----
-
--- Default Theme Settings entry
-INSERT INTO {prefix}settings_theme
-    (
-    id
-    )
-   VALUES
-    (
-    1
-    )
-;
-
diff --git a/setup/databaseScripts/create_database_V1.1.24.sql b/setup/databaseScripts/create_database_V1.1.24.sql
new file mode 100644 (file)
index 0000000..cfb3a5d
--- /dev/null
@@ -0,0 +1,569 @@
+-- Gaslight Media Members Database
+-- File Created: 12/29/16 12:06:00
+-- Database Version: 1.1.24
+-- Database Creation Script
+--
+-- To permit each query below to be executed separately,
+-- all queries must be separated by a line with four dashes
+--
+-- **** BE SURE TO ALSO UPDATE drop_database_Vxxx.sql FILE WHEN CHANGING TABLES ****
+--
+
+-- 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 amenities 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 amenities table entry - to simplify searches
+  ref_dest INT NULL,                        -- Pointer to the specific entity of type ref_type
+  amenity_value TINYTEXT NULL,              -- Quantity if amenity uses values
+  PRIMARY KEY (id),
+  INDEX(ref_type),
+  INDEX(ref_dest)
+);
+
+----
+
+-- groups
+CREATE TABLE {prefix}amenity_groups (
+    id INT NOT NULL AUTO_INCREMENT,
+    name TINYTEXT NULL,                     -- Name of the Group
+    PRIMARY KEY (id),
+    INDEX(name(20))
+);
+
+----
+
+-- Amenity Group - Links a specific amenity to groups
+CREATE TABLE {prefix}grouped_amenities (
+    id INT NOT NULL AUTO_INCREMENT,
+    group_id INT,                              -- Pointer to the group
+    amenity_id INT,                            -- Pointer to the Amenity
+    searchable BOOLEAN DEFAULT '0',         -- Flag indicating whether the amenity group will show in the search form
+    PRIMARY KEY (id)
+);
+
+----
+
+-- 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 specific 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 information 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)
+);
+
+----
+
+-- Member Click Through Stats Data - Totals of URL click-throughs - Preserved for 2 years
+CREATE TABLE {prefix}clickthrough_stats (
+  member INT NULL,                          -- ID of member
+  stat_type INT NULL,                       -- Type of stat 1 = day, 2 = week, 3 = month
+  stat_date DATE NULL,                      -- Date for which these stats are accumulated (date or first date of week or month)
+  clicks INT NULL,                          -- Number of Clicks
+  PRIMARY KEY (member, stat_type, stat_date),
+  INDEX (member),
+  INDEX (stat_type),
+  INDEX (stat_date)
+);
+
+----
+
+-- 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,                       -- Original name of the file - might be URL if copied via HTTP
+  status TINYINT(1) NULL,                   -- Display/Use status - See plugin.ini status table
+  file_name TINYTEXT NULL,                  -- Stored file name for the file
+  descr TEXT NULL,                          -- Description
+  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)
+);
+
+----
+
+-- 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 BOOLEAN NULL,                    -- A single special image in the current gallery for this entity
+  featured 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)
+);
+
+----
+
+-- 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)
+  notes TEXT NULL,                          -- General notes - Not displayed in front-end
+  old_member_id INT NULL,                   -- Old member ID if imported from old database
+  featured BOOLEAN DEFAULT '0',             -- Whether the member is featured
+  PRIMARY KEY (id),
+  INDEX(name(20)),
+  INDEX(member_slug(20)),
+  INDEX(created)
+);
+
+----
+
+-- Member Detail Display Stats Data - Totals of times detail page is displayed - Preserved for 2 years
+CREATE TABLE {prefix}member_detail_stats (
+  member INT NULL,                          -- ID of member
+  stat_type INT NULL,                       -- Type of stat 1 = day, 2 = week, 3 = month
+  stat_date DATE NULL,                      -- Date for which these stats are accumulated (date or first date of week or month)
+  clicks INT NULL,                          -- Number of Clicks
+  PRIMARY KEY (member, stat_type, stat_date),
+  INDEX (member),
+  INDEX (stat_type),
+  INDEX (stat_date)
+);
+
+----
+
+-- Member information version record - May be multiples per member - Only one with status "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,             -- Reference name for this member information record - Not displayed on front-end
+  descr TEXT NULL,                          -- Description
+  short_descr TEXT NULL,                    -- Short description
+  addr1 TINYTEXT NULL,                      -- Main member location 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 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
+  video_url TINYTEXT NULL,                  -- Video URL
+  video_file TINYTEXT NULL,                 -- Video File Name
+  video_title TINYTEXT NULL,                -- Video Title
+  video_descr TEXT NULL,                    -- Video Description
+  video_type INT NULL,                      -- Video Type - See plugin.ini video type table.
+  live_cam_url TINYTEXT NULL,               -- Live Cam URL
+  live_cam_title TINYTEXT NULL,             -- Live Cam Title
+  live_cam_descr TEXT NULL,                 -- Live Cam Description
+  live_cam_type INT NULL,                   -- Live Cam Type - See plugin.ini video type table.
+  mailing_addr1 TINYTEXT NULL,              -- Mailing Address 1
+  mailing_addr2 TINYTEXT NULL,              -- Mailing Address 2
+  mailing_city INT NULL,                    -- Mailing City  (Pointer to City in cities table)
+  mailing_state TINYTEXT NULL,              -- Mailing State (Two character state code - matches states.ini entries)
+  mailing_zip TINYTEXT NULL,                -- Mailing ZIP/Postal code
+  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,                          -- Description of region
+  short_descr TINYTEXT NULL,                -- Short description of region
+  PRIMARY KEY (id)
+);
+
+----
+
+-- 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 '0',
+  admin_debug_verbose BOOLEAN DEFAULT '0',
+  front_debug BOOLEAN DEFAULT '0',
+  front_debug_verbose BOOLEAN DEFAULT '0',
+  enable_members BOOLEAN DEFAULT '1',
+  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,
+  phone_infix TINYTEXT DEFAULT NULL,
+  default_state TINYTEXT DEFAULT NULL,
+  list_show_map BOOLEAN DEFAULT '1',
+  list_show_list BOOLEAN DEFAULT '1',
+  list_order_list SMALLINT DEFAULT '10',
+  list_pagination BOOLEAN DEFAULT '1',
+  list_pagination_count SMALLINT DEFAULT '20',
+  list_show_search_filters_opened BOOLEAN DEFAULT '0',
+  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_region BOOLEAN DEFAULT '1',
+  list_show_search_alpha BOOLEAN DEFAULT '1',
+  list_floating_search BOOLEAN DEFAULT '0',
+  list_floating_search_distance_top INTEGER DEFAULT '0',    -- How far from the top the sticky Search/Filters box should hover
+  list_show_detail_link BOOLEAN DEFAULT '1',
+  list_show_logo BOOLEAN DEFAULT '1',
+  list_logo_size TINYTEXT NULL,
+  list_logo_for_mobile BOOLEAN DEFAULT '1',
+  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 '0',
+  list_show_creditcards BOOLEAN DEFAULT '0',
+  list_show_amenities BOOLEAN DEFAULT '0',
+  list_show_logo_filler BOOLEAN DEFAULT '1',
+  list_show_live_cam BOOLEAN DEFAULT '1',
+  list_map_show_opened 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',
+  list_show_packages BOOLEAN DEFAULT '0',
+  list_show_packages_link BOOLEAN DEFAULT '0',
+  list_header_text TINYTEXT DEFAULT NULL,
+  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 '0',
+  detail_show_creditcards BOOLEAN DEFAULT '0',
+  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_show_events BOOLEAN DEFAULT '0',
+  detail_show_video BOOLEAN DEFAULT '0',
+  detail_show_live_cam BOOLEAN DEFAULT '0',
+  detail_top_offset_autoscroll INTEGER DEFAULT '0', -- Determines the distance from the top when autoscrolling to a section on member detail pages
+  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',
+  members_only_support_email TINYTEXT DEFAULT '',
+  members_only_support_phone TINYTEXT DEFAULT '',
+  PRIMARY KEY (id)
+);
+
+----
+
+-- Set default entry
+INSERT INTO {prefix}settings_general
+    ( id, time_zone, canonical_member_page, list_logo_size, list_map_logo_size, detail_logo_size, detail_map_logo_size, list_pagination, list_pagination_count)
+   VALUES
+    ( 1, 'America/Detroit', 'member-detail', 'large', 'thumb', 'large', 'thumb', '1', 20 )
+;
+
+----
+
+-- Terms used in site modifiable on Management page in admin - Only 1 entry in this table
+-- Terms 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,
+  term_webcam_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,
+    term_webcam_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',
+    'Webcam'
+    )
+;
+
+----
+
+-- Theme Settings - Only 1 entry in this table
+CREATE TABLE {prefix}settings_theme (
+    id INT NOT NULL AUTO_INCREMENT,
+    PRIMARY KEY (id)
+);
+
+----
+
+-- Default Theme Settings entry
+INSERT INTO {prefix}settings_theme
+    (
+    id
+    )
+   VALUES
+    (
+    1
+    )
+;
+
index b2e73a9..1e3162d 100644 (file)
@@ -54,7 +54,8 @@ $glmMembersDbVersions = array(
     '1.1.20' => array('version' => '1.1.20', 'tables' => 18, 'date' => '10/18/16'),
     '1.1.21' => array('version' => '1.1.21', 'tables' => 18, 'date' => '10/20/16'),
     '1.1.22' => array('version' => '1.1.22', 'tables' => 18, 'date' => '10/25/16'),
-    '1.1.23' => array('version' => '1.1.23', 'tables' => 18, 'date' => '12/29/16')
+    '1.1.23' => array('version' => '1.1.23', 'tables' => 18, 'date' => '12/29/16'),
+    '1.1.24' => array('version' => '1.1.24', 'tables' => 18, 'date' => '01/03/17'),
 );
 
 
diff --git a/setup/databaseScripts/update_database_V1.1.24.sql b/setup/databaseScripts/update_database_V1.1.24.sql
new file mode 100644 (file)
index 0000000..69da088
--- /dev/null
@@ -0,0 +1,14 @@
+-- Gaslight Media Members Database
+-- File Created: 01/03/17 12:54:00
+-- Database Version: 1.1.24
+-- 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 dashes
+-- Sets which character to use to separate phone numbers
+
+ALTER TABLE {prefix}settings_general ADD COLUMN list_pagination BOOLEAN DEFAULT '1';
+
+----
+
+ALTER TABLE {prefix}settings_general ADD COLUMN list_pagination_count SMALLINT DEFAULT '20';
index 23b59d3..f36fed0 100644 (file)
@@ -1,10 +1,10 @@
 {include file='admin/management/header.html'}
-    
-    
+
+
     <form action="{$thisUrl}?page={$thisPage}" method="post" enctype="multipart/form-data">
         <input type="hidden" name="glm_action" value="index">
         <input type="hidden" name="option" value="submit">
-   
+
         <h2 class="nav-tab-wrapper" style="margin-bottom: 1em;">
             <a id="glm-settings-debug" data-show-table="glm-table-debug" class="glm-settings-tab nav-tab nav-tab-active">Debug Settings</a>
             <a id="glm-settings-misc" data-show-table="glm-table-misc" class="glm-settings-tab nav-tab">Misc. Settings</a>
             {if $settingsUpdated}<span class="glm-notice glm-flash-updated glm-right">Settings Updated</span>{/if}
             {if $settingsUpdateError}<span class="glm-error glm-flash-updated glm-right">Settings Update Error</span>{/if}
         </h2>
-        
-        
+
+
             <!-- Debug Settings -->
-                   
+
         <table id="glm-table-debug" class="glm-admin-table glm-settings-table">
             <tr><td colspan="2"><h2>Debug Settings</h2></td></tr>
             <tr>
                 </td>
             </tr>
         </table>
-        
+
         <!-- Required Pages -->
-        
+
         <table id="glm-table-required-page" class="glm-admin-table glm-settings-table glm-hidden">
             {if $id_error}<span class="glm-error">'Page ID' input should be numerical, not empty and the page must exist</span>{/if}
             {if $title_error}<span class="glm-error">'Page Name' should not be blank</span>{/if}
             {foreach from=$requiredPages key=addon item=requiredPage  name=count}
             <tr><td colspan="2"><h2>Plugin: {$addon}</h2></td></tr>
-  
+
                 {foreach from=$requiredPage key=requiredPageName item=requiredPageData}
                 <tr>
                     <th>{$requiredPageName}</th>
@@ -85,9 +85,9 @@
                 {/foreach}
             {/foreach}
         </table>
-        
+
             <!-- Misc Settings -->
-            
+
         <table id="glm-table-misc" class="glm-admin-table glm-settings-table glm-hidden">
             <tr><td colspan="2"><h2>Misc. Settings</h2></td></tr>
             <tr>
                 </td>
             </tr>
         </table>
-        
+
             <!-- Member List Page Options -->
-                        
+
         <table id="glm-table-list" class="glm-admin-table glm-settings-table glm-hidden">
             <tr>
                 <td>
                                 </select>
                             </td>
                         </tr>
+                        <tr>
+                            <th>Pagination:</th>
+                            <td>
+                                <input type="checkbox" name="list_pagination"{if $genSettings.fieldData.list_pagination.value} checked="checked"{/if}>
+                            </td>
+                        </tr>
+                        <tr>
+                            <th>Pagination Count:</th>
+                            <td>
+                                <input type="text" name="list_pagination_count" value="{$genSettings.fieldData.list_pagination_count}">
+                            </td>
+                        </tr>
                         <tr><th>Show Member Name as Link to Detail:</th><td><input type="checkbox" name="list_show_detail_link"{if $genSettings.fieldData.list_show_detail_link.value} checked="checked"{/if}></td></tr>
                         <tr><th>List Header Text:</th><td><input type="text" name="list_header_text" value="{$genSettings.fieldData.list_header_text}" class="glm-form-text-input-small" placeholder="Members List"></td></tr>
                         <tr><th>Show Member Logo:</th><td><input type="checkbox" name="list_show_logo"{if $genSettings.fieldData.list_show_logo.value} checked="checked"{/if}></td></tr>
                                 </select>
                                 {if $genSettings.fieldFail.list_logo_size}<p>{$genSettings.fieldFail.list_logo_size}</p>{/if}
                             </td>
-                        </tr>            
+                        </tr>
                         <tr><th>Show Filler Image If No Member Logo:</th><td><input type="checkbox" name="list_show_logo_filler"{if $genSettings.fieldData.list_show_logo_filler.value} checked="checked"{/if}></td></tr>
                         <tr><th>Show Address:</th><td><input type="checkbox" name="list_show_address"{if $genSettings.fieldData.list_show_address.value} checked="checked"{/if}></td></tr>
                         </tr>
                             <tr>
                             <th>Address Options:</th>
-                            <td>  
+                            <td>
                                 <table class="glm-admin-table">
                                     <tr><th>Show Street:</th><td><input type="checkbox" name="list_show_street"{if $genSettings.fieldData.list_show_street.value} checked="checked"{/if}></td></tr>
                                     <tr><th>Show City, State, ZIP:</th><td><input type="checkbox" name="list_show_citystatezip"{if $genSettings.fieldData.list_show_citystatezip.value} checked="checked"{/if}></td></tr>
-                                    <tr><th>Show Country:</th><td><input type="checkbox" name="list_show_country"{if $genSettings.fieldData.list_show_country.value} checked="checked"{/if}></td></tr>                      
+                                    <tr><th>Show Country:</th><td><input type="checkbox" name="list_show_country"{if $genSettings.fieldData.list_show_country.value} checked="checked"{/if}></td></tr>
                                 </table>
                             </td>
                         </tr>
                         <tr><td colspan="2"><h2>Member List Map Options</h2></td></tr>
                         <tr><th>Show Map:</th><td><input type="checkbox" name="list_show_map"{if $genSettings.fieldData.list_show_map.value} checked="checked"{/if}></td></tr>
                         <tr><th>Show Member Name as Link to Detail:</th><td><input type="checkbox" name="list_map_show_detaillink"{if $genSettings.fieldData.list_map_show_detaillink.value} checked="checked"{/if}></td></tr>
-                        
+
                         <tr><th>Map Opened by Default:</th><td><input type="checkbox" name="list_map_show_opened"{if $genSettings.fieldData.list_map_show_opened.value} checked="checked"{/if}></td></tr>
                         <tr><th>Show Logo:</th><td><input type="checkbox" name="list_map_show_logo"{if $genSettings.fieldData.list_map_show_logo.value} checked="checked"{/if}></td></tr>
-                        
+
                         <tr>
                             <th>Logo Size:</th>
                             <td>
                                 </select>
                             </td>
                         </tr>
-                        
+
                         <tr><th>Show Description:</th><td><input type="checkbox" name="list_map_show_descr"{if $genSettings.fieldData.list_map_show_descr.value} checked="checked"{/if}></td></tr>
                         <tr><th>Show Short Description:</th><td><input type="checkbox" name="list_map_show_short_descr"{if $genSettings.fieldData.list_map_show_short_descr.value} checked="checked"{/if}></td></tr>
                         <tr><th>Show Address:</th><td><input type="checkbox" name="list_map_show_address"{if $genSettings.fieldData.list_map_show_address.value} checked="checked"{/if}></td></tr>
                 </td>
             </tr>
         </table>
-        
+
             <!-- Member Detail Page Options -->
-            
+
         <table id="glm-table-detail" class="glm-admin-table glm-settings-table glm-hidden">
             <tr>
                 <td>
                                 </select>
                                 {if $genSettings.fieldFail.detail_logo_size}<p>{$genSettings.fieldFail.detail_logo_size}</p>{/if}
                             </td>
-                        </tr>            
+                        </tr>
                         <tr><th>Show Address:</th><td><input type="checkbox" name="detail_show_address"{if $genSettings.fieldData.detail_show_address.value} checked="checked"{/if}></td></tr>
                         </tr>
                             <tr>
                             <th>Address Options:</th>
-                            <td>  
+                            <td>
                                 <table class="glm-admin-table">
                                     <tr><th>Show Street:</th><td><input type="checkbox" name="detail_show_street"{if $genSettings.fieldData.detail_show_street.value} checked="checked"{/if}></td></tr>
                                     <tr><th>Show City, State, ZIP:</th><td><input type="checkbox" name="detail_show_citystatezip"{if $genSettings.fieldData.detail_show_citystatezip.value} checked="checked"{/if}></td></tr>
-                                    <tr><th>Show Country:</th><td><input type="checkbox" name="detail_show_country"{if $genSettings.fieldData.detail_show_country.value} checked="checked"{/if}></td></tr>                      
+                                    <tr><th>Show Country:</th><td><input type="checkbox" name="detail_show_country"{if $genSettings.fieldData.detail_show_country.value} checked="checked"{/if}></td></tr>
                                 </table>
                             </td>
                         </tr>
                         <tr><th>Show Live Cam Feed:</th><td><input type="checkbox" name="detail_show_live_cam"{if $genSettings.fieldData.detail_show_live_cam.value} checked="checked"{/if}></td></tr>
                         <tr><th>Autoscroll Offset From Top (height of sticky nav):</th><td><input type="text" pattern="[0-9]{literal}{0,4}{/literal}" name="detail_top_offset_autoscroll" value="{$genSettings.fieldData.detail_top_offset_autoscroll}" class="glm-form-numeric-input" placeholder="0" maxlength="4">px</td></tr>
                     </table>
-                </td>  
+                </td>
                 <td>
                     <table class="glm-admin-table">
                         <tr><td colspan="2"><h2>Member Detail Map Options</h2></td></tr>
                         <tr><th>Show Amenities:</th><td><input type="checkbox" name="detail_map_show_amenities"{if $genSettings.fieldData.detail_map_show_amenities.value} checked="checked"{/if}></td></tr>
                         <tr><th>Show Directions:</th><td><input type="checkbox" name="detail_show_directions"{if $genSettings.fieldData.detail_show_directions.value} checked="checked"{/if}></td></tr>
                     </table>
-                </td>  
+                </td>
             </tr>
-        </table> 
+        </table>
                         <!-- Members Only Settings -->
-                   
+
         <table id="glm-table-members-only" class="glm-admin-table glm-settings-table">
             <tr><td colspan="2"><h2>Members Only Settings</h2></td></tr>
             <tr>
         </table>
         <input id="updateSettings" type="submit" value="Update Settings" class="">
     </form>
-    
+
     <script type="text/javascript">
-        
+
         jQuery(document).ready(function($) {
-            
+
             /*
              * Edit area tabs
              */
                 // Clear tabl highlights and hide all tables
                 $('.glm-settings-tab').removeClass('nav-tab-active');
                 $('.glm-settings-table').addClass('glm-hidden');
-                
+
                 // Highlight selected tab
                 $(this).addClass('nav-tab-active');
-                
+
                 // Show selected table
                 var table = $(this).attr('data-show-table');
                 $('#' + table).removeClass('glm-hidden');
-                
+
             });
-            
-            // Flash certain elements for a short time after display      
+
+            // Flash certain elements for a short time after display
             $(".glm-flash-updated").fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500);
-                    
+
             /*
              * Check for bad input or input changes
              */
-             
+
             // Check for any field errors and if found change related tab to error color.
             if ($('.glm-form-bad-input-debug').length) {
                 $('#glm-settings-debug').addClass('glm-bad-input-area');
             if ($('.glm-form-bad-input-detail').length) {
                 $('#glm-settings-detail').addClass('glm-bad-input-area');
             }
-            
+
             // Check for most input changes
             $('input, textarea, select, checkbox').on( 'change', function() {
                 glmPageUpdateRequired();
-            }); 
+            });
 
             /*
              * Checks for leaving the page
              */
             var glmSubmitRequired = false;
-             
+
             // Flag submit button when updates are required.
             function glmPageUpdateRequired() {
                 $('#updateSettings').addClass('glm-bad-input-area');
                 glmSubmitRequired = false;
                 return true;
             });
-            
+
             // If submit is required and we're laving the page, alert the user
             $(window).bind('beforeunload', function() {
                 if (glmSubmitRequired) {
index 9b0e31c..6af4869 100644 (file)
@@ -4,7 +4,6 @@
 ">
 {include file='front/members/header.html'}
         {apply_filters('glm-member-db-front-members-list-pageTop', '')}
-        
 <div class="glm-member-list-inner-wrapper">
     {if $settings.list_show_map}
             <div id="glm-member-list-map-toggle" class="button glm-button">Map</div>
         <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page</a>
         <br>
         showing {$start} through {$lastDisplayed} of {$filteredMembersFound}
-    {/if}    
-        
+    {/if}
+
 
     {if $view == grid}
         <ul class="small-block-grid-1 medium-block-grid-2 large-block-grid-3">
          </div>
 
  {/if} {*end grid view check*}
+
     {if $paging}
         <br>
         <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&pageSelect=Previous&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}" class="glm-alpha-link" {if !$prevStart} style="pointer-events: none; opacity: 0.5;"{/if}>Previous page</a>
         <a href="{$thisUrl}?glm_action=list&textSearch={$textSearch}&categorySearch={$catSearchSelected}&regionSearch={$regionSearchSelected}&pageSelect=Next&prevStart={$prevStart}&nextStart={$nextStart}&limit={$limit}&alpha={$alphaSelected}" class="glm-alpha-link" {if !$nextStart} style="pointer-events: none; opacity: 0.5;"{/if}>Next page</a>
         <br>
         showing {$start} through {$lastDisplayed} of {$filteredMembersFound}
-    {/if}    
+    {/if}
+
         {apply_filters('glm-member-db-front-members-list-pageBottom', '')}
  {else}
         <div>(no {$terms.term_member_plur} listed)</div>