/** * Post a gallery or media Main comment on single page * * @return type */ public function post_comment() { //this is BuddyPress dependent if (!function_exists('buddypress')) { exit(0); } // Bail if not a POST action if ('POST' !== strtoupper($_SERVER['REQUEST_METHOD'])) { return; } // Check the nonce check_admin_referer('post_update', '_wpnonce_post_update'); if (!is_user_logged_in()) { exit('-1'); } $mpp_type = $_POST['mpp-type']; $mpp_id = $_POST['mpp-id']; if (empty($_POST['content'])) { exit('-1<div id="message" class="error"><p>' . __('Please enter some content to post.', 'mediapress') . '</p></div>'); } $activity_id = 0; if (empty($_POST['object']) && bp_is_active('activity')) { //we are preventing this comment to be set as the user's lastes_update $user_id = bp_loggedin_user_id(); $old_latest_update = bp_get_user_meta($user_id, 'bp_latest_update', true); $activity_id = bp_activity_post_update(array('content' => $_POST['content'])); //restore if (!empty($old_latest_update)) { bp_update_user_meta($user_id, 'bp_latest_update', $old_latest_update); } } elseif ($_POST['object'] == 'groups') { if (!empty($_POST['item_id']) && bp_is_active('groups')) { $activity_id = groups_post_update(array('content' => $_POST['content'], 'group_id' => $_POST['item_id'])); } } else { $activity_id = apply_filters('bp_activity_custom_update', $_POST['object'], $_POST['item_id'], $_POST['content']); } if (empty($activity_id)) { exit('-1<div id="message" class="error"><p>' . __('There was a problem posting your update, please try again.', 'mediapress') . '</p></div>'); } $status = ''; //if we have got activity id, let us add a meta key if ($mpp_type == 'gallery') { mpp_activity_update_gallery_id($activity_id, $mpp_id); mpp_activity_update_activity_type($activity_id, 'gallery_comment'); mpp_activity_update_context($activity_id, 'gallery'); $status = mpp_get_gallery_status($mpp_id); } elseif ($mpp_type == 'media') { $media = mpp_get_media($mpp_id); if (!$media) { die('-1'); } mpp_activity_update_gallery_id($activity_id, $media->gallery_id); mpp_activity_update_media_id($activity_id, $mpp_id); mpp_activity_update_activity_type($activity_id, 'media_comment'); mpp_activity_update_context($activity_id, 'media'); //also we need to keep the parent gallery id for caching $status = mpp_get_media_status($media); } $activity = new BP_Activity_Activity($activity_id); // $activity->component = buddypress()->mediapress->id; $activity->type = 'mpp_media_upload'; $activity->save(); //save activity privacy if ($status) { $status_object = mpp_get_status_object($status); if ($status_object) { bp_activity_update_meta($activity->id, 'activity-privacy', $status_object->activity_privacy); } } //create a shadow comment mpp_activity_create_comment_for_activity($activity_id); if (bp_has_activities('include=' . $activity_id)) { while (bp_activities()) { bp_the_activity(); mpp_locate_template(array('buddypress/activity/entry.php'), true); } } exit; }
/** * Create a shadow WordPress comment when a group update with media is posted * * @param string $content * @param int $user_id * @param int $group_id * @param int $activity_id */ function mpp_activity_synchronize_group_activity_to_comment($content, $user_id, $group_id, $activity_id) { mpp_activity_create_comment_for_activity($activity_id); }