function __construct()
 {
     global $bp, $wpmudev_chat;
     $wpmudev_chat->load_configs();
     $this->settings_slug = 'wpmudev_chat_bp_group';
     $this->slug = $wpmudev_chat->get_option('bp_menu_slug', 'global');
     $this->name = $wpmudev_chat->get_option('bp_menu_label', 'global');
     $this->create_step_position = 21;
     $this->nav_item_position = 31;
     $this->enable_nav_item = false;
     if (isset($bp->groups->current_group->id)) {
         if (groups_is_user_member($bp->loggedin_user->id, $bp->groups->current_group->id)) {
             // First check if the old value
             $enabled = groups_get_groupmeta($bp->groups->current_group->id, 'wpmudevchatbpgroupenable');
             if (!empty($enabled)) {
                 groups_delete_groupmeta($bp->groups->current_group->id, 'wpmudevchatbpgroupenable');
                 groups_update_groupmeta($bp->groups->new_group_id, $this->settings_slug . '_enable', $enabled);
             }
             $enabled = groups_get_groupmeta($bp->groups->current_group->id, $this->settings_slug . '_enable');
             if ($enabled == "yes") {
                 $this->enable_nav_item = true;
             }
             $atts = groups_get_groupmeta($bp->groups->current_group->id, $this->settings_slug);
             //if (!empty($atts)) {
             //if ((isset($atts['bp_menu_slug'])) && (!empty($atts['bp_menu_slug']))) {
             //	$this->slug = $atts['bp_menu_slug'];
             //}
             //if ((isset($atts['bp_menu_label'])) && (!empty($atts['bp_menu_label']))) {
             //	$this->nav_item_name = $atts['bp_menu_label'];
             //}
             //}
             //echo "slug=[". $this->slug ."]<br />";
         }
     }
 }
 function __construct()
 {
     global $bp, $wpmudev_chat;
     $wpmudev_chat->load_configs();
     $this->create_step_position = 21;
     $this->nav_item_position = 31;
     $this->slug = $wpmudev_chat->get_option('bp_menu_slug', 'global');
     $this->name = $wpmudev_chat->get_option('bp_menu_label', 'global');
     $this->enable_nav_item = false;
     if (isset($bp->groups->current_group->id)) {
         if (groups_is_user_member($bp->loggedin_user->id, $bp->groups->current_group->id)) {
             // First check if the old value
             $enabled = groups_get_groupmeta($bp->groups->current_group->id, 'wpmudevchatbpgroupenable');
             if (!empty($enabled)) {
                 echo "here!<br />";
                 groups_delete_groupmeta($bp->groups->current_group->id, 'wpmudevchatbpgroupenable');
                 groups_update_groupmeta($bp->groups->new_group_id, self::settings_slug . '_enable', $enabled);
             }
             $enabled = groups_get_groupmeta($bp->groups->current_group->id, self::settings_slug . '_enable', true);
             if ($enabled == "yes") {
                 $this->enable_nav_item = true;
             }
         }
     }
     $args = array('slug' => $this->slug, 'name' => $this->name, 'enable_nav_item' => $this->enable_nav_item, 'nav_item_position' => $this->nav_item_position, 'screens' => array('edit' => array('name' => $this->name, 'submit_text' => __('Submit', $wpmudev_chat->translation_domain)), 'create' => array('position' => $this->create_step_position)));
     parent::init($args);
 }
Beispiel #3
0
function delete_pic_cover_group($activity_id)
{
    global $bp;
    $group_id = $bp->groups->current_group->id;
    $activity_id = $_POST['activity_id'];
    $attachment_id = bp_activity_get_meta($activity_id, 'all_bp_cover_group', true);
    wp_delete_attachment($attachment_id, true);
    groups_delete_groupmeta($group_id, 'bp_cover_group');
    groups_delete_groupmeta($group_id, 'bp_cover_group_position');
    bp_activity_delete(array('id' => $activity_id, 'item_id' => $group_id));
    BP_Activity_Activity::delete_activity_meta_entries($activity_id);
}
 function delete()
 {
     global $nxtdb, $bp;
     // Delete groupmeta for the group
     groups_delete_groupmeta($this->id);
     // Fetch the user IDs of all the members of the group
     $user_ids = BP_Groups_Member::get_group_member_ids($this->id);
     $user_ids = implode(',', (array) $user_ids);
     // Modify group count usermeta for members
     $nxtdb->query($nxtdb->prepare("UPDATE {$nxtdb->usermeta} SET meta_value = meta_value - 1 WHERE meta_key = 'total_group_count' AND user_id IN ( {$user_ids} )"));
     // Now delete all group member entries
     BP_Groups_Member::delete_all($this->id);
     do_action_ref_array('bp_groups_delete_group', array(&$this));
     // Finally remove the group entry from the DB
     if (!$nxtdb->query($nxtdb->prepare("DELETE FROM {$bp->groups->table_name} WHERE id = %d", $this->id))) {
         return false;
     }
     return true;
 }
function groups_update_groupmeta($group_id, $meta_key, $meta_value)
{
    global $nxtdb, $bp;
    if (!is_numeric($group_id)) {
        return false;
    }
    $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
    if (is_string($meta_value)) {
        $meta_value = stripslashes($nxtdb->escape($meta_value));
    }
    $meta_value = maybe_serialize($meta_value);
    if (empty($meta_value)) {
        return groups_delete_groupmeta($group_id, $meta_key);
    }
    $cur = $nxtdb->get_row($nxtdb->prepare("SELECT * FROM " . $bp->groups->table_name_groupmeta . " WHERE group_id = %d AND meta_key = %s", $group_id, $meta_key));
    if (!$cur) {
        $nxtdb->query($nxtdb->prepare("INSERT INTO " . $bp->groups->table_name_groupmeta . " ( group_id, meta_key, meta_value ) VALUES ( %d, %s, %s )", $group_id, $meta_key, $meta_value));
    } else {
        if ($cur->meta_value != $meta_value) {
            $nxtdb->query($nxtdb->prepare("UPDATE " . $bp->groups->table_name_groupmeta . " SET meta_value = %s WHERE group_id = %d AND meta_key = %s", $meta_value, $group_id, $meta_key));
        } else {
            return false;
        }
    }
    // Update the cached object and recache
    nxt_cache_set('bp_groups_groupmeta_' . $group_id . '_' . $meta_key, $meta_value, 'bp');
    return true;
}
 /**
  * Save the Group Forum data on create
  *
  * @since bbPress (r3465)
  */
 public function create_screen_save()
 {
     check_admin_referer('groups_create_save_' . $this->slug);
     $create_forum = !empty($_POST['bbp-create-group-forum']) ? true : false;
     $forum_id = 0;
     $forum_ids = bbp_get_group_forum_ids(bp_get_new_group_id());
     if (!empty($forum_ids)) {
         $forum_id = (int) is_array($forum_ids) ? $forum_ids[0] : $forum_ids;
     }
     // Create a forum, or not
     switch ($create_forum) {
         case true:
             // Bail if initial content was already created
             if (!empty($forum_id)) {
                 return;
             }
             // Set the default forum status
             switch (bp_get_new_group_status()) {
                 case 'hidden':
                     $status = bbp_get_hidden_status_id();
                     break;
                 case 'private':
                     $status = bbp_get_private_status_id();
                     break;
                 case 'public':
                 default:
                     $status = bbp_get_public_status_id();
                     break;
             }
             // Create the initial forum
             $forum_id = bbp_insert_forum(array('post_parent' => bbp_get_group_forums_root_id(), 'post_title' => bp_get_new_group_name(), 'post_content' => bp_get_new_group_description(), 'post_status' => $status));
             // Run the BP-specific functions for new groups
             $this->new_forum(array('forum_id' => $forum_id));
             break;
         case false:
             // Forum was created but is now being undone
             if (!empty($forum_id)) {
                 wp_delete_post($forum_id, true);
                 groups_delete_groupmeta(bp_get_new_group_id(), 'forum_id');
             }
             break;
     }
 }
function gtags_save_tags($group)
{
    global $bp;
    if (isset($_POST['group-tags']) && $_POST['group-tags']) {
        $grouptags = str_replace("\\'", "", $_POST['group-tags']);
        // remove single quotes cause they dont work!
        $grouptags = apply_filters('gtags_save_tags', $grouptags);
        groups_update_groupmeta($group->id, 'gtags_group_tags', $grouptags);
    } elseif ($bp->action_variables[0] == 'edit-details') {
        // delete the group tags if empty, and we're on the edit details page
        groups_delete_groupmeta($group->id, 'gtags_group_tags');
    }
}
 /**
  *  Update association 
  * 
  * @param type $group_id
  * @return type
  */
 public function update($group_id)
 {
     if (!isset($_POST['_bp_linked_group_page_nonce'])) {
         return;
     }
     if (!$this->current_user_can_modify_settings($group_id)) {
         return;
     }
     if (!wp_verify_nonce($_POST['_bp_linked_group_page_nonce'], '_bp_linked_group_page')) {
         return;
     }
     $page_id = absint($_POST['_group_linked_page']);
     if (!$page_id) {
         groups_delete_groupmeta($group_id, '_group_linked_page');
     } else {
         groups_update_groupmeta($group_id, '_group_linked_page', $page_id);
     }
 }
Beispiel #9
0
 /**
  * Save the Group Forum data on create
  *
  * @since bbPress (r3465)
  */
 public function create_screen_save($group_id = 0)
 {
     // Nonce check
     if (!bbp_verify_nonce_request('groups_create_save_' . $this->slug)) {
         bbp_add_error('bbp_create_group_forum_screen_save', __('<strong>ERROR</strong>: Are you sure you wanted to do that?', 'bbpress'));
         return;
     }
     // Check for possibly empty group_id
     if (empty($group_id)) {
         $group_id = bp_get_new_group_id();
     }
     $create_forum = !empty($_POST['bbp-create-group-forum']) ? true : false;
     $forum_id = 0;
     $forum_ids = bbp_get_group_forum_ids($group_id);
     if (!empty($forum_ids)) {
         $forum_id = (int) is_array($forum_ids) ? $forum_ids[0] : $forum_ids;
     }
     // Create a forum, or not
     switch ($create_forum) {
         case true:
             // Bail if initial content was already created
             if (!empty($forum_id)) {
                 return;
             }
             // Set the default forum status
             switch (bp_get_new_group_status()) {
                 case 'hidden':
                     $status = bbp_get_hidden_status_id();
                     break;
                 case 'private':
                     $status = bbp_get_private_status_id();
                     break;
                 case 'public':
                 default:
                     $status = bbp_get_public_status_id();
                     break;
             }
             // Create the initial forum
             $forum_id = bbp_insert_forum(array('post_parent' => bbp_get_group_forums_root_id(), 'post_title' => bp_get_new_group_name(), 'post_content' => bp_get_new_group_description(), 'post_status' => $status));
             // Run the BP-specific functions for new groups
             $this->new_forum(array('forum_id' => $forum_id));
             // Update forum active
             groups_update_groupmeta(bp_get_new_group_id(), '_bbp_forum_enabled_' . $forum_id, true);
             // Toggle forum on
             $this->toggle_group_forum(bp_get_new_group_id(), true);
             break;
         case false:
             // Forum was created but is now being undone
             if (!empty($forum_id)) {
                 // Delete the forum
                 wp_delete_post($forum_id, true);
                 // Delete meta values
                 groups_delete_groupmeta(bp_get_new_group_id(), 'forum_id');
                 groups_delete_groupmeta(bp_get_new_group_id(), '_bbp_forum_enabled_' . $forum_id);
                 // Toggle forum off
                 $this->toggle_group_forum(bp_get_new_group_id(), false);
             }
             break;
     }
 }
function mpp_delete_groups_wall_gallery_id($group_id, $type, $gallery_id)
{
    $key = "_mpp_wall_{$type}_gallery_id";
    return groups_delete_groupmeta($group_id, $key, $gallery_id);
}
 static function user_register_classes($user_id)
 {
     global $wpdb;
     //get user's email address
     $user = get_userdata($user_id);
     //get all invites by email
     $sqlQuery = "SELECT * FROM " . $wpdb->prefix . "bp_groups_groupmeta WHERE meta_value = '" . esc_sql(strtolower($user->user_email)) . "' ";
     $invites = $wpdb->get_results($sqlQuery);
     if (!empty($invites)) {
         foreach ($invites as $invite) {
             //add to group
             groups_join_group($invite->group_id, $user_id);
             //remove meta value
             groups_delete_groupmeta($invite->group_id, "sp_invites", strtolower($user->user_email));
         }
     }
 }
function ass_save_default_subscription($group)
{
    global $bp, $_POST;
    if (isset($_POST['ass-default-subscription']) && ($postval = $_POST['ass-default-subscription'])) {
        if ($postval && $postval != 'no') {
            groups_update_groupmeta($group->id, 'ass_default_subscription', $postval);
        } elseif ($postval == 'no') {
            groups_delete_groupmeta($group->id, 'ass_default_subscription');
        }
    }
}
 /**
  * @group groupmeta
  * @group groups_delete_groupmeta
  */
 public function test_groups_delete_groupmeta_with_delete_all()
 {
     // With no meta key, don't delete for all items - just delete
     // all for a single item
     $g1 = $this->factory->group->create();
     $g2 = $this->factory->group->create();
     groups_add_groupmeta($g1, 'foo', 'bar');
     groups_add_groupmeta($g1, 'foo1', 'bar1');
     groups_add_groupmeta($g2, 'foo', 'bar');
     groups_add_groupmeta($g2, 'foo1', 'bar1');
     $this->assertTrue(groups_delete_groupmeta($g1, 'foo', '', true));
     $this->assertSame('', groups_get_groupmeta($g1, 'foo'));
     $this->assertSame('', groups_get_groupmeta($g2, 'foo'));
     $this->assertSame('bar1', groups_get_groupmeta($g1, 'foo1'));
     $this->assertSame('bar1', groups_get_groupmeta($g2, 'foo1'));
 }
 /**
  * Save the settings of the group
  */
 public function edit_screen_save($group_id = null)
 {
     if ('POST' !== strtoupper($_SERVER['REQUEST_METHOD'])) {
         return false;
     }
     check_admin_referer('groups_edit_save_' . $this->slug, 'altctrl');
     $group_id = !empty($group_id) ? $group_id : bp_get_current_group_id();
     $altctrl = array();
     if (empty($_POST['_altctrl'])) {
         return;
     } else {
         $altctrl = $_POST['_altctrl'];
     }
     if (!empty($altctrl['request'])) {
         groups_update_groupmeta($group_id, '_altctrl_request', absint($altctrl['request']));
     } else {
         groups_delete_groupmeta($group_id, '_altctrl_request');
     }
     if (!empty($altctrl['tabs'])) {
         groups_update_groupmeta($group_id, '_altctrl_tabs', array_map('sanitize_title', $altctrl['tabs']));
     } else {
         groups_delete_groupmeta($group_id, '_altctrl_tabs');
     }
     $page_id = $altctrl['page_id'];
     if (!empty($altctrl['page_cb']) && !empty($altctrl['page_content'])) {
         $page_id = wp_insert_post(array('ID' => $page_id, 'post_status' => 'publish', 'post_type' => 'group_front', 'post_content' => $altctrl['page_content']));
         update_post_meta($page_id, '_altctrl_group_id', $group_id);
         groups_update_groupmeta($group_id, '_altctrl_page_id', $page_id);
     }
     if (!empty($altctrl['page_id']) && empty($altctrl['page_cb'])) {
         if (wp_delete_post($page_id)) {
             groups_delete_groupmeta($group_id, '_altctrl_page_id', $page_id);
         }
     }
     bp_core_add_message(__('Settings saved successfully', 'altctrl-public-group'));
     bp_core_redirect(bp_get_group_permalink(buddypress()->groups->current_group) . 'admin/' . $this->slug);
 }
 /**
  * Save the settings of the group
  *
  * @param  integer $group_id the group id we save settings for
  * @uses check_admin_referer() for security reasons
  * @uses bp_get_current_group_id() to get the group id
  * @uses groups_update_groupmeta() to set the BuddyDrive option if needed
  * @uses groups_delete_groupmeta() to delete the BuddyDrive option if needed
  * @uses buddydrive_remove_buddyfiles_from_group() to eventually remove attached BuddyDrive items
  * @uses is_admin() to check if we're in WP backend
  * @uses bp_core_add_message() to inform about success / error
  * @uses bp_core_redirect() to avoid some refreshing stuff
  * @uses bp_get_group_permalink() to redirect to
  */
 public function edit_screen_save($group_id = null)
 {
     if ('POST' !== strtoupper($_SERVER['REQUEST_METHOD'])) {
         return false;
     }
     check_admin_referer('groups_edit_save_' . $this->slug, 'buddydrive_group_admin');
     $group_id = !empty($group_id) ? $group_id : bp_get_current_group_id();
     /* Insert your edit screen save code here */
     $buddydrive_ok = !empty($_POST['_group_buddydrive_activate']) ? $_POST['_group_buddydrive_activate'] : false;
     if (!empty($buddydrive_ok)) {
         $success = groups_update_groupmeta($group_id, '_buddydrive_enabled', $buddydrive_ok);
     } else {
         $success = groups_delete_groupmeta($group_id, '_buddydrive_enabled');
         // we need to remove folders and items attached to this group in this case
         buddydrive_remove_buddyfiles_from_group($group_id);
     }
     if (!is_admin()) {
         /* To post an error/success message to the screen, use the following */
         if (!$success) {
             bp_core_add_message(__('There was an error saving, please try again', 'buddydrive'), 'error');
         } else {
             bp_core_add_message(__('Settings saved successfully', 'buddydrive'));
         }
         bp_core_redirect(bp_get_group_permalink(buddypress()->groups->current_group) . 'admin/' . $this->slug);
     }
 }
 function admin_ui_edit_save($group_id)
 {
     /* Insert your edit screen save code here */
     $checkins_ok = !empty($_POST['_group_checkins_activate']) ? $_POST['_group_checkins_activate'] : false;
     if (!empty($checkins_ok)) {
         $success = groups_update_groupmeta($group_id, 'checkins_ok', $checkins_ok);
     } else {
         $success = groups_delete_groupmeta($group_id, 'checkins_ok');
     }
     /* we don't want activities to lead to 404 */
     if (groups_get_groupmeta($group_id, 'checkins_ok') != 1) {
         bp_checkins_group_disabled_checkins($group_id);
     }
 }
Beispiel #17
0
delete_option('foursquare-client-secret');
delete_option('foursquare-cron-schedule');
delete_option('foursquare-user-import');
//deleting tables
global $wpdb;
$fs_table = $wpdb->base_prefix . 'bp_checkins_foursquare_logs';
$category_meta_table = $wpdb->base_prefix . 'places_categorymeta';
$wpdb->query("DROP TABLE IF EXISTS `{$fs_table}`");
$wpdb->query("DROP TABLE IF EXISTS `{$category_meta_table}`");
// deleting places !
$places_id = $wpdb->get_col($wpdb->prepare("SELECT ID FROM {$wpdb->base_prefix}posts WHERE post_type = %s", 'places'));
foreach ($places_id as $place) {
    wp_delete_post($place, true);
}
/* leaving taxonomy places_category because no function to delete (future release of WP).. i don't want to put a mess ! */
/* see http://core.trac.wordpress.org/ticket/12629 */
//deleting users meta
delete_metadata('user', false, 'foursquare_token', '', true);
delete_metadata('user', false, 'foursquare_latest_timestamp', '', true);
delete_metadata('user', false, 'bpci_latest_lat', '', true);
delete_metadata('user', false, 'bpci_latest_lng', '', true);
delete_metadata('user', false, 'bpci_latest_address', '', true);
//deleting groupmetas
if (function_exists('bp_init')) {
    $group_ids = $wpdb->get_col("SELECT id FROM {$wpdb->base_prefix}bp_groups");
    if (count($group_ids) >= 1) {
        foreach ($group_ids as $group_id) {
            groups_delete_groupmeta($group_id, 'checkins_ok');
        }
    }
}
/**
 * Process restriction data captured in the form.
 *
 * @since 1.0.0
 */
function cfbgr_process_data()
{
    $group_id = bp_get_current_group_id();
    $restriction = groups_get_groupmeta($group_id, 'cf-buddypress-group-restrictions');
    if ((!isset($_POST['_cfbgr_restriction_status']) || 'hidden' === $_POST['group-status']) && !empty($restriction)) {
        // Delete the group's meta.
        groups_delete_groupmeta(bp_get_current_group_id(), 'cf-buddypress-group-restrictions');
    }
    if (!empty($_POST['_cfbgr_restriction_status']) && 'hidden' !== $_POST['group-status']) {
        $restriction = $_POST['_cfbgr_restriction_status'];
        // Just in case ...
        if (is_array($_POST['_cfbgr_restriction_status'])) {
            $restriction = $_POST['_cfbgr_restriction_status'][0];
        }
        // Update the group's meta.
        groups_update_groupmeta(bp_get_current_group_id(), 'cf-buddypress-group-restrictions', sanitize_key($restriction));
    }
}
 /**
  * settings_screen_save() contains the catch-all logic for saving
  * settings from the edit, create, and Dashboard admin panels
  * @param $group_id int
  */
 function settings_screen_save($group_id = NULL)
 {
     if (isset($_POST['action']) && $_POST['action'] == 'bp_group_cover_upload') {
         $group_id = $_POST['group_id'];
         if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], $group_id)) {
             $this->message = '<div class="error message">' . __('Security check Failed. Contact Administrator.', 'bp-profile-cover') . '</div>';
         } else {
             if (!empty($_FILES['group_cover']['name'])) {
                 $attachment = new BP_Group_Profile_Cover();
                 $file = $attachment->upload($_FILES);
                 if (!empty($file['error'])) {
                     $this->message = '<div class="error message">' . $file['error'] . '</div>';
                 } else {
                     groups_update_groupmeta($group_id, 'cover', $file['url']);
                     $this->message = '<div class="success message">' . __('Cover image uploaded successfully', 'bp-profile-cover') . '</div>';
                 }
             } else {
                 if (isset($_POST['delete_group_profile_cover'])) {
                     groups_delete_groupmeta($group_id, 'cover');
                 }
             }
             if (isset($_POST['position_x'])) {
                 groups_update_groupmeta($group_id, 'position_x', $_POST['position_x']);
             }
             if (isset($_POST['position_y'])) {
                 groups_update_groupmeta($group_id, 'position_y', $_POST['position_y']);
             }
             if (!empty($_POST['cover_repeat'])) {
                 groups_update_groupmeta($group_id, 'repeat', $_POST['cover_repeat']);
             }
         }
     }
 }
 /**
  * Delete the current group.
  *
  * @return bool True on success, false on failure.
  */
 public function delete()
 {
     global $wpdb;
     // Delete groupmeta for the group.
     groups_delete_groupmeta($this->id);
     // Fetch the user IDs of all the members of the group.
     $user_ids = BP_Groups_Member::get_group_member_ids($this->id);
     $user_id_str = esc_sql(implode(',', wp_parse_id_list($user_ids)));
     // Modify group count usermeta for members.
     $wpdb->query("UPDATE {$wpdb->usermeta} SET meta_value = meta_value - 1 WHERE meta_key = 'total_group_count' AND user_id IN ( {$user_id_str} )");
     // Now delete all group member entries.
     BP_Groups_Member::delete_all($this->id);
     /**
      * Fires before the deletion of a group.
      *
      * @since 1.2.0
      *
      * @param BP_Groups_Group $this     Current instance of the group item being deleted. Passed by reference.
      * @param array           $user_ids Array of user IDs that were members of the group.
      */
     do_action_ref_array('bp_groups_delete_group', array(&$this, $user_ids));
     wp_cache_delete($this->id, 'bp_groups');
     $bp = buddypress();
     // Finally remove the group entry from the DB.
     if (!$wpdb->query($wpdb->prepare("DELETE FROM {$bp->groups->table_name} WHERE id = %d", $this->id))) {
         return false;
     }
     return true;
 }
function ass_save_default_subscription($group)
{
    if (isset($_POST['ass-default-subscription']) && ($postval = $_POST['ass-default-subscription'])) {
        if ($postval && $postval != 'no') {
            groups_update_groupmeta($group->id, 'ass_default_subscription', $postval);
            // during group creation, also save the sub level for the group creator
            if ('group-settings' == bp_get_groups_current_create_step()) {
                ass_group_subscription($postval, $group->creator_id, $group->id);
            }
        } elseif ($postval == 'no') {
            groups_delete_groupmeta($group->id, 'ass_default_subscription');
        }
    }
}
Beispiel #22
0
function groups_update_groupmeta($group_id, $meta_key, $meta_value)
{
    global $wpdb, $bp;
    if (!is_numeric($group_id)) {
        return false;
    }
    $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);
    $meta_value = (string) $meta_value;
    if (is_string($meta_value)) {
        $meta_value = stripslashes($wpdb->escape($meta_value));
    }
    $meta_value = maybe_serialize($meta_value);
    if (empty($meta_value)) {
        return groups_delete_groupmeta($group_id, $meta_key);
    }
    $cur = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . $bp->groups->table_name_groupmeta . " WHERE group_id = %d AND meta_key = %s", $group_id, $meta_key));
    if (!$cur) {
        $wpdb->query($wpdb->prepare("INSERT INTO " . $bp->groups->table_name_groupmeta . " ( group_id, meta_key, meta_value ) VALUES ( %d, %s, %s )", $group_id, $meta_key, $meta_value));
    } else {
        if ($cur->meta_value != $meta_value) {
            $wpdb->query($wpdb->prepare("UPDATE " . $bp->groups->table_name_groupmeta . " SET meta_value = %s WHERE group_id = %d AND meta_key = %s", $meta_value, $group_id, $meta_key));
        } else {
            return false;
        }
    }
    // TODO need to look into using this.
    // wp_cache_delete($user_id, 'users');
    return true;
}
Beispiel #23
0
 public function create_screen_save_notab($group_id = 0)
 {
     // No nonce check, since there's no tab
     // Check for possibly empty group_id
     if (empty($group_id)) {
         $group_id = bp_get_new_group_id();
     }
     // We always set this true, because we always create a forum (the user doesn't get to choose whether they want it or not anymore)
     $create_forum = true;
     //!empty( $_POST['bbp-create-group-forum'] ) ? true : false;
     $forum_id = 0;
     $forum_ids = bbp_get_group_forum_ids($group_id);
     if (!empty($forum_ids)) {
         $forum_id = (int) is_array($forum_ids) ? $forum_ids[0] : $forum_ids;
     }
     // Create a forum, or not
     switch ($create_forum) {
         case true:
             // Bail if initial content was already created
             if (!empty($forum_id)) {
                 return;
             }
             // Set the default forum status
             switch (bp_get_new_group_status()) {
                 case 'hidden':
                     $status = bbp_get_hidden_status_id();
                     break;
                 case 'private':
                     $status = bbp_get_private_status_id();
                     break;
                 case 'public':
                 default:
                     $status = bbp_get_public_status_id();
                     break;
             }
             // Create the initial forum
             $forum_id = bbp_insert_forum(array('post_parent' => bbp_get_group_forums_root_id(), 'post_title' => bp_get_new_group_name(), 'post_content' => bp_get_new_group_description(), 'post_status' => $status));
             // Run the BP-specific functions for new groups
             $this->new_forum(array('forum_id' => $forum_id));
             // Update forum active
             groups_update_groupmeta(bp_get_new_group_id(), '_bbp_forum_enabled_' . $forum_id, true);
             // Toggle forum on
             $this->toggle_group_forum(bp_get_new_group_id(), true);
             break;
         case false:
             // Forum was created but is now being undone
             if (!empty($forum_id)) {
                 // Delete the forum
                 wp_delete_post($forum_id, true);
                 // Delete meta values
                 groups_delete_groupmeta(bp_get_new_group_id(), 'forum_id');
                 groups_delete_groupmeta(bp_get_new_group_id(), '_bbp_forum_enabled_' . $forum_id);
                 // Toggle forum off
                 $this->toggle_group_forum(bp_get_new_group_id(), false);
             }
             break;
     }
 }
 /**
  * @group user_can_associate_doc_with_group
  * @expectedDeprecated user_can_associate_doc_with_group
  */
 public function test_associate_with_group_default_can_create_value()
 {
     $g = $this->factory->group->create();
     $d = $this->factory->doc->create(array('group' => $g));
     groups_delete_groupmeta($g, 'bp-docs');
     $u = $this->factory->user->create();
     $this->add_user_to_group($u, $g);
     $this->assertTrue(BP_Docs_Groups_Integration::user_can_associate_doc_with_group($u, $g));
 }
/**
 * Saves settings, called from settings/admin page
 *
 * @return boolean
 */
function ccgn_update_groupmeta($group_id = false)
{
    $group_id = !$group_id ? bp_get_current_group_id() : $group_id;
    $success = false;
    $input = array('ccgn_is_enabled', 'ccgn_tab_label', 'ccgn_level_to_post', 'ccgn_url_slug');
    foreach ($input as $field) {
        //groups_update_groupmeta returns false if the old value matches the new value, so we'll need to check for that case
        $old_setting = groups_get_groupmeta($group_id, $field);
        $new_setting = isset($_POST[$field]) ? $_POST[$field] : null;
        // Filter the slug on save
        // TODO: Don't use this slug for the Admin pane . Maybe not possible with current BP?
        // Probably will need to modify BP_Group_Extension and submit ticket.
        if ($field == 'ccgn_url_slug') {
            $new_setting = sanitize_title($new_setting);
        }
        if ($new_setting == $old_setting) {
            // No need to resave settings if they're the same
            $success = true;
        } elseif (empty($new_setting)) {
            // Remove existing entries
            $success = groups_delete_groupmeta($group_id, $field);
        } else {
            $success = groups_update_groupmeta($group_id, $field, $new_setting);
        }
    }
    return $success;
}
 function delete()
 {
     global $wpdb, $bp;
     // Delete groupmeta for the group
     groups_delete_groupmeta($this->id);
     // Modify group count usermeta for members
     for ($i = 0; $i < count($this->user_dataset); $i++) {
         $user = $this->user_dataset[$i];
         $total_count = get_usermeta($user->user_id, 'total_group_count');
         if ($total_count != '') {
             update_usermeta($user->user_id, 'total_group_count', (int) $total_count - 1);
         }
         // Now delete the group member record
         BP_Groups_Member::delete($user->user_id, $this->id, false);
     }
     // Delete the wire posts for this group if the wire is installed
     if (function_exists('bp_wire_install')) {
         BP_Wire_Post::delete_all_for_item($this->id, $bp->groups->table_name_wire);
     }
     // Finally remove the group entry from the DB
     if (!$wpdb->query($wpdb->prepare("DELETE FROM {$bp->groups->table_name} WHERE id = %d", $this->id))) {
         return false;
     }
     return true;
 }
Beispiel #27
0
 /**
  * Delete Group Cover
  * @param null $group_id
  * @return bool|void
  */
 function delete_cover($group_id = null)
 {
     if (!$group_id) {
         return false;
     }
     //delete the associated image and send a message
     $old_file_path = groups_get_groupmeta($group_id, 'bpcp_group_cover_file_path');
     if ($old_file_path) {
         @unlink($old_file_path);
         //remove old files with each new upload
     }
     groups_delete_groupmeta($group_id, 'bpcp_group_cover_file_path');
     groups_delete_groupmeta($group_id, 'bpcp_group_cover');
 }