/** * Catches an activity to reshare if js is enabled * * @package BP Reshare * @since 1.0 * * @uses check_ajax_referer() for security reasons * @uses buddyreshare_prepare_reshare() to build the reshare arguments * @uses bp_activity_add() to save the reshare */ function buddyreshare_handle_ajax_reshare() { // Bail if not a POST action if ('POST' !== strtoupper($_SERVER['REQUEST_METHOD'])) { return; } check_ajax_referer('buddyreshare_update', 'nonce'); $response = array('result' => 'error', 'message' => __('OOps, error while trying to reshare..', 'bp-reshare')); $activity_id = intval($_POST['activity']); if (empty($activity_id)) { $response['message'] = __('The activity was not found.', 'bp-reshare'); exit(json_encode($response)); } $args = buddyreshare_prepare_reshare($activity_id); if (isset($args['error'])) { $response['message'] = $args['error']; exit(json_encode($response)); } $reshare_id = bp_activity_add($args); if (!empty($reshare_id)) { do_action('buddyreshare_reshare_added', $reshare_id); $response['result'] = 'success'; $response['message'] = __('Activity successfully reshared.', 'bp-reshare'); } else { do_action('buddyreshare_reshare_added_error', $reshare_id); } exit(json_encode($response)); }
/** * Catches an activity to reshare 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_core_get_user_domain() to build user's url * @uses bp_loggedin_user_id() to get current user's id * @uses bp_get_activity_slug() to get activity slug * @uses buddyreshare_prepare_reshare() to build the reshare arguments * @uses bp_core_add_message() to print a warning message * @uses bp_core_redirect() to safely redirect user * @uses bp_activity_add() to save the reshare */ function buddyreshare_add_reshare() { // Not adding a reshare if (!bp_is_activity_component() || !bp_is_current_action(buddyreshare_get_component_slug())) { return false; } // No reshare to add if (!bp_action_variable(0) || bp_action_variable(0) != 'add' || !bp_action_variable(1) || !is_numeric(bp_action_variable(1))) { return false; } $reshare_id = bp_action_variable(1); check_admin_referer('buddyreshare_update'); // redirecting to user's profile $redirect = bp_core_get_user_domain(bp_loggedin_user_id()) . bp_get_activity_slug() . '/'; $reshared_args = buddyreshare_prepare_reshare($reshare_id); if (isset($reshared_args['error'])) { bp_core_add_message($reshared_args['error'], 'error'); bp_core_redirect($redirect); } $reshared = bp_activity_add($reshared_args); if (!empty($reshared)) { do_action('buddyreshare_reshare_added', $reshare_id); bp_core_add_message(__('Activity reshared !', 'bp-reshare')); bp_core_redirect($redirect); } else { do_action('buddyreshare_reshare_added_error', $reshare_id); bp_core_add_message(__('OOps, error while trying to reshare..', 'bp-reshare'), 'error'); bp_core_redirect($redirect); } }