Example #1
0
/**
 * Catches an activity to delete if js is enabled
 *
 * @package BP Reshare
 * @since    1.0
 *
 * @uses  check_ajax_referer() for security reasons
 * @uses  bp_activity_get_specific() to fetch the activity to delete
 * @uses  buddyreshare_reset_metas() to reset some metas for the parent activity
 * @uses  bp_activity_delete() to delete the reshare
 */
function buddyreshare_ajax_delete_reshare()
{
    // Bail if not a POST action
    if ('POST' !== strtoupper($_SERVER['REQUEST_METHOD'])) {
        return;
    }
    check_ajax_referer('buddyreshare_delete', 'nonce');
    $response = array('result' => 'error', 'message' => __('OOps, error while trying to delete your reshare..', 'bp-reshare'));
    $reshare_id = intval($_POST['activity']);
    if (empty($reshare_id)) {
        $response['message'] = __('The reshare was not found.', 'bp-reshare');
        exit(json_encode($response));
    }
    $reshare_to_delete = bp_activity_get_specific(array('activity_ids' => $reshare_id));
    if (empty($reshare_to_delete)) {
        $response['message'] = __('The reshare was not found.', 'bp-reshare');
        exit(json_encode($response));
    }
    $reshare = $reshare_to_delete['activities'][0];
    $reset = buddyreshare_reset_metas($reshare->secondary_item_id, $reshare->user_id);
    if (empty($reset)) {
        $response['message'] = __('Unable to reset the properties of the reshared activity', 'bp-reshare');
        exit(json_encode($response));
    }
    $deleted_reshare = bp_activity_delete(array('type' => 'reshare_update', 'id' => $reshare_id));
    if (!empty($deleted_reshare)) {
        do_action('buddyreshare_reshare_deleted', $reshare_id);
        $response['result'] = 'success';
        $response['message'] = __('Reshare successfully deleted.', 'bp-reshare');
    } else {
        do_action('buddyreshare_reshare_deleted_error', $reshare_id);
    }
    exit(json_encode($response));
}
Example #2
0
/**
 * Catches a reshare to delete if js is disabled
 *
 * @package BP Reshare
 * @since    1.0
 *
 * @uses  bp_is_activity_component() are we in activity component
 * @uses  bp_is_current_action() to check current action
 * @uses  buddyreshare_get_component_slug() to get component slug
 * @uses  bp_action_variable() to check the variables
 * @uses  check_admin_referer() for security reasons
 * @uses  bp_activity_get_specific() to fetch the activity to delete
 * @uses  bp_do_404() to eventually send the user on a 404
 * @uses  bp_core_get_user_domain() to build user's url
 * @uses  bp_get_activity_slug() to get activity slug
 * @uses  buddyreshare_reset_metas() to reset some metas for the parent activity
 * @uses  bp_core_add_message() to print a warning message
 * @uses  bp_core_redirect() to safely redirect user
 * @uses  bp_activity_delete() to delete the reshare
 */
function buddyreshare_remove_reshare()
{
    // Not deleting a reshare
    if (!bp_is_activity_component() || !bp_is_current_action(buddyreshare_get_component_slug())) {
        return false;
    }
    // No reshare to delete
    if (!bp_action_variable(0) || bp_action_variable(0) != 'delete' || !bp_action_variable(1) || !is_numeric(bp_action_variable(1))) {
        return false;
    }
    $reshare_id = bp_action_variable(1);
    check_admin_referer('buddyreshare_delete');
    // Get the activity details
    $activity = bp_activity_get_specific(array('activity_ids' => bp_action_variable(1), 'show_hidden' => true));
    // 404 if activity does not exist
    if (empty($activity['activities'][0])) {
        bp_do_404();
        return;
    } else {
        $reshare = $activity['activities'][0];
    }
    // redirecting to user's profile
    $redirect = bp_core_get_user_domain($reshare->user_id, $reshare->user_nicename, $reshare->user_login) . bp_get_activity_slug() . '/';
    $reset = buddyreshare_reset_metas($reshare->secondary_item_id, $reshare->user_id);
    if (empty($reset)) {
        bp_core_add_message(__('Unable to reset the properties of the reshared activity', 'bp-reshare'), 'error');
        bp_core_redirect($redirect);
    }
    $deleted_reshare = bp_activity_delete(array('type' => 'reshare_update', 'id' => $reshare_id));
    if (!empty($deleted_reshare)) {
        do_action('buddyreshare_reshare_deleted', $reshare_id);
        bp_core_add_message(__('Reshare deleted !', 'bp-reshare'));
        bp_core_redirect($redirect);
    } else {
        do_action('buddyreshare_reshare_deleted_error', $reshare_id);
        bp_core_add_message(__('OOps, error while trying to reshare..', 'bp-reshare'), 'error');
        bp_core_redirect($redirect);
    }
}