function bp_media_shortcode_url($atts) { extract(shortcode_atts(array('id' => '0'), $atts)); try { $media = new BP_Media_Host_Wordpress($id); return $media->get_media_activity_url(); } catch (Exception $e) { return home_url(); } }
function bp_media_activity_permalink_filter($link, $activity_obj = null) { if ($activity_obj != null && 'media_upload' == $activity_obj->type) { add_shortcode('bp_media_url', 'bp_media_shortcode_url'); $link = do_shortcode($activity_obj->primary_link); remove_shortcode('bp_media_url'); } if ($activity_obj != null && 'activity_comment' == $activity_obj->type) { $parent = bp_activity_get_meta($activity_obj->item_id, 'bp_media_parent_post'); if ($parent) { $parent = new BP_Media_Host_Wordpress($parent); $link = $parent->get_url(); } } return $link; }
function bp_media_upgrade_to_2_2() { global $wpdb; remove_filter('bp_activity_get_user_join_filter', 'bp_media_activity_query_filter', 10); /* @var $wpdb wpdb */ $media_files = new WP_Query(array('post_type' => 'bp_media', 'posts_per_page' => -1)); $media_files = $media_files->posts; $wall_posts_album_ids = array(); if (is_array($media_files) && count($media_files)) { foreach ($media_files as $media_file) { $attachment_id = get_post_meta($media_file->ID, 'bp_media_child_attachment', true); $child_activity = get_post_meta($media_file->ID, 'bp_media_child_activity', true); update_post_meta($attachment_id, 'bp_media_child_activity', $child_activity); $attachment = get_post($attachment_id, ARRAY_A); if (isset($wall_posts_album_ids[$media_file->post_author])) { $wall_posts_id = $wall_posts_album_ids[$media_file->post_author]; } else { $wall_posts_id = $wpdb->get_var("SELECT ID FROM {$wpdb->posts} WHERE post_title = 'Wall Posts' AND post_author = '" . $media_file->post_author . "' AND post_type='bp_media_album'"); if ($wall_posts_id == null) { $album = new BP_Media_Album(); $album->add_album('Wall Posts', $media_file->post_author); $wall_posts_id = $album->get_id(); } if (!$wall_posts_id) { continue; //This condition should never be encountered } $wall_posts_album_ids[$media_file->post_author] = $wall_posts_id; } $attachment['post_parent'] = $wall_posts_id; wp_update_post($attachment); update_post_meta($attachment_id, 'bp-media-key', $media_file->post_author); $activity = bp_activity_get(array('in' => intval($child_activity))); if (isset($activity['activities'][0]->id)) { $activity = $activity['activities'][0]; } $bp_media = new BP_Media_Host_Wordpress($attachment_id); $args = array('content' => $bp_media->get_media_activity_content(), 'id' => $child_activity, 'type' => 'media_upload', 'action' => apply_filters('bp_media_added_media', sprintf(__('%1$s added a %2$s', 'bp-media'), bp_core_get_userlink($media_file->post_author), '<a href="' . $bp_media->get_url() . '">' . $bp_media->get_media_activity_type() . '</a>')), 'primary_link' => $bp_media->get_url(), 'item_id' => $attachment_id, 'recorded_time' => $activity->date_recorded); $act_id = bp_media_record_activity($args); bp_activity_delete_meta($child_activity, 'bp_media_parent_post'); wp_delete_post($media_file->ID); } } update_option('bp_media_db_version', BP_MEDIA_DB_VERSION); add_action('admin_notices', 'bp_media_database_updated_notice'); wp_cache_flush(); }
function bp_media_delete_activity_handler_old($args) { global $bp_media_count, $wpdb; if (!array_key_exists('id', $args)) { return; } $activity_id = $args['id']; $query = "SELECT post_id from {$wpdb->postmeta} WHERE meta_key='bp_media_child_activity' AND meta_value={$activity_id}"; $result = $wpdb->get_results($query); if (!(is_array($result) && count($result) == 1)) { return; } $post_id = $result[0]->post_id; $media = new BP_Media_Host_Wordpress($post_id); $media->delete_media(); }
function bp_media_the_content($id = 0) { if (is_object($id)) { $media = $id; } else { $media =& get_post($id); } if (empty($media->ID)) { return false; } if (!$media->post_type == 'bp_media') { return false; } $media = new BP_Media_Host_Wordpress($media->ID); echo $media->get_media_gallery_content(); }
function bp_media_shortcode_url($atts) { extract(shortcode_atts(array('id' => '0'), $atts)); $media = new BP_Media_Host_Wordpress($id); return $media->get_media_activity_url(); }
function bp_media_update_album_activity($album, $current_time = true, $delete_media_id = null) { if (!is_object($album)) { $album = new BP_Media_Album($album); } $args = array('post_parent' => $album->get_id(), 'numberposts' => 4, 'post_type' => 'attachment'); if ($delete_media_id) { $args['exclude'] = $delete_media_id; } $attachments = get_posts($args); if (is_array($attachments)) { $content = '<ul>'; foreach ($attachments as $media) { $bp_media = new BP_Media_Host_Wordpress($media->ID); $content .= $bp_media->get_album_activity_content(); } $content .= '</ul>'; $activity_id = get_post_meta($album->get_id(), 'bp_media_child_activity'); if ($activity_id) { $args = array('in' => $activity_id); $activity = @bp_activity_get($args); if (isset($activity['activities'][0]->id)) { $args = array('content' => $content, 'id' => $activity_id, 'type' => 'album_updated', 'user_id' => $activity['activities'][0]->user_id, 'action' => apply_filters('bp_media_filter_album_updated', sprintf(__('%1$s added new media in album %2$s', 'bp-media'), bp_core_get_userlink($activity['activities'][0]->user_id), '<a href="' . $album->get_url() . '">' . $album->get_title() . '</a>')), 'component' => BP_MEDIA_SLUG, 'primary_link' => $activity['activities'][0]->primary_link, 'item_id' => $activity['activities'][0]->item_id, 'secondary_item_id' => $activity['activities'][0]->secondary_item_id, 'recorded_time' => $current_time ? bp_core_current_time() : $activity['activities'][0]->date_recorded, 'hide_sitewide' => $activity['activities'][0]->hide_sitewide); bp_media_record_activity($args); } } } }
function bp_media_entry_delete() { global $bp; if (bp_loggedin_user_id() != bp_displayed_user_id()) { bp_core_no_access(array('message' => __('You do not have access to this page.', 'buddypress'), 'root' => bp_displayed_user_domain(), 'redirect' => false)); exit; } if (!isset($bp->action_variables[1])) { @setcookie('bp-message', 'The requested url does not exist', time() + 60 * 60 * 24, COOKIEPATH); @setcookie('bp-message-type', 'error', time() + 60 * 60 * 24, COOKIEPATH); wp_redirect(trailingslashit(bp_displayed_user_domain() . BP_MEDIA_IMAGES_SLUG)); exit; } global $bp_media_current_entry; try { $bp_media_current_entry = new BP_Media_Host_Wordpress($bp->action_variables[1]); } catch (Exception $e) { /* Send the values to the cookie for page reload display */ @setcookie('bp-message', $e->getMessage(), time() + 60 * 60 * 24, COOKIEPATH); @setcookie('bp-message-type', 'error', time() + 60 * 60 * 24, COOKIEPATH); wp_redirect(trailingslashit(bp_displayed_user_domain() . BP_MEDIA_IMAGES_SLUG)); exit; } $post_id = $bp_media_current_entry->get_id(); $activity_id = get_post_meta($post_id, 'bp_media_child_activity', true); bp_activity_delete_by_activity_id($activity_id); $bp_media_current_entry->delete_media(); @setcookie('bp-message', __('Media deleted successfully', 'bp-media'), time() + 60 * 60 * 24, COOKIEPATH); @setcookie('bp-message-type', 'success', time() + 60 * 60 * 24, COOKIEPATH); wp_redirect(trailingslashit(bp_displayed_user_domain() . BP_MEDIA_IMAGES_SLUG)); exit; }
/** * Function to return the media for the ajax requests */ function bp_media_load_more() { global $bp, $bp_media_query; $page = isset($_POST['page']) ? $_POST['page'] : die; $current_action = isset($_POST['current_action']) ? $_POST['current_action'] : null; $action_variables = isset($_POST['action_variables']) ? $_POST['action_variables'] : null; $displayed_user = isset($_POST['displayed_user']) ? $_POST['displayed_user'] : null; $loggedin_user = isset($_POST['loggedin_user']) ? $_POST['loggedin_user'] : null; if (!$displayed_user || intval($displayed_user) == 0) { die; } $posts_per_page = 10; switch ($current_action) { case BP_MEDIA_IMAGES_SLUG: $args = array('post_type' => 'attachment', 'post_status' => 'any', 'post_mime_type' => 'image', 'author' => $bp->displayed_user->id, 'meta_key' => 'bp-media-key', 'meta_value' => $bp->displayed_user->id, 'meta_compare' => 'LIKE', 'paged' => $page, 'posts_per_page' => $posts_per_page); break; case BP_MEDIA_AUDIO_SLUG: $args = array('post_type' => 'attachment', 'post_status' => 'any', 'post_mime_type' => 'audio', 'author' => $bp->displayed_user->id, 'meta_key' => 'bp-media-key', 'meta_value' => $bp->displayed_user->id, 'meta_compare' => 'LIKE', 'paged' => $page, 'posts_per_page' => $posts_per_page); break; case BP_MEDIA_VIDEOS_SLUG: $args = array('post_type' => 'attachment', 'post_status' => 'any', 'post_mime_type' => 'video', 'author' => $bp->displayed_user->id, 'meta_key' => 'bp-media-key', 'meta_value' => $bp->displayed_user->id, 'meta_compare' => 'LIKE', 'paged' => $page, 'posts_per_page' => $posts_per_page); break; case BP_MEDIA_ALBUMS_SLUG: if (isset($action_variables) && is_array($action_variables) && isset($action_variables[0]) && isset($action_variables[1])) { $args = array('post_type' => 'attachment', 'post_status' => 'any', 'author' => $displayed_user, 'post_parent' => $action_variables[1], 'paged' => $page); } else { $args = array('post_type' => 'bp_media_album', 'author' => $displayed_user, 'paged' => $page); } break; default: die; } $bp_media_query = new WP_Query($args); if (isset($bp_media_query->posts) && is_array($bp_media_query->posts) && count($bp_media_query->posts)) { foreach ($bp_media_query->posts as $attachment) { try { $media = new BP_Media_Host_Wordpress($attachment->ID); echo $media->get_media_gallery_content(); } catch (exception $e) { die; } } } die; }
function widget($args, $instance) { extract($args); $title = apply_filters('widget_title', empty($instance['title']) ? __('Recent Media', 'bp-media') : $instance['title'], $instance, $this->id_base); if (empty($instance['number']) || !($number = absint($instance['number']))) { $number = 10; } echo $before_widget; echo $before_title . $title . $after_title; ?> <div id="popular-media-tabs" class="media-tabs-container"> <!-- <ul> <li><a href="#popular-media-tabs-comments"><?php _e('comments', 'bp-media'); ?> </a></li> <li><a href="#popular-media-tabs-views"><?php _e('Views', 'bp-media'); ?> </a></li> </ul>--> <div id="popular-media-tabs-comments" class="bp-media-tab-panel"> <?php $args = array('post_type' => 'attachment', 'post_status' => 'any', 'posts_per_page' => $number, 'meta_key' => 'bp-media-key', 'meta_value' => 0, 'meta_compare' => '>', 'orderby' => 'comment_count'); $bp_media_widget_query = new WP_Query($args); if ($bp_media_widget_query->have_posts()) { ?> <ul class="widget-item-listing"><?php while ($bp_media_widget_query->have_posts()) { $bp_media_widget_query->the_post(); $entry = new BP_Media_Host_Wordpress(get_the_ID()); ?> <?php echo $entry->get_media_gallery_content(); } ?> </ul><!-- .widget-item-listing --><?php } else { _e('No popular media found', 'bp-media'); } wp_reset_query(); ?> </div><!-- #popular-media-tabs-comments --> </div> <?php echo $after_widget; }