/** * * @since 0.0.4 * @access public * @static * @param $data * @return mixed */ public static function add_blog($data) { $data['group_info'] == 0; $options = groups_get_groupmeta($data['group_id'], 'rw-group-blogs-blogdata'); if (is_array($options)) { $options[] = $data; } else { $options = array(); $options[] = $data; } groups_update_groupmeta($data['group_id'], 'rw-group-blogs-blogdata', $options); groups_update_groupmeta($data['group_id'], 'rw-group-blogs-fetchtime', "15"); $feed = groups_get_groupmeta($data['group_id'], 'rw-group-blogs-feeds'); $feed .= "\n" . $data['feed_url']; groups_update_groupmeta($data['group_id'], 'rw-group-blogs-feeds', $feed); groups_update_groupmeta($data['group_id'], 'rw-group-blogs-lastupdate', gmdate("Y-m-d H:i:s")); RW_Group_Blogs_Core::fetch_group_feeds($data['group_id']); $back = array('message' => "ok"); return $back; }
/** * * @since 0.0.1 * @access public * @static * @return bool */ function edit_screen_save($group_id = NULL) { 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, 'rw-group-blogs-feeds'); $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' => RW_Group_Blogs_Core::$activity_type)); } } } groups_update_groupmeta($bp->groups->current_group->id, 'rw-group-blogs-fetchtime', $_POST['fetch-time']); groups_update_groupmeta($bp->groups->current_group->id, 'rw-group-blogs-feeds', $blog_feeds); groups_update_groupmeta($bp->groups->current_group->id, 'rw-group-blogs-lastupdate', gmdate("Y-m-d H:i:s")); RW_Group_Blogs_Core::fetch_group_feeds($bp->groups->current_group->id); bp_core_add_message(__('External blog feeds updated successfully!', RW_Group_Blogs::$textdomain)); bp_core_redirect(bp_get_group_permalink($bp->groups->current_group) . '/admin/' . $this->slug); }
/** * * @since 0.0.1 * @access public * @static */ function cron_refresh() { global $bp, $wpdb; $group_ids = $wpdb->get_col($wpdb->prepare("SELECT group_id FROM " . $bp->groups->table_name_groupmeta . " WHERE meta_key = 'rw-group-blogs-feeds'")); foreach ($group_ids as $group_id) { RW_Group_Blogs_Core::fetch_group_feeds($group_id); } }