From 159c7241233593a3cf16e0b5d3fee7b41c74c9e5 Mon Sep 17 00:00:00 2001 From: Chuck Scott Date: Thu, 20 Oct 2016 16:28:00 -0400 Subject: [PATCH] Added Pseudo-Random Sort odering for members and an option to dissable members in the main plugin. Added List Sort Order arrays to glm-member-db plugin.ini. Added Member List Order selection to Member list Options in Management (list_order_list). Added "Enable Members" option to Misc Settings in Management (enable_members). Added list_order_list and "enable_members" fields to settings_general table in create_database.sql. Created update_database_V1.1.20.sql file to add list_order_list and enable_members to settings_general. Updated create_database and drop_database in databaseScripts to the new database version 1.1.20. Added list_order_list and enable_members fields to dataSettingsGeneral.php Data Class. Added "Mmeber List Order" option to Member List options tab in Management - General Settings. Added "Enable Member" option to Misc Settings tab in Management - General Settings. Updated front-end members list model front/members/list.php to check the list_order_list setting to determine sort order. --- classes/data/settings/dataSettingsGeneral.php | 48 +++++++++++++------ config/plugin.ini | 9 ++++ index.php | 2 +- models/front/members/list.php | 18 +++++-- ...1.1.19.sql => create_database_V1.1.20.sql} | 2 + setup/databaseScripts/dbVersions.php | 3 +- ..._V1.1.19.sql => drop_database_V1.1.20.sql} | 0 .../update_database_V1.1.20.sql | 22 +++++++++ views/admin/management/index.html | 17 +++++++ 9 files changed, 101 insertions(+), 20 deletions(-) rename setup/databaseScripts/{create_database_V1.1.19.sql => create_database_V1.1.20.sql} (99%) rename setup/databaseScripts/{drop_database_V1.1.19.sql => drop_database_V1.1.20.sql} (100%) create mode 100644 setup/databaseScripts/update_database_V1.1.20.sql diff --git a/classes/data/settings/dataSettingsGeneral.php b/classes/data/settings/dataSettingsGeneral.php index 4f875602..3f4cc903 100644 --- a/classes/data/settings/dataSettingsGeneral.php +++ b/classes/data/settings/dataSettingsGeneral.php @@ -151,6 +151,13 @@ class GlmDataSettingsGeneral extends GlmDataAbstract * Misc Settings */ + // Enable Members + 'enable_members' => array( + 'field' => 'enable_members', + 'type' => 'checkbox', + 'use' => 'a' + ), + // Google Maps API Key 'google_maps_api_key' => array( 'field' => 'google_maps_api_key', @@ -193,14 +200,14 @@ class GlmDataSettingsGeneral extends GlmDataAbstract 'type' => 'text', 'use' => 'a' ), - + // Character to use as phone infix 'phone_infix' => array( 'field' => 'phone_infix', 'type' => 'text', 'use' => 'a' ), - + // Default State 'default_state' => array ( 'field' => 'default_state', @@ -210,13 +217,13 @@ class GlmDataSettingsGeneral extends GlmDataAbstract 'force_list' => true, 'use' => 'a' ), - + /* * Front-end Member Search Options */ - + // Search Filters Opened 'list_show_search_filters_opened' => array( 'field' => 'list_show_search_filters_opened', @@ -224,7 +231,7 @@ class GlmDataSettingsGeneral extends GlmDataAbstract 'default' => false, 'use' => 'a' ), - + // Front-end Listings - Show Map 'list_show_map' => array( 'field' => 'list_show_map', @@ -241,6 +248,17 @@ class GlmDataSettingsGeneral extends GlmDataAbstract 'use' => 'a' ), + // Front-end Listings - Member List Order + 'list_order_list' => array( + 'field' => 'list_order_list', + 'type' => 'list', + 'list' => $this->config['sort_order'], + 'required' => true, + 'default' => $this->config['sort_order_numb']['Alpha-Numeric'], + 'force_list' => true, + 'use' => 'a' + ), + // Front-end Listings - Show List 'list_header_text' => array( 'field' => 'list_header_text', @@ -332,8 +350,8 @@ class GlmDataSettingsGeneral extends GlmDataAbstract // Front-end Listings - Logo Size 'list_logo_size' => array( 'field' => 'list_logo_size', - 'type' => 'list', - 'list' => $this->config['image_sizes'], + 'type' => 'list', + 'list' => $this->config['image_sizes'], 'force_list' => true, 'use' => 'a' ), @@ -477,7 +495,7 @@ class GlmDataSettingsGeneral extends GlmDataAbstract * Front-end Member Listing Map Options */ - + // Google Map Opened 'list_map_show_opened' => array( 'field' => 'list_map_show_opened', @@ -485,7 +503,7 @@ class GlmDataSettingsGeneral extends GlmDataAbstract 'default' => false, 'use' => 'a' ), - + // Front-end Listings - Map Show Detail Link 'list_map_show_detaillink' => array( 'field' => 'list_map_show_detaillink', @@ -505,8 +523,8 @@ class GlmDataSettingsGeneral extends GlmDataAbstract // Front-end Listings - Map Logo Size 'list_map_logo_size' => array( 'field' => 'list_map_logo_size', - 'type' => 'list', - 'list' => $this->config['image_sizes'], + 'type' => 'list', + 'list' => $this->config['image_sizes'], 'force_list' => true, 'use' => 'a' ), @@ -739,7 +757,7 @@ class GlmDataSettingsGeneral extends GlmDataAbstract 'default' => false, 'use' => 'a' ), - + // Front-end Member Detail - Show Toll Free 'detail_show_tollfree' => array( 'field' => 'detail_show_tollfree', @@ -827,7 +845,7 @@ class GlmDataSettingsGeneral extends GlmDataAbstract 'default' => false, 'use' => 'a' ), - + // Front-end Member Detail - Show Video 'detail_show_video' => array( 'field' => 'detail_show_video', @@ -835,7 +853,7 @@ class GlmDataSettingsGeneral extends GlmDataAbstract 'default' => false, 'use' => 'a' ), - + // Front-end Member Detail - Show Live Cam 'detail_show_live_cam' => array( 'field' => 'detail_show_live_cam', @@ -984,7 +1002,7 @@ class GlmDataSettingsGeneral extends GlmDataAbstract 'default' => false, 'use' => 'a' ), - + /* * Front-end Member Detail Map Options */ diff --git a/config/plugin.ini b/config/plugin.ini index df74ff41..98ff8050 100644 --- a/config/plugin.ini +++ b/config/plugin.ini @@ -39,6 +39,15 @@ image_sizes['small'] = 'Small' image_sizes['thumb'] = 'Thumbnail' image_sizes['grid'] = 'Grid' +; +; List Sort Order Options +; +sort_order[10] = 'Alpha-Numeric' +sort_order[20] = 'Pseudo-Random' + +sort_order_numb['Alpha-Numeric'] = 10 +sort_order_numb['Pseudo-Random'] = 20 + ; ; Entry Status Types ; diff --git a/index.php b/index.php index 8d6ce64b..f8afad17 100644 --- a/index.php +++ b/index.php @@ -39,7 +39,7 @@ */ define('GLM_MEMBERS_PLUGIN_VERSION', '2.6.6'); -define('GLM_MEMBERS_PLUGIN_DB_VERSION', '1.1.19'); +define('GLM_MEMBERS_PLUGIN_DB_VERSION', '1.1.20'); // 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/models/front/members/list.php b/models/front/members/list.php index 52cb0906..4324d7ea 100644 --- a/models/front/members/list.php +++ b/models/front/members/list.php @@ -552,9 +552,21 @@ class GlmMembersFront_members_list extends GlmDataMemberInfo // Get stats for the current selection $membersFound = $this->getStats(str_replace('T.', '', $where)); - // Get member list and sort - Currently using pseudo-random order - // $list = $this->getList($where.$alphaWhere, 'member_name'); - $list = $this->getList($where.$alphaWhere, 'pseudo-random'); + // Get member list sorted as specified + switch ($this->config['settings']['list_order_list']) { + + // Pseudo-Random list order + case $this->config['sort_order_numb']['Pseudo-Random']: + $list = $this->getList($where.$alphaWhere, 'pseudo-random'); + break; + + // Default is alpha-numeric list order + default: + case $this->config['sort_order_numb']['Alpha-Numeric']: + $list = $this->getList($where.$alphaWhere, 'member_name'); + break; + + } if (GLM_MEMBERS_PLUGIN_FRONT_DEBUG) { glmMembersFront::addNotice($list, 'DataBlock', 'Member Data'); diff --git a/setup/databaseScripts/create_database_V1.1.19.sql b/setup/databaseScripts/create_database_V1.1.20.sql similarity index 99% rename from setup/databaseScripts/create_database_V1.1.19.sql rename to setup/databaseScripts/create_database_V1.1.20.sql index 86e7d14f..31244dd0 100644 --- a/setup/databaseScripts/create_database_V1.1.19.sql +++ b/setup/databaseScripts/create_database_V1.1.20.sql @@ -261,6 +261,7 @@ CREATE TABLE {prefix}settings_general ( 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', @@ -271,6 +272,7 @@ CREATE TABLE {prefix}settings_general ( 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', diff --git a/setup/databaseScripts/dbVersions.php b/setup/databaseScripts/dbVersions.php index d31121a8..415fd16c 100644 --- a/setup/databaseScripts/dbVersions.php +++ b/setup/databaseScripts/dbVersions.php @@ -50,7 +50,8 @@ $glmMembersDbVersions = array( '1.1.16' => array('version' => '1.1.16', 'tables' => 18, 'date' => '8/22/16'), '1.1.17' => array('version' => '1.1.17', 'tables' => 18, 'date' => '8/29/16'), '1.1.18' => array('version' => '1.1.18', 'tables' => 18, 'date' => '9/16/16'), - '1.1.19' => array('version' => '1.1.19', 'tables' => 18, 'date' => '9/20/16') + '1.1.19' => array('version' => '1.1.19', 'tables' => 18, 'date' => '9/20/16'), + '1.1.20' => array('version' => '1.1.20', 'tables' => 18, 'date' => '10/20/16') ); diff --git a/setup/databaseScripts/drop_database_V1.1.19.sql b/setup/databaseScripts/drop_database_V1.1.20.sql similarity index 100% rename from setup/databaseScripts/drop_database_V1.1.19.sql rename to setup/databaseScripts/drop_database_V1.1.20.sql diff --git a/setup/databaseScripts/update_database_V1.1.20.sql b/setup/databaseScripts/update_database_V1.1.20.sql new file mode 100644 index 00000000..14c58fde --- /dev/null +++ b/setup/databaseScripts/update_database_V1.1.20.sql @@ -0,0 +1,22 @@ +-- Gaslight Media Members Database +-- File Created: 10/20/16 10:14:00 +-- Database Version: 1.1.20 +-- 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_order_list SMALLINT NULL; + +---- + +UPDATE {prefix}settings_general SET list_order_list = 10; + +---- + +ALTER TABLE {prefix}settings_general ADD COLUMN enable_members BOOLEAN NULL; + +---- + +UPDATE {prefix}settings_general SET enable_members = true; diff --git a/views/admin/management/index.html b/views/admin/management/index.html index 9ebdb464..c13e83bf 100644 --- a/views/admin/management/index.html +++ b/views/admin/management/index.html @@ -90,6 +90,13 @@ + + + +

Misc. Settings

Enable Members: + + (Only needed until Members are removed from GLM Associate.) +
Google Maps API Key: @@ -163,6 +170,16 @@ + + + + -- 2.17.1

Member List Display Options

Show Member List:
Member List Order + +
Show Member Name as Link to Detail:
List Header Text:
Show Member Logo: