Changes for addition of new flag for member manage events.
authorSteve Sutton <steve@gaslightmedia.com>
Fri, 18 Aug 2017 16:34:34 +0000 (12:34 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Fri, 18 Aug 2017 18:04:31 +0000 (14:04 -0400)
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
setup/adminHooks.php
setup/adminMenus.php
setup/databaseScripts/0.1.4-steve [deleted file]
setup/databaseScripts/update_database_V0.1.4.php
views/admin/management/events.html

index 92a2f8b..91200a6 100644 (file)
@@ -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'
+            ),
 
          );
 
index 3bc106f..1758c81 100644 (file)
@@ -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
+    );
+}
 
 
 
index 1dde0e0..47f05bb 100644 (file)
 
 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',
-        '&nbsp;&nbsp;&nbsp;&nbsp;List',
-        'glm_members_member',
-        'glm-members-admin-menu-events-list',
-        function() {$this->controller('events', 'list');}
-    );
+        add_submenu_page(
+            $mainMenuSlug,
+            'Events List',
+            '&nbsp;&nbsp;&nbsp;&nbsp;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 (file)
index e69de29..0000000
index 660e9bc..d16fee5 100644 (file)
@@ -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) {
index 09ad34e..a8c3bc3 100644 (file)
                     <input type="hidden" name="option" value="settings">
                     <input type="hidden" name="option2" value="submit">
                     <table class="glm-admin-table">
+                        <tr>
+                            <th>Members</th>
+                            <td>
+                                <label> <input type="checkbox" name="member_events_allowed" {if $eventsSettings.fieldData.member_events_allowed.value}checked{/if}> Allow Members to Manage Events</label><br><br>
+                            </td>
+                        </tr>
                         <tr>
                             <th {if $eventsSettings.fieldRequired.canonical_event_page}class="glm-required"{/if}>Event Detail Page Permalink Name:</th>
                             <td {if $eventsSettings.fieldFail.canonical_event_page}class="glm-form-bad-input glm-form-bad-input-misc"{/if}>
                             </td>
                         </tr>
                         <tr>
-                            <td>
-                                <h1> E-Mail Notification Settings </h1>
+                            <td colspan="2">
+                                <h1> E-Mail Notification Settings (These have been moved to settings)</h1>
                             </td>
                         </tr>
                         <tr>
                         </tr>
                         <tr>
                             <th class="emailLabel"> Sender Email Address </th>
-                            <td><input class="glm-form-text-input-medium" name="from_email" id="fromEmailAddress" type="text" value="{$eventsSettings.fieldData.from_email}"></td>
+                            <td><input disabled class="glm-form-text-input-medium" name="from_email" id="fromEmailAddress" type="text" value="{$eventsSettings.fieldData.from_email}"></td>
                         </tr>
                         <tr>
                             <th class="emailLabel"> Recipient Email Address (comma separated) </th>
-                            <td><input class="glm-form-text-input-medium" name="to_email" id="toEmailAddress" type="text" value="{$eventsSettings.fieldData.to_email}"></td>
+                            <td><input disabled class="glm-form-text-input-medium" name="to_email" id="toEmailAddress" type="text" value="{$eventsSettings.fieldData.to_email}"></td>
                         </tr>
                         <tr>
                             <th>Email Notification</th>
                             <td>
-                                <textarea rows="3" cols="90" name="email_notification" id="emailNotification">{$eventsSettings.fieldData.email_notification} </textarea>
+                                <textarea disabled rows="3" cols="90" name="email_notification" id="emailNotification">{$eventsSettings.fieldData.email_notification} </textarea>
                             </td>
                         </tr>
                         <tr>