Exemple #1
0
 /**
  * Make sure that action filters ('activity_update', etc) work when
  * limiting query to user favorites
  *
  * @ticket BP4872
  * @group scope
  */
 public function test_bp_has_activities_favorites_action_filter()
 {
     $user_id = $this->factory->user->create(array('role' => 'subscriber'));
     $now = time();
     $a1 = $this->factory->activity->create(array('type' => 'activity_update', 'recorded_time' => date('Y-m-d H:i:s', $now)));
     $a2 = $this->factory->activity->create(array('type' => 'joined_group', 'recorded_time' => date('Y-m-d H:i:s', $now - 100)));
     $current_user = bp_loggedin_user_id();
     $this->set_current_user($user_id);
     bp_activity_add_user_favorite($a1, $user_id);
     bp_activity_add_user_favorite($a2, $user_id);
     $this->set_current_user($current_user);
     // groan. It sucks that you have to invoke the global
     global $activities_template;
     // Case 1: no action filter
     bp_has_activities(array('user_id' => $user_id, 'scope' => 'favorites'));
     // The formatting of $activities_template->activities is messed
     // up, so we're just going to look at the IDs. This should be
     // fixed in BP at some point
     $ids = wp_list_pluck($activities_template->activities, 'id');
     $this->assertEquals(array($a1, $a2), $ids);
     $activities_template = null;
     // Case 2: action filter
     bp_has_activities(array('user_id' => $user_id, 'scope' => 'favorites', 'action' => 'activity_update'));
     $ids = wp_list_pluck($activities_template->activities, 'id');
     $this->assertEquals(array($a1), $ids);
     $activities_template = null;
 }
Exemple #2
0
function bp_dtheme_mark_activity_favorite()
{
    global $bp;
    bp_activity_add_user_favorite($_POST['id']);
    _e('Remove Favorite', 'buddypress');
}
Exemple #3
0
function bp_dtheme_mark_activity_favorite()
{
    // Bail if not a POST action
    if ('POST' !== strtoupper($_SERVER['REQUEST_METHOD'])) {
        return;
    }
    bp_activity_add_user_favorite($_POST['id']);
    _e('Remove Favorite', 'buddypress');
}
Exemple #4
0
/**
 * Mark an activity as a favourite via a POST request.
 *
 * @return string HTML
 * @since BuddyPress (1.2)
 */
function bp_dtheme_mark_activity_favorite()
{
    // Bail if not a POST action
    if ('POST' !== strtoupper($_SERVER['REQUEST_METHOD'])) {
        return;
    }
    if (bp_activity_add_user_favorite($_POST['id'])) {
        _e('Remove Favorite', 'logicalboneshug');
    } else {
        _e('Favorite', 'logicalboneshug');
    }
    exit;
}
/**
 * Mark activity as favorite.
 *
 * @since 1.2.0
 *
 * @uses is_user_logged_in()
 * @uses bp_is_activity_component()
 * @uses bp_is_current_action()
 * @uses check_admin_referer()
 * @uses bp_activity_add_user_favorite()
 * @uses bp_action_variable()
 * @uses bp_core_add_message()
 * @uses bp_core_redirect()
 * @uses wp_get_referer()
 *
 * @return bool False on failure.
 */
function bp_activity_action_mark_favorite()
{
    if (!is_user_logged_in() || !bp_is_activity_component() || !bp_is_current_action('favorite')) {
        return false;
    }
    // Check the nonce.
    check_admin_referer('mark_favorite');
    if (bp_activity_add_user_favorite(bp_action_variable(0))) {
        bp_core_add_message(__('Activity marked as favorite.', 'buddypress'));
    } else {
        bp_core_add_message(__('There was an error marking that activity as a favorite. Please try again.', 'buddypress'), 'error');
    }
    bp_core_redirect(wp_get_referer() . '#activity-' . bp_action_variable(0));
}
/**
 * Mark an activity as a favourite via a POST request.
 *
 * @since 1.2.0
 *
 * @return string HTML
 */
function bp_legacy_theme_mark_activity_favorite()
{
    // Bail if not a POST action.
    if ('POST' !== strtoupper($_SERVER['REQUEST_METHOD'])) {
        return;
    }
    if (bp_activity_add_user_favorite($_POST['id'])) {
        _e('Remove Favorite', 'buddypress');
    } else {
        _e('Favorite', 'buddypress');
    }
    exit;
}
 /**
  * Screen function for grabbing a favorite request
  *
  * If redirect_to is found, it comes from a single blog post page, so
  * we handle it. Otherwise fall through to the BP native function
  */
 public function catch_mark_favorite()
 {
     // Let BP handle regular favoriting
     if (!isset($_GET['redirect_to'])) {
         return;
     }
     if (!is_user_logged_in() || !bp_is_activity_component() || !bp_is_current_action('favorite')) {
         if (!is_user_logged_in()) {
             # Not logged in? Get them to log in.
             $post_url = stripslashes(urldecode($_GET['redirect_to']));
             $url = wp_login_url($post_url);
             $url = add_query_arg(array('tcfav' => 'ready'), $url);
             wp_redirect($url);
             exit;
         } else {
             return false;
         }
     }
     remove_action('bp_actions', 'bp_activity_action_mark_favorite');
     // Check the nonce
     check_admin_referer('mark_favorite');
     bp_activity_add_user_favorite(bp_action_variable(0));
     wp_redirect(stripslashes(urldecode($_GET['redirect_to'])));
 }
Exemple #8
0
 /**
  * @group favorites
  * @group bp_activity_remove_user_favorite
  */
 public function test_remove_user_favorite_bad_activity_id()
 {
     $u1 = $this->factory->user->create();
     $u2 = $this->factory->user->create();
     $a = $this->factory->activity->create();
     // bp_activity_add_user_favorite() requires a logged-in user.
     $current_user = bp_loggedin_user_id();
     $this->set_current_user($u1);
     // Only favorite for user 1
     bp_activity_add_user_favorite($a, $u1);
     // Removing for user 2 should fail
     $this->assertFalse(bp_activity_remove_user_favorite($a, $u2));
     $this->assertEquals(1, bp_activity_get_meta($a, 'favorite_count'));
     $this->set_current_user($current_user);
 }
Exemple #9
0
function bp_activity_action_mark_favorite() {
	global $bp;

	if ( !is_user_logged_in() || $bp->current_component != $bp->activity->slug || $bp->current_action != 'favorite' )
		return false;

	/* Check the nonce */
	check_admin_referer( 'mark_favorite' );

	if ( bp_activity_add_user_favorite( $bp->action_variables[0] ) )
		bp_core_add_message( __( 'Activity marked as favorite.', 'buddypress' ) );
	else
		bp_core_add_message( __( 'There was an error marking that activity as a favorite, please try again.', 'buddypress' ), 'error' );

	bp_core_redirect( wp_get_referer() . '#activity-' . $bp->action_variables[0] );
}
/**
 * Mark an activity as a favourite via a POST request.
 *
 * @return string HTML
 * @since BuddyBoss 3.0
 */
function buddyboss_mark_activity_favorite()
{
    // Bail if not a POST action
    if ('POST' !== strtoupper($_SERVER['REQUEST_METHOD'])) {
        return;
    }
    if (bp_activity_add_user_favorite($_POST['id'])) {
        $resp['but_text'] = __('Unlike', 'buddyboss');
    } else {
        $resp['but_text'] = __('Like', 'buddyboss');
    }
    $resp['num_likes'] = get_wall_add_likes_comments((int) $_POST['id']);
    $resp['like_count'] = (int) bp_activity_get_meta((int) $_POST['id'], 'favorite_count');
    echo json_encode($resp);
    exit;
}
Exemple #11
0
function bp_dtheme_mark_activity_favorite_product()
{
    global $bp;
    bp_activity_add_user_favorite($_POST['id']);
    _e('Remove Favorite', 'product');
}