From 19b8da3fb8394632697012bd517e91bb0785c0d1 Mon Sep 17 00:00:00 2001 From: Chuck Scott Date: Thu, 2 Jun 2016 13:15:12 -0400 Subject: [PATCH] Added video data for member info, character counts for input fields, and other fixes --- classes/data/dataMemberInfo.php | 37 +++++ config/plugin.ini | 23 +-- index.php | 2 +- lib/GlmDataAbstract/DataAbstract.php | 5 +- ..._V1.1.7.sql => create_database_V1.1.8.sql} | 5 + setup/databaseScripts/dbVersions.php | 3 +- ...se_V1.1.5.sql => drop_database_V1.1.8.sql} | 0 .../update_database_V1.1.8.sql | 33 +++++ views/admin/member/memberInfo.html | 136 ++++++++++++++++-- 9 files changed, 222 insertions(+), 22 deletions(-) rename setup/databaseScripts/{create_database_V1.1.7.sql => create_database_V1.1.8.sql} (98%) rename setup/databaseScripts/{drop_database_V1.1.5.sql => drop_database_V1.1.8.sql} (100%) create mode 100644 setup/databaseScripts/update_database_V1.1.8.sql diff --git a/classes/data/dataMemberInfo.php b/classes/data/dataMemberInfo.php index 41cf371d..6ccb65d4 100644 --- a/classes/data/dataMemberInfo.php +++ b/classes/data/dataMemberInfo.php @@ -314,6 +314,43 @@ class GlmDataMemberInfo extends GlmDataAbstract 'use' => 'a' ), + // Video URL + 'video_url' => array ( + 'field' => 'video_url', + 'type' => 'text', + 'use' => 'a' + ), + + // Video File Name + 'video_file' => array ( + 'field' => 'video_file', + 'type' => 'file', + 'use' => 'a' + ), + + // Video Title + 'video_title' => array ( + 'field' => 'video_title', + 'type' => 'text', + 'maxLength' => '80', + 'use' => 'a' + ), + + // Video Description + 'video_descr' => array ( + 'field' => 'video_descr', + 'type' => 'text', + 'use' => 'a' + ), + + // Video Type + 'video_type' => array ( + 'field' => 'video_type', + 'type' => 'list', + 'list' => $this->config['video_type'], + 'use' => 'a' + ), + // Notes 'notes' => array ( 'field' => 'notes', diff --git a/config/plugin.ini b/config/plugin.ini index 9a167d35..dc411f54 100644 --- a/config/plugin.ini +++ b/config/plugin.ini @@ -309,12 +309,17 @@ day_of_month_bit[29] = 'Twenty Nineth' day_of_month_bit[30] = 'Thirtieth' day_of_month_bit[31] = 'Thirty First' - - - - - - - - - +; Video Types +video_type[1] = 'YouTube' +video_type[2] = 'Vimeo' +video_type[21] = 'MP4 File Upload' +video_type[22] = 'WebM File Upload' +video_type[23] = 'Ogg File Upload' + +video_type_numb['YouTube'] = 1 +video_type_numb['Vimeo'] = 2 +video_type_numb['MP4'] = 21 +video_type_numb['WebM'] = 22 +video_type_numb['Ogg'] = 23 + + \ No newline at end of file diff --git a/index.php b/index.php index 78eb0bcd..7744d933 100644 --- a/index.php +++ b/index.php @@ -39,7 +39,7 @@ */ define('GLM_MEMBERS_PLUGIN_VERSION', '2.0.3'); -define('GLM_MEMBERS_PLUGIN_DB_VERSION', '1.1.7'); +define('GLM_MEMBERS_PLUGIN_DB_VERSION', '1.1.8'); // 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/GlmDataAbstract/DataAbstract.php b/lib/GlmDataAbstract/DataAbstract.php index 3adaddfb..072aeb40 100755 --- a/lib/GlmDataAbstract/DataAbstract.php +++ b/lib/GlmDataAbstract/DataAbstract.php @@ -1266,7 +1266,10 @@ abstract class GlmDataAbstract // Otherwise, if no filter is specified. } else { // Kill slashes and use the standard WordPress wp_kses_post() function to do the filtering - $in = wp_kses_post(stripslashes($_POST[$as])); + $in = ''; + if (isset($_POST[$as])) { + $in = wp_kses_post(stripslashes($_POST[$as])); + } } // Check for required field diff --git a/setup/databaseScripts/create_database_V1.1.7.sql b/setup/databaseScripts/create_database_V1.1.8.sql similarity index 98% rename from setup/databaseScripts/create_database_V1.1.7.sql rename to setup/databaseScripts/create_database_V1.1.8.sql index 8cb7d7eb..8612b7a1 100644 --- a/setup/databaseScripts/create_database_V1.1.7.sql +++ b/setup/databaseScripts/create_database_V1.1.8.sql @@ -158,6 +158,11 @@ CREATE TABLE {prefix}member_info ( 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. 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 diff --git a/setup/databaseScripts/dbVersions.php b/setup/databaseScripts/dbVersions.php index 1ed6b009..8e6f5ecf 100644 --- a/setup/databaseScripts/dbVersions.php +++ b/setup/databaseScripts/dbVersions.php @@ -38,7 +38,8 @@ $glmMembersDbVersions = array( '1.1.4' => array('version' => '1.1.4', 'tables' => 14, 'date' => '4/18/16'), '1.1.5' => array('version' => '1.1.5', 'tables' => 14, 'date' => '5/11/16'), '1.1.6' => array('version' => '1.1.6', 'tables' => 14, 'date' => '5/23/16'), - '1.1.7' => array('version' => '1.1.7', 'tables' => 14, 'date' => '5/24/16') + '1.1.7' => array('version' => '1.1.7', 'tables' => 14, 'date' => '5/24/16'), + '1.1.8' => array('version' => '1.1.8', 'tables' => 14, 'date' => '6/01/16') ); diff --git a/setup/databaseScripts/drop_database_V1.1.5.sql b/setup/databaseScripts/drop_database_V1.1.8.sql similarity index 100% rename from setup/databaseScripts/drop_database_V1.1.5.sql rename to setup/databaseScripts/drop_database_V1.1.8.sql diff --git a/setup/databaseScripts/update_database_V1.1.8.sql b/setup/databaseScripts/update_database_V1.1.8.sql new file mode 100644 index 00000000..96c39807 --- /dev/null +++ b/setup/databaseScripts/update_database_V1.1.8.sql @@ -0,0 +1,33 @@ +-- Gaslight Media Members Database +-- File Created: 5/23/16 14:13:05 +-- Database Version: 1.1.7 +-- Database Update From Previous Version Script +-- +-- To permit each query below to be executed separately, +-- all queries must be separated by a line with four dashses + +-- Add Video URL +ALTER TABLE {prefix}member_info ADD video_url TINYTEXT NULL; + +---- + +-- Add Video File +ALTER TABLE {prefix}member_info ADD video_file TINYTEXT NULL; + +---- + +-- Add Video Title Field +ALTER TABLE {prefix}member_info ADD video_title TINYTEXT NULL; + +---- + +-- Add Video Description Field +ALTER TABLE {prefix}member_info ADD video_descr TEXT NULL; + +---- + +-- Add Video Type Field +ALTER TABLE {prefix}member_info ADD video_type INT NULL; + + + diff --git a/views/admin/member/memberInfo.html b/views/admin/member/memberInfo.html index 51aa478f..7a0c069e 100644 --- a/views/admin/member/memberInfo.html +++ b/views/admin/member/memberInfo.html @@ -97,6 +97,7 @@ Contact Info Categories & Amenities Images + Video Credit Cards {if $memberUpdated}{$terms.term_member_cap} Profile Updated{/if} {if $memberUpdateError}{$terms.term_member_cap} Profile Update Error{/if} @@ -145,7 +146,8 @@ Short Description: - + +
{if $memberInfo.fieldFail.short_descr}

{$memberInfo.fieldFail.short_descr}

{/if} @@ -281,7 +283,7 @@ Phone #: - + {if $memberInfo.fieldFail.phone}

{$memberInfo.fieldFail.phone}

{/if} @@ -586,6 +588,65 @@ + + + + + + + + + + + + + + + + + + + + + + + +
Video Type: + + {if $memberInfo.fieldFail.video_type}

{$memberInfo.fieldFail.video_type}

{/if} +
Video URL: + + {if $memberInfo.fieldFail.video_url}

{$memberInfo.fieldFail.video_url}

{/if} +
Video File: + {if $memberInfo.fieldData.video_file} + File Name: {$memberInfo.fieldData.video_file}
+ Replace this video file: + Delete Video File
+ {else} + New file: + {/if} +
Video Title: + + {if $memberInfo.fieldFail.video_title}

{$memberInfo.fieldFail.video_title}

{/if}
+ +
Video Description: + {php} + wp_editor('{$memberInfo.fieldData.video_descr|escape:quotes}', 'glm_video_descr', array( + 'media_buttons' => false, + // 'quicktags' => false, + // 'wpautop' => false, NOTE: Dont's use. Problem when numerous spaces before text. + 'textarea_name' => 'video_descr', + 'editor_height' => 200, // Height in px, overrides editor_rows + // 'textarea_rows' => 8 + )); + {/php} + {if $memberInfo.fieldFail.video_descr}

{$memberInfo.fieldFail.video_descr}

{/if} +
+ @@ -599,7 +660,7 @@
- +

* Required

@@ -688,16 +749,24 @@ * Edit area tabs */ $('.glm-member-info-tab').click( function() { + glmSetupAreaTab($(this)); + }); + // Do inital setup on load for first tab + glmSetupAreaTab($('#glm-member-info-descr')); + + // Setup edit area selected + function glmSetupAreaTab(t) { + // Clear tabl highlights and hide all tables $('.glm-member-info-tab').removeClass('nav-tab-active'); $('.glm-member-info-table').addClass('glm-hidden'); // Highlight selected tab - $(this).addClass('nav-tab-active'); + t.addClass('nav-tab-active'); // Show selected table - var table = $(this).attr('data-show-table'); + var table = t.attr('data-show-table'); $('#' + table).removeClass('glm-hidden'); @@ -718,11 +787,55 @@ }); - // Set masking for phone number fields - see http://digitalbush.com/projects/masked-input-plugin/ - $.mask.definitions['e'] = "[A-Za-z0-9: ]"; - $(".glm-phone-input").mask("999-999-9999? eeeeeeeeeee"); + // Listen for changes to video type + $('#glm-video-type').change( function() { + glmSetVideoTypeInput(); + }); + glmSetVideoTypeInput(); + + + // Count remaining characters in field + $('.glm-char-count').keyup( function() { + glmCharsRemaining($(this)); + }); + + $('.glm-char-count').each( function() { + glmCharsRemaining($(this)); + }); - }); + } + + // Display number of characters remaining in limited field + function glmCharsRemaining(f) { + var maxChar = f.attr('maxlength'); + var len = f.val().length; + var rem = maxChar - len; + var msgArea = f.attr('data-msgArea'); + if (rem < 0) { + rem = rem * -1; + $('#' + msgArea).html('There are ' + rem + ' more characters than permitted'); + } else { + $('#' + msgArea).html('Characters remaining: ' + rem); + } + } + + // Display input field for selected video type + function glmSetVideoTypeInput() { + + var videoType = $('#glm-video-type').val(); + + // If using URL type - Ask for URL + if (videoType < 20) { + $('#glm-video-url').removeClass('glm-hidden'); + $('#glm-video-file').addClass('glm-hidden'); + + // Otherwise it's a file type - Ask for File + } else { + $('#glm-video-url').addClass('glm-hidden'); + $('#glm-video-file').removeClass('glm-hidden'); + } + + } /* * Action to select an Amenity @@ -1144,7 +1257,10 @@ } }); - + // Set masking for phone number fields - see http://digitalbush.com/projects/masked-input-plugin/ + $.mask.definitions['e'] = "[A-Za-z0-9: ]"; + $(".glm-phone-input").mask("999-999-9999? eeeeeeeeeee"); + }); -- 2.17.1