/**
  * Save method for our extension during edits.
  *
  * @param int $group_id The group ID.
  */
 public function edit_screen_save($group_id = null)
 {
     if (!isset($_POST['save'])) {
         return false;
     }
     check_admin_referer('groups_edit_save_' . $this->slug);
     $existing_feeds = (array) groups_get_groupmeta(bp_get_current_group_id(), 'blogfeeds');
     $unfiltered_feeds = explode(',', $_POST['blogfeeds']);
     $blog_feeds = array();
     foreach ((array) $unfiltered_feeds as $blog_feed) {
         if (!empty($blog_feed)) {
             $blog_feeds[] = esc_url_raw(trim($blog_feed));
         }
     }
     /* Loop and find any feeds that have been removed, so we can delete activity stream items */
     if (!empty($existing_feeds)) {
         foreach ((array) $existing_feeds as $feed) {
             if (!in_array($feed, (array) $blog_feeds)) {
                 $removed[] = $feed;
             }
         }
     }
     if ($removed) {
         foreach ((array) $removed as $feed) {
             $existing = bp_activity_get(array('user_id' => false, 'component' => 'groups', 'type' => 'exb', 'item_id' => bp_get_current_group_id(), 'update_meta_cache' => false, 'display_comments' => false, 'meta_query' => array(array('key' => 'exb_feedurl', 'value' => trim($feed)))));
             // only delete items matching the feed
             if (!empty($existing['activities'])) {
                 $aids = wp_list_pluck($existing['activities'], 'id');
                 foreach ($aids as $aid) {
                     bp_activity_delete(array('id' => $aid));
                 }
                 // old way - delete all feed items matching the group
             } else {
                 bp_activity_delete(array('item_id' => bp_get_current_group_id(), 'component' => 'groups', 'type' => 'exb'));
             }
         }
     }
     groups_update_groupmeta(bp_get_current_group_id(), 'fetchtime', $_POST['fetch-time']);
     groups_update_groupmeta(bp_get_current_group_id(), 'blogfeeds', $blog_feeds);
     groups_update_groupmeta(bp_get_current_group_id(), 'bp_groupblogs_lastupdate', gmdate("Y-m-d H:i:s"));
     /* Re-fetch */
     bp_groupblogs_fetch_group_feeds(bp_get_current_group_id());
     bp_core_add_message(__('External blog feeds updated successfully!', 'bp-groups-externalblogs'));
     bp_core_redirect(bp_get_group_permalink(groups_get_current_group()) . '/admin/' . $this->slug);
 }
 function edit_screen_save()
 {
     global $bp;
     if (!isset($_POST['save'])) {
         return false;
     }
     check_admin_referer('groups_edit_save_' . $this->slug);
     $existing_feeds = (array) groups_get_groupmeta($bp->groups->current_group->id, 'blogfeeds');
     $unfiltered_feeds = explode(',', $_POST['blogfeeds']);
     foreach ((array) $unfiltered_feeds as $blog_feed) {
         if (!empty($blog_feed)) {
             $blog_feeds[] = trim($blog_feed);
         }
     }
     /* Loop and find any feeds that have been removed, so we can delete activity stream items */
     if (!empty($existing_feeds)) {
         foreach ((array) $existing_feeds as $feed) {
             if (!in_array($feed, (array) $blog_feeds)) {
                 $removed[] = $feed;
             }
         }
     }
     if ($removed) {
         /* Remove activity stream items for this feed */
         include_once ABSPATH . WPINC . '/rss.php';
         foreach ((array) $removed as $feed) {
             $rss = fetch_rss(trim($feed));
             if (function_exists('bp_activity_delete')) {
                 bp_activity_delete(array('item_id' => $bp->groups->current_group->id, 'secondary_item_id' => wp_hash($rss->channel['link']), 'component' => $bp->groups->id, 'type' => 'exb'));
             }
         }
     }
     groups_update_groupmeta($bp->groups->current_group->id, 'blogfeeds', $blog_feeds);
     groups_update_groupmeta($bp->groups->current_group->id, 'bp_groupblogs_lastupdate', gmdate("Y-m-d H:i:s"));
     /* Re-fetch */
     bp_groupblogs_fetch_group_feeds($bp->groups->current_group->id);
     bp_core_add_message(__('External blog feeds updated successfully!', 'bp-groups-externalblogs'));
     bp_core_redirect(bp_get_group_permalink($bp->groups->current_group) . '/admin/' . $this->slug);
 }