From df13495e70d0dcf5aa3c009f27cf70c0a6013578 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Thu, 11 Oct 2018 16:19:48 -0400 Subject: [PATCH] Add more db options for events Adding the border color option for the event container. Adding flag for disabling target blank for event detail url's. Adding option to set which default agenda view will be used. --- classes/data/dataManagement.php | 28 +- config/plugin.ini | 2 + index.php | 2 +- models/front/events/list.php | 9 +- ..._V0.1.8.sql => create_database_V0.1.9.sql} | 9 +- setup/databaseScripts/dbVersions.php | 1 + setup/databaseScripts/steve_V0.1.9.sql | 0 .../update_database_V0.1.9.sql | 21 + views/admin/management/events.html | 26 +- views/front/events/agenda.html | 555 ++++++++---------- views/front/events/agenda_new.html | 424 +++++++++++++ views/front/events/agenda_old.html | 376 ------------ views/front/events/detail.html | 22 +- 13 files changed, 776 insertions(+), 699 deletions(-) rename setup/databaseScripts/{create_database_V0.1.8.sql => create_database_V0.1.9.sql} (97%) delete mode 100644 setup/databaseScripts/steve_V0.1.9.sql create mode 100644 setup/databaseScripts/update_database_V0.1.9.sql create mode 100644 views/front/events/agenda_new.html delete mode 100644 views/front/events/agenda_old.html diff --git a/classes/data/dataManagement.php b/classes/data/dataManagement.php index ad2f7b2..d3c8d97 100644 --- a/classes/data/dataManagement.php +++ b/classes/data/dataManagement.php @@ -263,6 +263,24 @@ class GlmDataEventsManagement extends GlmDataAbstract 'use' => 'a' ), + // Turn on to keep from adding target blank to detail page url's + 'detail_ext_links_same_window' => array( + 'field' => 'detail_ext_links_same_window', + 'type' => 'checkbox', + 'default' => false, + 'use' => 'a' + ), + + // Default view file for agenda views + 'default_agenda_view' => array ( + 'field' => 'default_agenda_view', + 'type' => 'list', + 'list' => $this->config['event_default_view_file'], + 'default' => 'agenda_new', + 'force_list' => true, + 'use' => 'a' + ), + // Color of the search button 'event_back_to_search_color' => array( 'field' => 'event_back_to_search_color', @@ -295,7 +313,7 @@ class GlmDataEventsManagement extends GlmDataAbstract 'use' => 'a', ), - // Color of the search button + // Color of the event container background 'agenda_container_background_color' => array( 'field' => 'agenda_container_background_color', 'type' => 'text', @@ -303,6 +321,14 @@ class GlmDataEventsManagement extends GlmDataAbstract 'use' => 'a', ), + // Color of the border for event container + 'agenda_container_border_color' => array( + 'field' => 'agenda_container_border_color', + 'type' => 'text', + 'required' => false, + 'use' => 'a', + ), + // Max Width of Agenda View 'agenda_view_max_width' => array( 'field' => 'agenda_view_max_width', diff --git a/config/plugin.ini b/config/plugin.ini index 7976a31..88f021d 100644 --- a/config/plugin.ini +++ b/config/plugin.ini @@ -28,3 +28,5 @@ event_image_sizes['small'] = 'Small' event_image_sizes['thumb'] = 'Thumbnail' event_image_sizes['grid'] = 'Grid' +event_default_view_file['agenda'] = 'Old Agenda View' +event_default_view_file['agenda_new'] = 'New Agenda View' diff --git a/index.php b/index.php index 4ddb209..df665ee 100644 --- a/index.php +++ b/index.php @@ -44,7 +44,7 @@ if (!defined('ABSPATH')) { * version from this plugin. */ define('GLM_MEMBERS_EVENTS_PLUGIN_VERSION', '1.7.0'); -define('GLM_MEMBERS_EVENTS_PLUGIN_DB_VERSION', '0.1.8'); +define('GLM_MEMBERS_EVENTS_PLUGIN_DB_VERSION', '0.1.9'); // This is the minimum version of the GLM Members DB plugin require for this plugin. define('GLM_MEMBERS_EVENTS_PLUGIN_MIN_MEMBERS_REQUIRED_VERSION', '2.9.15'); diff --git a/models/front/events/list.php b/models/front/events/list.php index c384384..72d0cb3 100644 --- a/models/front/events/list.php +++ b/models/front/events/list.php @@ -75,6 +75,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $this->notInCat = array(); $pdfCategoryList = ''; + $defaultViewFile = ( $this->config['settings']['default_agenda_view'] ) ? $this->config['settings']['default_agenda_view'] . '.html' : 'agenda.html'; // get list cities to search by require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataCities.php'; @@ -399,7 +400,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $events = $this->getModelEventsData( $event_config ); $this->postAddRecurrences = false; if ( !$view ) { - $view = 'agenda.html'; + $view = $defaultViewFile; } break; case 'event-list': @@ -407,7 +408,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $this->postAddRecurrences = true; $events = $this->getModelEventsData( $event_config ); if ( !$view ) { - $view = 'agenda.html'; + $view = $defaultViewFile; } $this->postAddRecurrences = false; $this->postAddLocations = false; @@ -455,7 +456,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction if ( isset ( $actionData['request']['template'] ) && $actionData['request']['template'] ) { $view = $actionData['request']['template']; } else { - $view = 'agenda.html'; + $view = $defaultViewFile; } break; case 'pdf': @@ -467,7 +468,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $this->postAddLocations = true; $this->postAddRecurrences = true; if ( !$view ) { - $view = 'agenda.html'; + $view = $defaultViewFile; } $events = $this->getModelEventsData( $event_config ); $this->postAddRecurrences = false; diff --git a/setup/databaseScripts/create_database_V0.1.8.sql b/setup/databaseScripts/create_database_V0.1.9.sql similarity index 97% rename from setup/databaseScripts/create_database_V0.1.8.sql rename to setup/databaseScripts/create_database_V0.1.9.sql index f7da756..7d9bbaa 100644 --- a/setup/databaseScripts/create_database_V0.1.8.sql +++ b/setup/databaseScripts/create_database_V0.1.9.sql @@ -235,11 +235,14 @@ CREATE TABLE {prefix}management ( event_add_button_color TINYTEXT NULL, -- Color of the search button event_add_button_hidden BOOLEAN NULL, -- Option to hide the add event button event_back_to_search_color TINYTEXT NULL, -- Background Color of the search + default_agenda_view TINYTEXT NULL, -- Default view file for agenda views agenda_date_background_color TINYTEXT NULL, -- Background Color of the date agenda_date_text_color TINYTEXT NULL, -- Text Color of the date agenda_title_color TINYTEXT NULL, -- Color of the Event Title - agenda_container_background_color TINYTEXT NULL, -- Event Container Border Color + agenda_container_background_color TINYTEXT NULL, -- Event Container Background Color + agenda_container_border_color TINYTEXT NULL, -- Event Container Border Color agenda_view_max_width TINYTEXT NULL, -- Max Width of agenda view + detail_ext_links_same_window BOOLEAN DEFAULT '0', -- Turn on to keep from adding target blank to detail page url's PRIMARY KEY (id) ); @@ -247,9 +250,9 @@ CREATE TABLE {prefix}management ( -- Set default event management entry INSERT INTO {prefix}management - ( id, canonical_event_page, term_event_amenities_singular, term_event_amenities_plural, member_events_allowed, ical_feed_image_size, event_display_member_message, event_member_message ) + ( id, canonical_event_page, term_event_amenities_singular, term_event_amenities_plural, member_events_allowed, ical_feed_image_size, event_display_member_message, event_member_message, default_agenda_view ) VALUES - ( 1, 'event-detail', 'Amenity', 'Amenities', 1, 'large', 0, '') + ( 1, 'event-detail', 'Amenity', 'Amenities', 1, 'large', 0, '', 'agenda') ; ---- diff --git a/setup/databaseScripts/dbVersions.php b/setup/databaseScripts/dbVersions.php index fea850f..4273488 100644 --- a/setup/databaseScripts/dbVersions.php +++ b/setup/databaseScripts/dbVersions.php @@ -44,5 +44,6 @@ $glmMembersEventsDbVersions = array( '0.1.6' => array('version' => '0.1.6', 'tables' => 13, 'date' => '08/06/2018'), '0.1.7' => array('version' => '0.1.7', 'tables' => 13, 'date' => '09/14/2018'), '0.1.8' => array('version' => '0.1.8', 'tables' => 13, 'date' => '10/09/2018'), + '0.1.9' => array('version' => '0.1.9', 'tables' => 13, 'date' => '10/11/2018'), ); diff --git a/setup/databaseScripts/steve_V0.1.9.sql b/setup/databaseScripts/steve_V0.1.9.sql deleted file mode 100644 index e69de29..0000000 diff --git a/setup/databaseScripts/update_database_V0.1.9.sql b/setup/databaseScripts/update_database_V0.1.9.sql new file mode 100644 index 0000000..4a44746 --- /dev/null +++ b/setup/databaseScripts/update_database_V0.1.9.sql @@ -0,0 +1,21 @@ +-- Gaslight Media Members Database - Events Add-On +-- File Created: 09/14/18 +-- Database Version: 0.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 dashes + +ALTER TABLE {prefix}management ADD COLUMN default_agenda_view TINYTEXT NULL; -- Default view file for agenda view + +---- + +ALTER TABLE {prefix}management ADD COLUMN agenda_container_border_color TINYTEXT NULL; -- Event Container Border Color + +---- + +ALTER TABLE {prefix}management ADD COLUMN detail_ext_links_same_window BOOLEAN NULL; -- Turn on to keep from adding target blank to detail page url's + +---- + +UPDATE {prefix}management SET default_agenda_view = 'agenda'; diff --git a/views/admin/management/events.html b/views/admin/management/events.html index bc2cbb9..0f5334d 100644 --- a/views/admin/management/events.html +++ b/views/admin/management/events.html @@ -72,10 +72,26 @@ + + Front-End Default Agenda View + + + + Front-End Event Options

+

@@ -114,9 +130,15 @@ - Event Container Border Color: + Event Container Background Color: - + + + + + Event Container Border Color: + + diff --git a/views/front/events/agenda.html b/views/front/events/agenda.html index b10419d..f239435 100644 --- a/views/front/events/agenda.html +++ b/views/front/events/agenda.html @@ -1,69 +1,29 @@ - -
-
+
{include file='front/events/searchForm.html'}
-
+
{foreach $eventsByDate as $date => $key} -
-
-
-
- {$date|date_format:"%A %B %e"} +
+
+
+
{$date|date_format:"%b"}
+
+ {$date|date_format:"%e"} + {$date|date_format:"%a"}
-
-
+
{foreach $key as $events} {foreach $events as $event} - {$showTime = true} - -
-
- - -

{$event.name}

-
- - {$eventDateTime = $event.starting_date|date_format:"%I:%M %P"} - +
+
+

{$event.name}

+ {$eventDateTime = $event.starting_date|date_format:"%I:%M %P"} {foreach $event.recurrences as $rec} {$start_time = $rec.start_time.time} {if $start_time == $eventDateTime} @@ -72,10 +32,16 @@
{if !$event.all_day} {$showTime = false} - {if $event.starting_date|date_format:"%l:%M %P" == $event.ending_date|date_format:"%l:%M %P"} - {$event.starting_date|date_format:"%l:%M %P"} + {$event_start_time = $event.starting_date|date_format:"%m/%d/%Y"} + {$event_start_time = $event_start_time|cat:' '} + {$event_start_time = $event_start_time|cat:$rec.start_time.time} + {$event_end_time = $event.starting_date|date_format:"%m/%d/%Y"} + {$event_end_time = $event_end_time|cat:' '} + {$event_end_time = $event_end_time|cat:$rec.end_time.time} + {if $event_start_time|date_format:"%l:%M %P" == $event_end_time|date_format:"%l:%M %P" or $rec.start_time_only.value == '1'} + {$event_start_time|date_format:"%l:%M %P"} {else} - {$event.starting_date|date_format:"%l:%M %P"} - {$event.ending_date|date_format:"%l:%M %P"} + {$event_start_time|date_format:"%l:%M %P"} - {$event_end_time|date_format:"%l:%M %P"} {/if} {/if} @@ -109,33 +75,24 @@ {/if} {/if} {/foreach} - - {if $event.locations.city.name} -
City: {$event.locations.city.name}
- {/if} - -
- {if !$event.all_day && $showTime} - {if $event.starting_date|date_format:"%l:%M %P" == $event.ending_date|date_format:"%l:%M %P"} -
{$event.starting_date|date_format:"%l:%M %P"}
- {else} -
{$event.starting_date|date_format:"%l:%M %P"} - {$event.ending_date|date_format:"%l:%M %P"}
- {/if} +
+ {if !$event.all_day && $showTime} + {if $event.starting_date|date_format:"%l:%M %P" == $event.ending_date|date_format:"%l:%M %P"} +
{$event.starting_date|date_format:"%l:%M %P"}
+ {else} +
{$event.starting_date|date_format:"%l:%M %P"} - {$event.ending_date|date_format:"%l:%M %P"}
{/if} -
-
- {if isset( $event.locations.name ) && $event.locations.name} -
Location: {$event.locations.name}
- {/if} - - {$event.intro} - -
+ {/if}
-
- {if $event.image}{/if} +
+ {if $event.image}{/if} + {$event.intro} +
+ Read More +
+
{/foreach} {/foreach}
@@ -169,255 +126,251 @@
- diff --git a/views/front/events/agenda_new.html b/views/front/events/agenda_new.html new file mode 100644 index 0000000..8dd7b78 --- /dev/null +++ b/views/front/events/agenda_new.html @@ -0,0 +1,424 @@ + + +
+
+ {include file='front/events/searchForm.html'} +
+ +
+
+ {foreach $eventsByDate as $date => $key} +
+
+
+
+ {$date|date_format:"%A %B %e"} +
+ +
+
+
+ {foreach $key as $events} + {foreach $events as $event} + + {$showTime = true} + +
+
+ + +

{$event.name}

+
+ + {$eventDateTime = $event.starting_date|date_format:"%I:%M %P"} + + {foreach $event.recurrences as $rec} + {$start_time = $rec.start_time.time} + {if $start_time == $eventDateTime} + {if ($rec.from_date.timestamp == $rec.to_date.timestamp && $rec.from_date.timestamp == $date) + or ($date <= $rec.to_date.timestamp && $date >= $rec.from_date.timestamp )} +
+ {if !$event.all_day} + {$showTime = false} + {if $event.starting_date|date_format:"%l:%M %P" == $event.ending_date|date_format:"%l:%M %P"} + {$event.starting_date|date_format:"%l:%M %P"} + {else} + {$event.starting_date|date_format:"%l:%M %P"} - {$event.ending_date|date_format:"%l:%M %P"} + {/if} + + {/if} + {if $rec.name && $rec.name != 'Imported' && $rec.name != 'Imported Event Schedule' } + {$rec.name} + {/if} + ( {if $event.times|@count > 1} Occurring {/if} + {$rec.from_date.date} + {if $rec.from_date.date != $rec.to_date.date} + - {$rec.to_date.date} + {else if $rec.specific_dates} + - {$rec.specific_dates|@end|date_format:"%m/%d/%Y"} + {/if} + + + {if $rec.day_of_week.names|@count < 7 && $rec.day_of_week.names|@count > 0 } + + on + {foreach $rec.day_of_week.names as $day} + {if $day == "Thursday"} + {$day|substr:0:4} + {else} + {$day|substr:0:3} + {/if} + {/foreach} + + + {/if} + ) +
+ {/if} + {/if} + {/foreach} + + {if $event.locations.city.name} +
City: {$event.locations.city.name}
+ {/if} + +
+ {if !$event.all_day && $showTime} + {if $event.starting_date|date_format:"%l:%M %P" == $event.ending_date|date_format:"%l:%M %P"} +
{$event.starting_date|date_format:"%l:%M %P"}
+ {else} +
{$event.starting_date|date_format:"%l:%M %P"} - {$event.ending_date|date_format:"%l:%M %P"}
+ {/if} + {/if} +
+
+ {if isset( $event.locations.name ) && $event.locations.name} +
Location: {$event.locations.name}
+ {/if} + + {$event.intro} + +
+
+
+ {if $event.image}{/if} +
+
+ {/foreach} + {/foreach} +
+
+ {/foreach} + +
+
+ {assign var="current_year" value=$smarty.now|date_format:"%Y"} + {assign var="current_month" value=$smarty.now|date_format:"%m"} +
+
+ +
+
+
+
+
+
+ + diff --git a/views/front/events/agenda_old.html b/views/front/events/agenda_old.html deleted file mode 100644 index f239435..0000000 --- a/views/front/events/agenda_old.html +++ /dev/null @@ -1,376 +0,0 @@ -
-
- {include file='front/events/searchForm.html'} -
- -
-
- {foreach $eventsByDate as $date => $key} -
-
-
-
{$date|date_format:"%b"}
-
- {$date|date_format:"%e"} - {$date|date_format:"%a"} -
-
-
-
- {foreach $key as $events} - {foreach $events as $event} - {$showTime = true} -
-
-

{$event.name}

- {$eventDateTime = $event.starting_date|date_format:"%I:%M %P"} - {foreach $event.recurrences as $rec} - {$start_time = $rec.start_time.time} - {if $start_time == $eventDateTime} - {if ($rec.from_date.timestamp == $rec.to_date.timestamp && $rec.from_date.timestamp == $date) - or ($date <= $rec.to_date.timestamp && $date >= $rec.from_date.timestamp )} -
- {if !$event.all_day} - {$showTime = false} - {$event_start_time = $event.starting_date|date_format:"%m/%d/%Y"} - {$event_start_time = $event_start_time|cat:' '} - {$event_start_time = $event_start_time|cat:$rec.start_time.time} - {$event_end_time = $event.starting_date|date_format:"%m/%d/%Y"} - {$event_end_time = $event_end_time|cat:' '} - {$event_end_time = $event_end_time|cat:$rec.end_time.time} - {if $event_start_time|date_format:"%l:%M %P" == $event_end_time|date_format:"%l:%M %P" or $rec.start_time_only.value == '1'} - {$event_start_time|date_format:"%l:%M %P"} - {else} - {$event_start_time|date_format:"%l:%M %P"} - {$event_end_time|date_format:"%l:%M %P"} - {/if} - - {/if} - {if $rec.name && $rec.name != 'Imported' && $rec.name != 'Imported Event Schedule' } - {$rec.name} - {/if} - ( {if $event.times|@count > 1} Occurring {/if} - {$rec.from_date.date} - {if $rec.from_date.date != $rec.to_date.date} - - {$rec.to_date.date} - {else if $rec.specific_dates} - - {$rec.specific_dates|@end|date_format:"%m/%d/%Y"} - {/if} - - - {if $rec.day_of_week.names|@count < 7 && $rec.day_of_week.names|@count > 0 } - - on - {foreach $rec.day_of_week.names as $day} - {if $day == "Thursday"} - {$day|substr:0:4} - {else} - {$day|substr:0:3} - {/if} - {/foreach} - - - {/if} - ) -
- {/if} - {/if} - {/foreach} -
- {if !$event.all_day && $showTime} - {if $event.starting_date|date_format:"%l:%M %P" == $event.ending_date|date_format:"%l:%M %P"} -
{$event.starting_date|date_format:"%l:%M %P"}
- {else} -
{$event.starting_date|date_format:"%l:%M %P"} - {$event.ending_date|date_format:"%l:%M %P"}
- {/if} - {/if} -
-
- {if $event.image}{/if} - {$event.intro} -
- Read More -
-
-
-
- {/foreach} - {/foreach} -
-
- {/foreach} - -
-
- {assign var="current_year" value=$smarty.now|date_format:"%Y"} - {assign var="current_month" value=$smarty.now|date_format:"%m"} -
-
- -
-
-
-
-
-
- - - - diff --git a/views/front/events/detail.html b/views/front/events/detail.html index d4c8a24..29e6698 100755 --- a/views/front/events/detail.html +++ b/views/front/events/detail.html @@ -144,14 +144,14 @@
Cost: FREE
{/if} {if $event.ticket_url} - +
Tickets
{/if} {if $event.registration_url} - +
Registration
{/if}
Contact & More Info
- {if $event.url}{$event.url}
{/if} + {if $event.url}{$event.url}
{/if} {if $event.contact_name}Contact: {$event.contact_name}
{/if} {if $event.contact_email}Email: {$event.contact_email}
{/if} {if $event.contact_phone} @@ -200,8 +200,8 @@ $("#glm-event-detail-takeback-mini span").css('opacity','1'); } - {if $settings.selected_map_interface == 1} - + {if $settings.selected_map_interface == 1} + /* * Leaflet Map * API reference: https://leafletjs.com/reference-1.3.2.html @@ -210,13 +210,13 @@ // Get member location if available, otherwise use this site's default locatgion var myLocation = false; var eventLat = $("#event-lat").attr('rel'); - var eventLon = $("#event-lon").attr('rel'); + var eventLon = $("#event-lon").attr('rel'); var mapType = "eventDetail-map"; var mapOptions = { dragging: false, zoomControl: false }; var attributionText = 'Map © OpenStreetMap Contrib, CC-BY-SA'; function initMap() { - + var leafletMap = L.map(mapType, mapOptions ).setView([eventLat, eventLon], {$settings.maps_default_zoom}); var leafletTileServer = '{$settings.leaflet_tile_server}/{$settings.leaflet_tile_server_key}/' + {literal}'{z}/{x}/{y}.png'{/literal}; var leafletMinZoom = 5; @@ -236,10 +236,10 @@ delayIndicator: 500 }); leafletMap.addControl(loadingControl); - + // Marker var leafletMarker = L.marker([eventLat, eventLon]).addTo(leafletMap); - + } $(window).load(function(){ @@ -265,10 +265,10 @@ largeMapinit = true; } }); - + {/if} - + // Replace the phone separation character with whatever is set in the management {if $settings.phone_infix} //var processedPhone = $('.glm-event-detail-contact-phone .glm-field-value').text().trim().replace(/[^a-zA-Z0-9 ]/g, '{$settings.phone_infix}'); -- 2.17.1