From ddfa98a0dccb43e8a8eb980a4f4fe4407d10d8dd Mon Sep 17 00:00:00 2001 From: Laury GvR Date: Mon, 19 Sep 2016 11:43:44 -0400 Subject: [PATCH] Added live cam code, admin & view Live cam fields have been added to the database and all that entails. Plugin version numbers updated accordingly. Member detail front view, and admin management view, and admin member view, all updated to reflect new possible changes. Disabled "stream" because we're just going with images for now. --- classes/data/dataMemberInfo.php | 29 +++++++++++ classes/data/settings/dataSettingsGeneral.php | 8 +++ config/plugin.ini | 7 ++- index.php | 2 +- models/front/members/detail.php | 19 ++++++- ...1.1.17.sql => create_database_V1.1.18.sql} | 7 ++- setup/databaseScripts/dbVersions.php | 1 + ..._V1.1.17.sql => drop_database_V1.1.18.sql} | 0 .../update_database_V1.1.18.sql | 25 ++++++++++ views/admin/management/index.html | 1 + views/admin/member/memberInfo.html | 50 +++++++++++++++++++ views/front/members/detail.html | 18 +++++++ 12 files changed, 163 insertions(+), 4 deletions(-) rename setup/databaseScripts/{create_database_V1.1.17.sql => create_database_V1.1.18.sql} (98%) rename setup/databaseScripts/{drop_database_V1.1.17.sql => drop_database_V1.1.18.sql} (100%) create mode 100644 setup/databaseScripts/update_database_V1.1.18.sql diff --git a/classes/data/dataMemberInfo.php b/classes/data/dataMemberInfo.php index c04e516c..b75b4155 100644 --- a/classes/data/dataMemberInfo.php +++ b/classes/data/dataMemberInfo.php @@ -382,6 +382,35 @@ class GlmDataMemberInfo extends GlmDataAbstract 'list' => $this->config['video_type'], 'use' => 'a' ), + + // Live Cam Url + 'live_cam_url' => array ( + 'field' => 'live_cam_url', + 'type' => 'text', + 'use' => 'a' + ), + + // Live Cam Url + 'live_cam_title' => array ( + 'field' => 'live_cam_title', + 'type' => 'text', + 'use' => 'a' + ), + + // Live Cam Url + 'live_cam_descr' => array ( + 'field' => 'live_cam_descr', + 'type' => 'text', + 'use' => 'a' + ), + + // Live Cam Type + 'live_cam_type' => array ( + 'field' => 'live_cam_type', + 'type' => 'list', + 'list' => $this->config['live_cam_type'], + 'use' => 'a' + ), // Notes 'notes' => array ( diff --git a/classes/data/settings/dataSettingsGeneral.php b/classes/data/settings/dataSettingsGeneral.php index 32d040e9..4f875602 100644 --- a/classes/data/settings/dataSettingsGeneral.php +++ b/classes/data/settings/dataSettingsGeneral.php @@ -835,6 +835,14 @@ 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', + 'type' => 'checkbox', + 'default' => false, + 'use' => 'a' + ), /* * Front-end Member Detail Map Options diff --git a/config/plugin.ini b/config/plugin.ini index ffd7cb89..3debdcfa 100644 --- a/config/plugin.ini +++ b/config/plugin.ini @@ -322,4 +322,9 @@ video_type_numb['Vimeo'] = 2 ;video_type_numb['WebM'] = 22 ;video_type_numb['Ogg'] = 23 - \ No newline at end of file +; Live Cam Types +live_cam_type[1] = 'Image' +live_cam_type[2] = 'Stream' + +live_cam_type_numb['Image'] = 1 +live_cam_type_numb['Stream'] = 2 diff --git a/index.php b/index.php index 968f9d12..416352f4 100644 --- a/index.php +++ b/index.php @@ -39,7 +39,7 @@ */ define('GLM_MEMBERS_PLUGIN_VERSION', '2.5.5'); -define('GLM_MEMBERS_PLUGIN_DB_VERSION', '1.1.17'); +define('GLM_MEMBERS_PLUGIN_DB_VERSION', '1.1.18'); // 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/detail.php b/models/front/members/detail.php index f69fb623..1cd7eb06 100644 --- a/models/front/members/detail.php +++ b/models/front/members/detail.php @@ -48,7 +48,8 @@ $GLOBALS['showOpts'] = array( 'categories' => 'detail_show_categories', 'credit-cards' => 'detail_show_creditcards', 'amenities' => 'detail_show_amenities', - 'video' => 'detail_show_video' + 'video' => 'detail_show_video', + 'live-cam' => 'detail_show_live_cam' ); // Load Members data abstract @@ -314,6 +315,22 @@ class GlmMembersFront_members_detail extends GlmDataMemberInfo } else { $memberData['video_embed'] = "Could not find video"; } + + // Create embed code for the live cam feed. Image or video based on selected type + $liveCamType = $memberData['live_cam_type']['name']; + $liveCamUrl = $memberData['live_cam_url']; + if (!preg_match("~^(?:f|ht)tps?://~i", $liveCamUrl)) { + $liveCamUrl = "http://" . $liveCamUrl; + } + if ($liveCamType == 'Image') { + $liveCamEmbed = ''; + } else if ($liveCamType == 'Stream') { + $liveCamEmbed = ''; + } else { + $liveCamEmbed = "Nope"; + } + $memberData['live_cam_embed'] = $liveCamEmbed; + } diff --git a/setup/databaseScripts/create_database_V1.1.17.sql b/setup/databaseScripts/create_database_V1.1.18.sql similarity index 98% rename from setup/databaseScripts/create_database_V1.1.17.sql rename to setup/databaseScripts/create_database_V1.1.18.sql index 33ba29cd..cc17b946 100644 --- a/setup/databaseScripts/create_database_V1.1.17.sql +++ b/setup/databaseScripts/create_database_V1.1.18.sql @@ -1,6 +1,6 @@ -- Gaslight Media Members Database -- File Created: 12/09/14 15:27:15 --- Database Version: 1.1.17 +-- Database Version: 1.1.18 -- Database Creation Script -- -- To permit each query below to be executed separately, @@ -213,6 +213,10 @@ CREATE TABLE {prefix}member_info ( 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. 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 @@ -340,6 +344,7 @@ CREATE TABLE {prefix}settings_general ( 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, diff --git a/setup/databaseScripts/dbVersions.php b/setup/databaseScripts/dbVersions.php index fdd9c4bc..befc21dd 100644 --- a/setup/databaseScripts/dbVersions.php +++ b/setup/databaseScripts/dbVersions.php @@ -49,6 +49,7 @@ $glmMembersDbVersions = array( '1.1.15' => array('version' => '1.1.15', 'tables' => 18, 'date' => '8/19/16'), '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'), ); diff --git a/setup/databaseScripts/drop_database_V1.1.17.sql b/setup/databaseScripts/drop_database_V1.1.18.sql similarity index 100% rename from setup/databaseScripts/drop_database_V1.1.17.sql rename to setup/databaseScripts/drop_database_V1.1.18.sql diff --git a/setup/databaseScripts/update_database_V1.1.18.sql b/setup/databaseScripts/update_database_V1.1.18.sql new file mode 100644 index 00000000..fd2dfc05 --- /dev/null +++ b/setup/databaseScripts/update_database_V1.1.18.sql @@ -0,0 +1,25 @@ +-- Gaslight Media Members Database +-- File Created: 8/15/16 14:59:42 +-- Database Version: 1.1.18 +-- 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}member_info ADD COLUMN live_cam_url TINYTEXT NULL; + +---- + +ALTER TABLE {prefix}member_info ADD COLUMN live_cam_title TINYTEXT NULL; + +---- + +ALTER TABLE {prefix}member_info ADD COLUMN live_cam_descr TEXT NULL; + +---- + +ALTER TABLE {prefix}member_info ADD COLUMN live_cam_type INT NULL; + +---- + +ALTER TABLE {prefix}settings_general ADD COLUMN detail_show_live_cam BOOLEAN DEFAULT true; \ No newline at end of file diff --git a/views/admin/management/index.html b/views/admin/management/index.html index d05cfe26..9ebdb464 100644 --- a/views/admin/management/index.html +++ b/views/admin/management/index.html @@ -321,6 +321,7 @@ Show Packages: Show Events: Show Video: + Show Live Cam Feed: Autoscroll Offset From Top (height of sticky nav):px diff --git a/views/admin/member/memberInfo.html b/views/admin/member/memberInfo.html index 4dbddbf2..18f409c2 100644 --- a/views/admin/member/memberInfo.html +++ b/views/admin/member/memberInfo.html @@ -98,6 +98,7 @@ Categories & Amenities Images Video + Live Cam {if $memberUpdated}{$terms.term_member_cap} Profile Updated{/if} {if $memberUpdateError}{$terms.term_member_cap} Profile Update Error{/if} @@ -649,6 +650,55 @@ + + + + + + + + + + + + + + + + + + + +
Source Type: + + {if $memberInfo.fieldFail.live_cam_type}

{$memberInfo.fieldFail.live_cam_type}

{/if} +
Source URL: + + {if $memberInfo.fieldFail.live_cam_url}

{$memberInfo.fieldFail.live_cam_url}

{/if} + Only image links are supported +
Title to Display: + + {if $memberInfo.fieldFail.live_cam_title}

{$memberInfo.fieldFail.live_cam_title}

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

{$memberInfo.fieldFail.live_cam_descr}

{/if} +
+ diff --git a/views/front/members/detail.html b/views/front/members/detail.html index 80cc77b2..6eedd8e2 100644 --- a/views/front/members/detail.html +++ b/views/front/members/detail.html @@ -291,6 +291,24 @@ {apply_filters('glm-member-db-front-members-detail-videoAfter', '', $member.id)} + {apply_filters('glm-member-db-front-members-detail-liveCamBefore', '', $member.id)} + {if $member.live_cam_url && $settings.detail_show_live_cam} +
Live Cam
+
+
+

{$member.live_cam_title}

+
{$member.live_cam_embed}
+

{$member.live_cam_descr}

+
+ + + {/if} + + {apply_filters('glm-member-db-front-members-detail-liveCamAfter', '', $member.id)} + {apply_filters('glm-member-db-front-members-detail-dataBottom','',$member.id)} -- 2.17.1