/** * 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)); }
/** * 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); } }