Adding requests for search engine to index, re-index, or remove an event from search...
authorChuck Scott <cscott@gaslightmedia.com>
Thu, 26 Jul 2018 15:42:02 +0000 (11:42 -0400)
committerChuck Scott <cscott@gaslightmedia.com>
Thu, 26 Jul 2018 15:42:02 +0000 (11:42 -0400)
Also updated name of plugin in Index and readme files as part of move to GLM Associate name.

index.php
models/admin/events/list.php
readme.txt

index 0179606..2e028f2 100644 (file)
--- a/index.php
+++ b/index.php
@@ -1,18 +1,18 @@
 <?php
 /**
- * Plugin Name: GLM Members Database Events
+ * Plugin Name: GLM Associate - Events Add-On
  * Plugin URI: http://www.gaslightmedia.com/
- * Description: Gaslight Media Members Database.
+ * Description: Gaslight Media GLM Assoicate Events Database
 
  * Version: 1.6.88
 
- * Author: Chuck Scott
+ * Author: Gaslight Media
  * Author URI: http://www.gaslightmedia.com/
  * License: GPL2
  */
 
 /**
- * Gaslight Media Members Database Events Add-On
+ * GLM Associate - Events Add-On
  * Index
  *
  * PHP version 5.5
index fcedeaf..a14be8b 100644 (file)
@@ -143,6 +143,8 @@ class GlmMembersAdmin_events_list extends GlmDataEvents
         $limit            = 20;        // Set to the number of listings per page
         $namesList        = false;
         $old_event_status = false;
+        $indexEvent       = false;
+        $removeEventIndex = false;
 
         // Load Notifications from the helper classes
         include_once GLM_MEMBERS_EVENTS_PLUGIN_CLASS_PATH . '/helper/notification.php';
@@ -376,6 +378,10 @@ class GlmMembersAdmin_events_list extends GlmDataEvents
 
                 glmClearShortcodeCache();
 
+                // Check if new event is active and if so ask for it to be indexed by the search add-on
+                $indexEvent = $event['fieldData']['status']['value'] == $this->config['status_numb']['Active'];
+                $eventSlug = $event['fieldData']['name_slug'];
+
             } else {
                 $option = 'add';
                 $eventAddError = true;
@@ -383,7 +389,8 @@ class GlmMembersAdmin_events_list extends GlmDataEvents
                 // Add any recurrence data that may have been submitted
                 //                    if (isset($_REQUEST[''])) {
                 //                          NOT COMPLETED
-                //                    }
+                //                    }echo "<pre>".print_r($event,1)."</pre>";
+
 
             }
 
@@ -393,8 +400,6 @@ class GlmMembersAdmin_events_list extends GlmDataEvents
 
         case 'edit':
 
-
-
             $event = $this->editEntry($this->eventID);
 
             // If we have a good event
@@ -437,10 +442,10 @@ class GlmMembersAdmin_events_list extends GlmDataEvents
                 // Check if that was successful
                 if ($event['status']) {
                     $eventUpdated = true;
+                    $new_status = $event['fieldData']['status']['value'];
 
                     // Check if the event is being approved
                     if ( $event['fieldData']['status']['value'] && $old_event_status ) {
-                        $new_status = $event['fieldData']['status']['value'];
                         if ( $old_event_status == 20 && $new_status == 10 ) {
                             // Update approved timestamp.
                             $this->updateTimestamp('approved', $this->eventID);
@@ -459,6 +464,16 @@ class GlmMembersAdmin_events_list extends GlmDataEvents
                     $this->updateSlug($this->eventID);
 
                     $event = $this->editEntry($this->eventID);
+
+                    // Check for status change for any search engine requests.
+                    $statusActive = $this->config['event_status_numb']['Active'];
+                    $eventSlug = $event['fieldData']['name_slug'];
+                    if ($new_status == $statusActive) {
+                        $indexEvent = true;
+                    } elseif ($old_event_status == $statusActive && $new_status != $statusActive) {
+                        $removeEventIndex = true;
+                    }
+
                 } else {
                     $eventUpdateError = true;
                 }
@@ -614,6 +629,11 @@ class GlmMembersAdmin_events_list extends GlmDataEvents
 
                 if ($event) {
                     $eventDeleted = true;
+
+                    // Also ask to have event removed from search engine
+                    $removeEventIndex = true;
+                    $eventSlug = $event['name_slug'];
+
                     glmClearShortcodeCache();
                 } else {
                     $eventDeleteError = true;
@@ -900,64 +920,67 @@ class GlmMembersAdmin_events_list extends GlmDataEvents
 
 
         }
-            // DECLINED & APPROVED EVENT EMAIL FUNCTIONALITY ///////
-            //$sql = "SELECT * FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "email_notifications";
-            //$email_notifications = !empty($this->wpdb->get_results($sql, ARRAY_A)) ? $this->wpdb->get_results($sql, ARRAY_A)[0] : false;
-            $email_notifications = $this->config['settings'];
-            $from_email = $email_notifications ? $email_notifications['from_email'] : false;
-//            echo '<pre>', print_r($event), '</pre>';
-
-            $to_email = (isset($event['fieldData']['admin_email']) ? $event['fieldData']['admin_email'] : '' );
-            $event_title = (isset($event['fieldData']['name']) ? $event['fieldData']['name'] : '' );
-            $admin_name = (isset($event['fieldData']['admin_name']) ? $event['fieldData']['admin_name'] : '' );
-            $event_intro = (isset($event['fieldData']['intro']) ? $event['fieldData']['intro'] : '' );
-            $site_name = get_bloginfo( 'name' );
-
-            $header[] = "From: $site_name <$from_email>";
-            $header[] = 'Reply-To: ' . $from_email;
-            $header[] = "Return-Path: $from_email";
-
-            // change the default wordpress from name when sending mail
-            function set_content_type(){
-                return "text/html";
-            }
 
-//            add_filter(
-//                'wp_mail_from_name',
-//                function ( $name ) {
-//                    $siteName = get_bloginfo( 'name' );
-//                    return $siteName;
-//                }
-//            );
-
-            // Send confirmation email, set the content type to allow html by using this filter
-            add_filter( 'wp_mail_content_type', 'set_content_type' );
-
-            $declined  = '';
-            $current_status = $event['fieldData']['status']['value'];
-
-            if($to_email){
-                $message  = $site_name . " Events<br><br>";
-                $message .= "Event Name: " . $event_title . "<br>";
-                $message .= "Event Description: $event_intro<br>";
-                $message .= "Contact Name: $admin_name<br><br>";
-
-
-                if( $old_event_status === '20' && $current_status === '10' ) {
-                    $subject  = 'Event Approved';
-                    $message  .= $email_notifications['approved_message'];
-                    wp_mail( $to_email, $subject, $message, $header );
-
-                } else if( $old_event_status === '20' && $current_status === '40' ){
-                    $declined = $email_notifications['declined_message'];
-                    $subject  = 'Event Declined';
-                    $message  .= "Your event has been declined for the following reason(s):<br> $declined";
-                    wp_mail( $to_email, $subject, $message, $header );
-                }
+        // DECLINED & APPROVED EVENT EMAIL FUNCTIONALITY ///////
+        //$sql = "SELECT * FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "email_notifications";
+        //$email_notifications = !empty($this->wpdb->get_results($sql, ARRAY_A)) ? $this->wpdb->get_results($sql, ARRAY_A)[0] : false;
+        $email_notifications = $this->config['settings'];
+        $from_email = $email_notifications ? $email_notifications['from_email'] : false;
+
+        $to_email = (isset($event['fieldData']['admin_email']) ? $event['fieldData']['admin_email'] : '' );
+        $event_title = (isset($event['fieldData']['name']) ? $event['fieldData']['name'] : '' );
+        $admin_name = (isset($event['fieldData']['admin_name']) ? $event['fieldData']['admin_name'] : '' );
+        $event_intro = (isset($event['fieldData']['intro']) ? $event['fieldData']['intro'] : '' );
+        $site_name = get_bloginfo( 'name' );
+
+        $header[] = "From: $site_name <$from_email>";
+        $header[] = 'Reply-To: ' . $from_email;
+        $header[] = "Return-Path: $from_email";
+
+        // change the default wordpress from name when sending mail
+        function set_content_type(){
+            return "text/html";
+        }
+
+        // Send confirmation email, set the content type to allow html by using this filter
+        add_filter( 'wp_mail_content_type', 'set_content_type' );
+
+        $declined  = '';
+        $current_status = $event['fieldData']['status']['value'];
+
+        if($to_email){
+            $message  = $site_name . " Events<br><br>";
+            $message .= "Event Name: " . $event_title . "<br>";
+            $message .= "Event Description: $event_intro<br>";
+            $message .= "Contact Name: $admin_name<br><br>";
+
+
+            if( $old_event_status === '20' && $current_status === '10' ) {
+                $subject  = 'Event Approved';
+                $message  .= $email_notifications['approved_message'];
+                wp_mail( $to_email, $subject, $message, $header );
+
+            } else if( $old_event_status === '20' && $current_status === '40' ){
+                $declined = $email_notifications['declined_message'];
+                $subject  = 'Event Declined';
+                $message  .= "Your event has been declined for the following reason(s):<br> $declined";
+                wp_mail( $to_email, $subject, $message, $header );
             }
-            remove_filter( 'wp_mail_content_type', 'set_content_type' );
-            // END DECLINED & APPROVED EVENT EMAIL FUNCTIONALITY ////////
+        }
+        remove_filter( 'wp_mail_content_type', 'set_content_type' );
+        // END DECLINED & APPROVED EVENT EMAIL FUNCTIONALITY ////////
+
 
+        // Deterine if we need to request search engine index, re-index, or removal
+        $url = GLM_MEMBERS_SITE_BASE_URL.$this->config['settings']['canonical_event_page'].'/'.$eventSlug.'/';
+        if ($indexEvent) {
+            echo "Index $url<P>";
+            $result = apply_filters( 'glm_member_db_common_search_indexurl', $url );
+        }
+        if ($removeEventIndex) {
+            echo "remove $url<P>";
+            $result = apply_filters( 'glm_member_db_common_search_removeurl', $url );
+        }
 
         if (!$this->config['settings']['event_default_state']) {
             $this->config['settings']['event_default_state'] = $this->config['settings']['default_state'];
index cb4c234..3bc7eaa 100644 (file)
@@ -1,4 +1,4 @@
-=== Gaslight Media Member Database Events Add-On Plugin ===
+=== GLM Associate - Events Add-On ===
 Contributors: cscott@gaslightmedia.com
 Donate link: http://www.gaslightmedia.com
 Tags: Gaslight Media,Plugin,Members Events
@@ -8,12 +8,12 @@ Stable tag: 4.3
 License: GPLv2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 
-This is the Gaslight Media Members Database Events Add-On Plugin.
+This is the Gaslight Media Glm Associate Events Add-On Plugin.
 
 == Description ==
 
-The Gaslight Media Members Database Events Add-On Plugin adds Events capabilities to the base plugin.
-The Gaslight Media base Members Database plugin (or later core plugin) is required to activate this add-on.
+The Gaslight Media GLM Associate Events Add-On Plugin adds Events capabilities to the base plugin.
+The Gaslight Media GLM Associate core plugin with Members Database (or later core plugin) is required to activate this add-on.
 
 == Installation ==