From: Chuck Scott Date: Tue, 3 Apr 2018 21:07:37 +0000 (-0400) Subject: Added Payment Processer Classes - Added configuration options X-Git-Tag: v2.10.28^2~5 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=bd1bddc1090fbc79151be8245f6f3e6dc288fd7b;p=WP-Plugins%2Fglm-member-db.git Added Payment Processer Classes - Added configuration options Fixed problem with checking status of capabilities in glmPluginSupport.php Added settings for reCAPTCHA and Cluster Margers to Management and Database Added lib/paymentProcessors directory with payment processor classes and test code. Updated Authorize.net payment processor class to new API and added stored payment profiles. --- diff --git a/classes/data/settings/dataSettingsGeneral.php b/classes/data/settings/dataSettingsGeneral.php index 98aa1b8e..e8211ebf 100644 --- a/classes/data/settings/dataSettingsGeneral.php +++ b/classes/data/settings/dataSettingsGeneral.php @@ -157,14 +157,14 @@ class GlmDataSettingsGeneral extends GlmDataAbstract 'type' => 'checkbox', 'use' => 'a' ), - + // Enable File Library Menu 'file_library' => array( 'field' => 'file_library', 'type' => 'checkbox', 'use' => 'a' ), - + // Google Maps API Key 'google_maps_api_key' => array( 'field' => 'google_maps_api_key', @@ -222,7 +222,6 @@ class GlmDataSettingsGeneral extends GlmDataAbstract 'use' => 'a' ), - // Default State 'default_state' => array ( 'field' => 'default_state', @@ -255,6 +254,34 @@ class GlmDataSettingsGeneral extends GlmDataAbstract 'use' => 'a' ), + // reCAPTCHA Site Key + 'recaptcha_site_key' => array( + 'field' => 'recaptcha_site_key', + 'type' => 'text', + 'use' => 'a' + ), + + // reCAPTCHA Secret Key + 'recaptcha_secret_key' => array( + 'field' => 'recaptcha_secret_key', + 'type' => 'text', + 'use' => 'a' + ), + + // reCAPTCHA Header Code + 'recaptcha_header_code' => array( + 'field' => 'recaptcha_header_code', + 'type' => 'text', + 'use' => 'a' + ), + + // reCAPTCHA Form Code + 'recaptcha_form_code' => array( + 'field' => 'recaptcha_form_code', + 'type' => 'text', + 'use' => 'a' + ), + /* * Member Info edit tab selection */ @@ -625,6 +652,14 @@ class GlmDataSettingsGeneral extends GlmDataAbstract */ + // Google Maps Show Cluster Markers + 'use_cluster_markers' => array( + 'field' => 'use_cluster_markers', + 'type' => 'checkbox', + 'default' => false, + 'use' => 'a' + ), + // Google Map Opened 'list_map_show_opened' => array( 'field' => 'list_map_show_opened', diff --git a/classes/glmPluginSupport.php b/classes/glmPluginSupport.php index 7b473365..cdff7fff 100644 --- a/classes/glmPluginSupport.php +++ b/classes/glmPluginSupport.php @@ -445,6 +445,7 @@ function glmMembersInstallErrorsNotice() { * Check if a particular capability exists for the current user and if it's checked * * If $permit is already false, we just return that since we can only withdraw permission with these tests, not add it. + * * @param $cap string Capability to check * @param $permit boolean Used to pass on pre-existing permission value * @@ -452,20 +453,26 @@ function glmMembersInstallErrorsNotice() { */ function glmMembersUserCan( $cap, $permit ) { + // If we're already passed a false, then don't check any further. + if (!$permit) { + return $permit; + } + + // Get the current user information static $glmUser; if ( !$glmUser ) { $glmUser = wp_get_current_user(); } - if (!$permit) { - return false; - } + // Select the capabilities array for this user $glmMembersCaps = $glmUser->allcaps; - if (isset($glmMembersCaps[$cap])) { - return $permit; + // If the capability doesn't exist, then don't permit + if (!isset($glmMembersCaps[$cap])) { + return false; } + // Otherwise let the standard WordPress function check it return current_user_can($cap); } diff --git a/css/admin.css b/css/admin.css index 5a9b271c..3cac1b9f 100644 --- a/css/admin.css +++ b/css/admin.css @@ -173,6 +173,9 @@ .glm-form-text-input-medium-long { width: 50em; } +.glm-form-text-input-long { + width: 70em; +} .glm-form-textarea { width: 60%; } diff --git a/index.php b/index.php index c864a233..382d03ea 100644 --- a/index.php +++ b/index.php @@ -47,7 +47,7 @@ if (!defined('ABSPATH')) { */ define('GLM_MEMBERS_PLUGIN_VERSION', '2.10.27'); -define('GLM_MEMBERS_PLUGIN_DB_VERSION', '1.1.34'); +define('GLM_MEMBERS_PLUGIN_DB_VERSION', '1.1.35'); // Check if plugin version is not current in WordPress option and if needed updated it if (GLM_MEMBERS_PLUGIN_VERSION != get_option('glmMembersDatabasePluginVersion')) { diff --git a/lib/paymentProcessors/Authorize.Net/paymentGateway.php b/lib/paymentProcessors/Authorize.Net/paymentGateway.php index a458e2ec..ff5179f1 100644 --- a/lib/paymentProcessors/Authorize.Net/paymentGateway.php +++ b/lib/paymentProcessors/Authorize.Net/paymentGateway.php @@ -29,6 +29,14 @@ use net\authorize\api\controller as AnetController; * @license http://www.gaslightmedia.com Gaslightmedia * @release SVN: $Id: AuthorizeNet.php,v 1.0 2011/01/25 19:31:47 cscott Exp $ * @link <> + */ + +/* + * See paymentProcessorsTest.php in paymentProcessors directory for sample and test code. + * + * See following URL for API documentation (hover over "API" at top of page). + * https://developer.authorize.net/api/ + * */ class PaymentGateway @@ -72,8 +80,8 @@ class PaymentGateway * 1 = Local Transaction Approval Test * 2 = Local Transaction Decline Test * 3 = On-Line Transaction Test (SANDBOX) - * conf True if Authorize.net should send confirmation E-Mail to customer - * email Merchant E-Mail address to receive notices from Authorize.net for the transaction + * conf True if Authorize.net should send confirmation E-Mail to customer - Not used by Authroize.net API + * email Merchant E-Mail address to receive notices - Not used by Authorize.net API * * API Access for Authorize.net SANDBOX * API Login ID: 44pvQ8D7d diff --git a/lib/paymentProcessors/paymentProcessorsTest.php b/lib/paymentProcessors/paymentProcessorsTest.php index 02263dc8..d6849a8d 100644 --- a/lib/paymentProcessors/paymentProcessorsTest.php +++ b/lib/paymentProcessors/paymentProcessorsTest.php @@ -31,7 +31,7 @@ $testMode = 3; // Required * 1 = Charge and Save Cust Card Data * 2 = Charge using Saved Cust Card Data */ -$transOption = 0; // Required +$transOption = 1; // Required /** * Account Information @@ -47,10 +47,13 @@ $accountKey = '8rj6ME772K9Pe9pJ'; // Required /** * Confirmation settigngs * + * NOTE: Not used by Authorize.net API. See Authorize.net merchant portal + * Other payment processors may use this data. + * * customerConfirmation True if a confirmation should be sent to customer via E-Mail * vendorConfirmation Merchant E-Mail address to receive transaction notices from payment processor */ -$customerConfirmation = false; // Required +$customerConfirmation = false; // Optional $vendorConfirmationEmail = ''; // Optional /** @@ -62,16 +65,16 @@ $vendorConfirmationEmail = ''; // Optional * invoiceNumb Up to 20 characters * */ -$vendorName = 'Test Vendor'; // Required -$charge = 141.00; // Required +$vendorName = 'Test Vendor'; // Required - May also contain short discription of what's sold +$charge = 143.00; // Required $customerProfileId = ''; // Required for transOption = 2 $paymentProfileId = ''; // Required for transOption = 2 $cardType = ''; // Optional $cardNumber = '6011000000000012'; // Required for transOption = 0 & 1 $nameOnCard = ''; // Optional -$cardExp = '2023-01'; // Required for transOption = 0 & 1 -$cardCode = '123'; // Required for transOption = 0 & 1 -$invoiceNumb = '141'; // Required +$cardExp = '2001-03'; // Required for transOption = 0 & 1 +$cardCode = '234'; // Required for transOption = 0 & 1 +$invoiceNumb = '144'; // Required /** * Customer Contact Information @@ -105,17 +108,17 @@ $account = array( 'login' => $accountLogin, // Required 'key' => $accountKey, // Required 'test' => $testMode, // Required - 'conf' => $customerConfirmation, // Required - 'email' => $vendorConfirmationEmail // Required if "conf" above is true + 'conf' => $customerConfirmation, // Depends on payment processor used - Not used by Authorize.net + 'email' => $vendorConfirmationEmail // Depends on payment processor used - Not used by Authorize.net ); // Create Payment Array - Required $payment = array( - 'transOpt' => $transOption, // Required + 'transOpt' => $transOption, // Required for Authorize.net - Otherwise not required 'name' => $vendorName, // Required 'charge' => $charge, // Required - 'customerProfileId' => $customerProfileId, // Required for transOption = 2 - 'paymentProfileId' => $paymentProfileId, // Required for transOption = 2 + 'customerProfileId' => $customerProfileId, // Required for Authorize.net for transOption = 2 + 'paymentProfileId' => $paymentProfileId, // Required for Authorize.net for transOption = 2 'cctype' => $cardType, // Optional (depends on payment processor) 'ccname' => $nameOnCard, // Not required for Authorize.net 'ccnumb' => $cardNumber, // Required for transOption = 0 & 1 @@ -126,7 +129,7 @@ $payment = array( // Customer Information - Required for transOption = 0 & 1 $customer = array( - 'id' => $custId, // Alphanumeric - Required if creating or using stored customer profile - must be unique to customer + 'id' => $custId, // Alphanumeric - Required if creating or using stored customer profiles with Authorize.net - must be unique to customer // 'type' => $custType, // 'individual' or 'business' - not required 'fname' => $custFname, // Required 'lname' => $custLname, // Required diff --git a/setup/databaseScripts/create_database_V1.1.34.sql b/setup/databaseScripts/create_database_V1.1.34.sql deleted file mode 100644 index 26daffa5..00000000 --- a/setup/databaseScripts/create_database_V1.1.34.sql +++ /dev/null @@ -1,651 +0,0 @@ --- Gaslight Media Members Database --- File Created: 12/29/16 12:06:00 --- Database Version: 1.1.32 --- 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 NOT NULL, -- ID of member - stat_type INT NOT NULL, -- Type of stat 1 = day, 2 = week, 3 = month - stat_date DATE NOT 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 - 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) -); - ----- - --- 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 TINYTEXT 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), - INDEX(old_member_id(20)) -); - ----- - --- Member Detail Display Stats Data - Totals of times detail page is displayed - Preserved for 2 years -CREATE TABLE {prefix}member_detail_stats ( - member INT NOT NULL, -- ID of member - stat_type INT NOT NULL, -- Type of stat 1 = day, 2 = week, 3 = month - stat_date DATE NOT 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 - county 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 - reservation_url TEXT NULL, -- Reservation URL - 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), - INDEX(county) -); - ----- - --- 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) -); - ----- - --- Counties -CREATE TABLE {prefix}counties ( - id INT NOT NULL AUTO_INCREMENT, - name TINYTEXT NULL, -- Name of county - descr TEXT NULL, -- Description of county - short_descr TINYTEXT NULL, -- Short description of county - PRIMARY KEY (id) -); - ----- - --- File Library Cateogries - used with "Files Library" - Created due to PDF failures in WordPress Media Library -CREATE TABLE {prefix}file_library_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) -); - ----- - --- Files Library - Files are stored under /wp-content/uploads/glm-member-db/filesLibrary/ -CREATE TABLE {prefix}file_library ( - id INT NOT NULL AUTO_INCREMENT, - name TINYTEXT NULL, -- Original name of the file - might be URL if copied via HTTP - file_name TINYTEXT NULL, -- Stored file name for the file - descr TEXT NULL, -- Description - title TINYTEXT NULL, -- File title - last_access_time DATETIME NULL, -- Upload time or last access time - PRIMARY KEY (id), - INDEX(name(20)), - INDEX(file_name(20)) -); - ----- - --- 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, - phone_format TINYTEXT DEFAULT NULL, - default_state TINYTEXT DEFAULT NULL, - enable_counties BOOLEAN DEFAULT '0', - enable_multiple_profiles BOOLEAN DEFAULT '0', - memb_info_location BOOLEAN DEFAULT '1', - memb_info_contact BOOLEAN DEFAULT '1', - memb_info_categories BOOLEAN DEFAULT '1', - memb_info_images BOOLEAN DEFAULT '1', - memb_info_files BOOLEAN DEFAULT '1', - memb_info_video BOOLEAN DEFAULT '1', - memb_info_cam BOOLEAN DEFAULT '1', - file_library BOOLEAN DEFAULT '0', - 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 '', - short_desc_char_limit INTEGER DEFAULT '120', -- How many characters the short description is limited to - also used for importing - 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, enable_counties, enable_multiple_profiles) - VALUES - ( 1, 'America/Detroit', 'member-detail', 'large', 'thumb', 'large', 'thumb', '1', 20, 0, 0 ) -; - ----- - --- 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_counties 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_county TINYTEXT NULL, - term_county_cap TINYTEXT NULL, - term_county_plur TINYTEXT NULL, - term_county_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_counties, - 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_county, - term_county_cap, - term_county_plur, - term_county_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', - 'Counties', - 'Regions', - 'General Settings', - 'Terms & Phrases', - 'Development', - 'member', - 'Member', - 'members', - 'Members', - 'location', - 'Location', - 'locations', - 'Locations', - 'county', - 'County', - 'counties', - 'Counties', - 'facility', - 'Facility', - 'facilities', - 'Facilities', - 'attraction', - 'Attraction', - 'attractions', - 'Attractions', - 'contact', - 'Contact', - 'contacts', - 'Contacts', - 'Webcam' - ) -; - ----- - --- Shortcode Output Cache -CREATE TABLE {prefix}cache ( - shortcode TINYTEXT NULL, - cache_code TINYTEXT NOT NULL, - created DATETIME NULL, - html MEDIUMTEXT NULL, - PRIMARY KEY (cache_code(20)), - INDEX (created) -); - ----- - --- 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.35.sql b/setup/databaseScripts/create_database_V1.1.35.sql new file mode 100644 index 00000000..d42a32ef --- /dev/null +++ b/setup/databaseScripts/create_database_V1.1.35.sql @@ -0,0 +1,656 @@ +-- Gaslight Media Members Database +-- File Created: 12/29/16 12:06:00 +-- Database Version: 1.1.35 +-- 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 NOT NULL, -- ID of member + stat_type INT NOT NULL, -- Type of stat 1 = day, 2 = week, 3 = month + stat_date DATE NOT 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 + 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) +); + +---- + +-- 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 TINYTEXT 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), + INDEX(old_member_id(20)) +); + +---- + +-- Member Detail Display Stats Data - Totals of times detail page is displayed - Preserved for 2 years +CREATE TABLE {prefix}member_detail_stats ( + member INT NOT NULL, -- ID of member + stat_type INT NOT NULL, -- Type of stat 1 = day, 2 = week, 3 = month + stat_date DATE NOT 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 + county 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 + reservation_url TEXT NULL, -- Reservation URL + 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), + INDEX(county) +); + +---- + +-- 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) +); + +---- + +-- Counties +CREATE TABLE {prefix}counties ( + id INT NOT NULL AUTO_INCREMENT, + name TINYTEXT NULL, -- Name of county + descr TEXT NULL, -- Description of county + short_descr TINYTEXT NULL, -- Short description of county + PRIMARY KEY (id) +); + +---- + +-- File Library Cateogries - used with "Files Library" - Created due to PDF failures in WordPress Media Library +CREATE TABLE {prefix}file_library_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) +); + +---- + +-- Files Library - Files are stored under /wp-content/uploads/glm-member-db/filesLibrary/ +CREATE TABLE {prefix}file_library ( + id INT NOT NULL AUTO_INCREMENT, + name TINYTEXT NULL, -- Original name of the file - might be URL if copied via HTTP + file_name TINYTEXT NULL, -- Stored file name for the file + descr TEXT NULL, -- Description + title TINYTEXT NULL, -- File title + last_access_time DATETIME NULL, -- Upload time or last access time + PRIMARY KEY (id), + INDEX(name(20)), + INDEX(file_name(20)) +); + +---- + +-- 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, + phone_format TINYTEXT DEFAULT NULL, + default_state TINYTEXT DEFAULT NULL, + enable_counties BOOLEAN DEFAULT '0', + enable_multiple_profiles BOOLEAN DEFAULT '0', + memb_info_location BOOLEAN DEFAULT '1', + memb_info_contact BOOLEAN DEFAULT '1', + memb_info_categories BOOLEAN DEFAULT '1', + memb_info_images BOOLEAN DEFAULT '1', + memb_info_files BOOLEAN DEFAULT '1', + memb_info_video BOOLEAN DEFAULT '1', + memb_info_cam BOOLEAN DEFAULT '1', + file_library BOOLEAN DEFAULT '0', + 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 '', + short_desc_char_limit INTEGER DEFAULT '120', -- How many characters the short description is limited to - also used for importing + use_cluster_markers BOOLEAN DEFAULT '0', -- Flag to say if cluster markers should be use in maps + recaptcha_site_key TINYTEXT DEFAULT '', -- reCAPTCHA site key + recaptcha_secret_key TINYTEXT DEFAULT '', -- reCAPTCHA secret key + recaptcha_header_code TEXT DEFAULT '', -- reCAPTCHA code for page header + recaptcha_form_code TEXT DEFAULT '', -- reCAPTCHA code for captcha form field + 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, enable_counties, enable_multiple_profiles) + VALUES + ( 1, 'America/Detroit', 'member-detail', 'large', 'thumb', 'large', 'thumb', '1', 20, 0, 0 ) +; + +---- + +-- 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_counties 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_county TINYTEXT NULL, + term_county_cap TINYTEXT NULL, + term_county_plur TINYTEXT NULL, + term_county_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_counties, + 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_county, + term_county_cap, + term_county_plur, + term_county_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', + 'Counties', + 'Regions', + 'General Settings', + 'Terms & Phrases', + 'Development', + 'member', + 'Member', + 'members', + 'Members', + 'location', + 'Location', + 'locations', + 'Locations', + 'county', + 'County', + 'counties', + 'Counties', + 'facility', + 'Facility', + 'facilities', + 'Facilities', + 'attraction', + 'Attraction', + 'attractions', + 'Attractions', + 'contact', + 'Contact', + 'contacts', + 'Contacts', + 'Webcam' + ) +; + +---- + +-- Shortcode Output Cache +CREATE TABLE {prefix}cache ( + shortcode TINYTEXT NULL, + cache_code TINYTEXT NOT NULL, + created DATETIME NULL, + html MEDIUMTEXT NULL, + PRIMARY KEY (cache_code(20)), + INDEX (created) +); + +---- + +-- 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/dbVersions.php b/setup/databaseScripts/dbVersions.php index edf1903a..2a1592ef 100644 --- a/setup/databaseScripts/dbVersions.php +++ b/setup/databaseScripts/dbVersions.php @@ -66,6 +66,7 @@ $glmMembersDbVersions = array( '1.1.32' => array('version' => '1.1.32', 'tables' => 20, 'date' => '06/14/17'), '1.1.33' => array('version' => '1.1.33', 'tables' => 22, 'date' => '01/15/18'), '1.1.34' => array('version' => '1.1.34', 'tables' => 22, 'date' => '01/23/18'), + '1.1.35' => array('version' => '1.1.35', 'tables' => 22, 'date' => '04/03/18') ); diff --git a/setup/databaseScripts/update_database_V1.1.35.sql b/setup/databaseScripts/update_database_V1.1.35.sql new file mode 100644 index 00000000..19fbb33a --- /dev/null +++ b/setup/databaseScripts/update_database_V1.1.35.sql @@ -0,0 +1,25 @@ +-- Gaslight Media Members Database +-- File Created: 04/03/18 +-- Database Version: 1.1.35 +-- 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. + +ALTER TABLE {prefix}settings_general ADD COLUMN use_cluster_markers BOOLEAN DEFAULT '0'; + +---- + +ALTER TABLE {prefix}settings_general ADD COLUMN recaptcha_site_key TINYTEXT; + +---- + +ALTER TABLE {prefix}settings_general ADD COLUMN recaptcha_secret_key TINYTEXT; + +---- + +ALTER TABLE {prefix}settings_general ADD COLUMN recaptcha_header_code TEXT; + +---- + +ALTER TABLE {prefix}settings_general ADD COLUMN recaptcha_form_code TEXT; diff --git a/views/admin/management/index.html b/views/admin/management/index.html index dd82dcd7..e7ac627b 100644 --- a/views/admin/management/index.html +++ b/views/admin/management/index.html @@ -129,6 +129,34 @@ + + +

reCAPTCHA Settings

+ + Site Key: + + + + + + Secret Key: + + + + + + Code for Header: + + + + + + Code for Form: + + + + +

Misc. Settings

@@ -290,6 +318,7 @@ +

Member List Map Options

Show Map:
Show Map Cluster Markers:
Show Member Name as Link to Detail:
Map Opened by Default: