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