From 9befb151bf248dc666711fbc8099058c8a45b2c6 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Fri, 18 Aug 2017 12:34:34 -0400 Subject: [PATCH] Changes for addition of new flag for member manage events. Now members events can be turned off and on. This is for members logging in to manage just their own member. --- classes/data/dataManagement.php | 6 +++ setup/adminHooks.php | 52 ++++++++++--------- setup/adminMenus.php | 36 +++++++------ setup/databaseScripts/0.1.4-steve | 0 .../update_database_V0.1.4.php | 4 +- views/admin/management/events.html | 16 ++++-- 6 files changed, 67 insertions(+), 47 deletions(-) delete mode 100644 setup/databaseScripts/0.1.4-steve diff --git a/classes/data/dataManagement.php b/classes/data/dataManagement.php index 92a2f8b..91200a6 100644 --- a/classes/data/dataManagement.php +++ b/classes/data/dataManagement.php @@ -208,6 +208,12 @@ class GlmDataEventsManagement extends GlmDataAbstract 'default' => false, 'use' => 'a' ), + 'member_events_allowed' => array( + 'field' => 'member_events_allowed', + 'type' => 'checkbox', + 'default' => false, + 'use' => 'a' + ), ); diff --git a/setup/adminHooks.php b/setup/adminHooks.php index 3bc106f..1758c81 100644 --- a/setup/adminHooks.php +++ b/setup/adminHooks.php @@ -63,47 +63,51 @@ add_filter( 'glm-member-db-events-get-events', function( $output ){ // Add hook to return base event data for a specific event ID add_filter( 'glm-member-db-events-get-event', function( $eventID ){ - + // Check for positive integer event ID $eventId = ($eventID-0); if ($eventId == 0) { return $eventID; } - + // Call dedicated model to get event base data require_once GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH.'/data/dataEvents.php'; $EventData = new GlmDataEvents($this->wpdb, $this->config); $eventData = $EventData->getEntry($eventId); - + // If we got good event base data, return that if ($eventData) { return $eventData; } - + // Otherwise pass on the event ID return $eventId; - + } ); - -add_filter( - 'glm-member-db-dashboard-member-widgets', - function ( $member = null ) { - $content = $this->controller( 'dashboard', 'events', $member ); - return $content; - }, - 12, - 1 -); -add_filter( - 'glm-member-db-dashboard-member-admin-widgets', - function ( $member = null ) { - $content = $this->controller( 'dashboard', 'events', $member ); - return $content; - }, - 12, - 1 -); +// check the settings to see if members are allow to manage events +$memberEventsAllowed = $this->config['settings']['member_events_allowed']; + +if ( $memberEventsAllowed ) { + add_filter( + 'glm-member-db-dashboard-member-widgets', + function ( $member = null ) { + $content = $this->controller( 'dashboard', 'events', $member ); + return $content; + }, + 12, + 1 + ); + add_filter( + 'glm-member-db-dashboard-member-admin-widgets', + function ( $member = null ) { + $content = $this->controller( 'dashboard', 'events', $member ); + return $content; + }, + 12, + 1 + ); +} diff --git a/setup/adminMenus.php b/setup/adminMenus.php index 1dde0e0..47f05bb 100644 --- a/setup/adminMenus.php +++ b/setup/adminMenus.php @@ -74,23 +74,27 @@ if (isset($this->config['loggedInUser']) && isset($this->config['loggedInUser']['contactUser']) && $this->config['loggedInUser']['contactUser']) { - add_submenu_page( - $mainMenuSlug, - 'Events', - 'Events', - 'glm_members_edit_my_entity', - 'glm-members-admin-menu-events-index', - function() {$this->controller('events');} - ); + // check the settings to see if members are allow to manage events + $memberEventsAllowed = $this->config['settings']['member_events_allowed']; + if ( $memberEventsAllowed ) { + add_submenu_page( + $mainMenuSlug, + 'Events', + 'Events', + 'glm_members_edit_my_entity', + 'glm-members-admin-menu-events-index', + function() {$this->controller('events');} + ); - add_submenu_page( - $mainMenuSlug, - 'Events List', - '    List', - 'glm_members_member', - 'glm-members-admin-menu-events-list', - function() {$this->controller('events', 'list');} - ); + add_submenu_page( + $mainMenuSlug, + 'Events List', + '    List', + 'glm_members_member', + 'glm-members-admin-menu-events-list', + function() {$this->controller('events', 'list');} + ); + } // Otherwise it's an administrator } else { diff --git a/setup/databaseScripts/0.1.4-steve b/setup/databaseScripts/0.1.4-steve deleted file mode 100644 index e69de29..0000000 diff --git a/setup/databaseScripts/update_database_V0.1.4.php b/setup/databaseScripts/update_database_V0.1.4.php index 660e9bc..d16fee5 100644 --- a/setup/databaseScripts/update_database_V0.1.4.php +++ b/setup/databaseScripts/update_database_V0.1.4.php @@ -6,8 +6,8 @@ */ // Update event records with name slug for URLs -$managementOptions = $this->wpdb->get_results( - 'SELECT to_email, from_email FROM '.GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX.'management where id = 1', +$managementOptions = $wpdb->get_results( + 'SELECT id, to_email, from_email FROM '.GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX.'management where id = 1', ARRAY_A ); if ($managementOptions && count($managementOptions) > 0) { diff --git a/views/admin/management/events.html b/views/admin/management/events.html index 09ad34e..a8c3bc3 100644 --- a/views/admin/management/events.html +++ b/views/admin/management/events.html @@ -24,6 +24,12 @@ + + + + - - + - + -- 2.17.1
Members +

+
Event Detail Page Permalink Name: @@ -135,24 +141,24 @@
-

E-Mail Notification Settings

+
+

E-Mail Notification Settings (These have been moved to settings)

Sender Email Address
Recipient Email Address (comma separated)
Email Notification - +