rtMedia for WordPress, BuddyPress and bbPress - Version 2.2.3

Version Description

  • Added more verification to check whether the object being used is available or not.
  • Added custom message on delete activity action.
  • Modified the upgrade loop to handle the sites with large number of media files.
Download this release

Release Info

Developer rtcamp
Plugin Icon 128x128 rtMedia for WordPress, BuddyPress and bbPress
Version 2.2.3
Comparing to
See all releases

Code changes from version 2.2.2 to 2.2.3

includes/bp-media-actions.php CHANGED
@@ -126,6 +126,8 @@ function bp_media_delete_activity_handler($args){
126
$post_id=$result[0]->post_id;
127
try{
128
$post = get_post($post_id);
129
switch($post->post_type){
130
case 'attachment':
131
$media = new BP_Media_Host_Wordpress($post_id);
@@ -149,6 +151,8 @@ function bp_media_delete_media_handler($media_id){
149
/* @var $media BP_Media_Host_Wordpress */
150
remove_action('bp_before_activity_delete', 'bp_media_delete_activity_handler');
151
$activity_id = get_post_meta($media_id,'bp_media_child_activity',true);
152
bp_activity_delete_by_activity_id($activity_id);
153
}
154
add_action('bp_media_before_delete_media','bp_media_delete_media_handler');
@@ -234,7 +238,7 @@ function bp_media_init_count($user = null) {
234
}
235
$count = bp_get_user_meta($user, 'bp_media_count', true);
236
if (!$count) {
237
- $bp_media_count = array('images' => 0, 'videos' => 0, 'audio' => 0);
238
bp_update_user_meta($user, 'bp_media_count', $bp_media_count);
239
} else {
240
$bp_media_count = $count;
@@ -272,7 +276,7 @@ function bp_media_upload_enqueue(){
272
'browse_button' => 'bp-media-upload-browse-button',
273
'container' => 'bp-media-upload-ui',
274
'drop_element' => 'drag-drop-area',
275
- 'filters' => array(array('title' => "Media Files",'extensions'=> "mp4,jpg,png,jpeg,gif,mp3")),
276
'max_file_size' => min(array(ini_get('upload_max_filesize'),ini_get('post_max_size'))),
277
'multipart' => true,
278
'urlstream_upload' => true,
126
$post_id=$result[0]->post_id;
127
try{
128
$post = get_post($post_id);
129
+ if(!isset($post->post_type))
130
+ return false;
131
switch($post->post_type){
132
case 'attachment':
133
$media = new BP_Media_Host_Wordpress($post_id);
151
/* @var $media BP_Media_Host_Wordpress */
152
remove_action('bp_before_activity_delete', 'bp_media_delete_activity_handler');
153
$activity_id = get_post_meta($media_id,'bp_media_child_activity',true);
154
+ if($activity_id==NULL)
155
+ return false;
156
bp_activity_delete_by_activity_id($activity_id);
157
}
158
add_action('bp_media_before_delete_media','bp_media_delete_media_handler');
238
}
239
$count = bp_get_user_meta($user, 'bp_media_count', true);
240
if (!$count) {
241
+ $bp_media_count = array('images' => 0, 'videos' => 0, 'audio' => 0, 'albums' => 0);
242
bp_update_user_meta($user, 'bp_media_count', $bp_media_count);
243
} else {
244
$bp_media_count = $count;
276
'browse_button' => 'bp-media-upload-browse-button',
277
'container' => 'bp-media-upload-ui',
278
'drop_element' => 'drag-drop-area',
279
+ 'filters' => apply_filters('bp_media_plupload_files_filter',array(array('title' => "Media Files",'extensions'=> "mp4,jpg,png,jpeg,gif,mp3"))),
280
'max_file_size' => min(array(ini_get('upload_max_filesize'),ini_get('post_max_size'))),
281
'multipart' => true,
282
'urlstream_upload' => true,
includes/bp-media-class-album.php CHANGED
@@ -101,7 +101,10 @@ class BP_Media_Album{
101
function delete_album(){
102
do_action('bp_media_before_delete_album', $this);
103
foreach($this->media_entries as $entry){
104
wp_delete_attachment($entry->ID,true);
105
}
106
$author_id = $this->owner;
107
bp_media_init_count($author_id);
101
function delete_album(){
102
do_action('bp_media_before_delete_album', $this);
103
foreach($this->media_entries as $entry){
104
+ bp_media_delete_media_handler($entry->ID);
105
+ //do_action('bp_media_before_delete_media',$entry->ID); //Not working for some reason so called the required function directly
106
wp_delete_attachment($entry->ID,true);
107
+ do_action('bp_media_after_delete_media',$entry->ID);
108
}
109
$author_id = $this->owner;
110
bp_media_init_count($author_id);
includes/bp-media-filters.php CHANGED
@@ -88,6 +88,12 @@ add_filter('bp_get_activity_delete_link','bp_media_delete_button_handler');
88
89
function bp_media_items_count_filter ($title,$nav_item) {
90
global $bp_media_count;
91
switch($nav_item['slug']){
92
case BP_MEDIA_SLUG :
93
$count= intval($bp_media_count['images'])+intval($bp_media_count['videos'])+intval($bp_media_count['audio']);
88
89
function bp_media_items_count_filter ($title,$nav_item) {
90
global $bp_media_count;
91
+ $bp_media_count = wp_parse_args($bp_media_count,array(
92
+ 'images' => 0,
93
+ 'videos' => 0,
94
+ 'audio' => 0,
95
+ 'albums' => 0
96
+ ));
97
switch($nav_item['slug']){
98
case BP_MEDIA_SLUG :
99
$count= intval($bp_media_count['images'])+intval($bp_media_count['videos'])+intval($bp_media_count['audio']);
includes/bp-media-functions.php CHANGED
@@ -96,12 +96,16 @@ function bp_media_update_count() {
96
( post_mime_type LIKE 'image%' OR post_mime_type LIKE 'audio%' OR post_mime_type LIKE 'video%' OR post_type LIKE 'bp_media_album')
97
GROUP BY post_author";
98
$result = $wpdb->get_results($query);
99
foreach ($result as $obj) {
100
$count = array(
101
- 'images' => $obj->Images,
102
- 'videos' => $obj->Videos,
103
- 'audio' => $obj->Audio,
104
- 'albums'=> $obj->Albums
105
);
106
bp_update_user_meta($obj->post_author, 'bp_media_count', $count);
107
}
96
( post_mime_type LIKE 'image%' OR post_mime_type LIKE 'audio%' OR post_mime_type LIKE 'video%' OR post_type LIKE 'bp_media_album')
97
GROUP BY post_author";
98
$result = $wpdb->get_results($query);
99
+ if(!is_array($result))
100
+ return false;
101
+
102
foreach ($result as $obj) {
103
+
104
$count = array(
105
+ 'images' => isset($obj->Images)?$obj->Images:0,
106
+ 'videos' => isset($obj->Videos)?$obj->Videos:0,
107
+ 'audio' => isset($obj->Audio)?$obj->Audio:0,
108
+ 'albums'=> isset($obj->Albums)?$obj->Albums:0
109
);
110
bp_update_user_meta($obj->post_author, 'bp_media_count', $count);
111
}
includes/bp-media-upgrade-script.php CHANGED
@@ -4,54 +4,59 @@ function bp_media_upgrade_to_2_2(){
4
global $wpdb;
5
remove_filter('bp_activity_get_user_join_filter','bp_media_activity_query_filter',10);
6
/* @var $wpdb wpdb */
7
- $media_files = new WP_Query(array(
8
- 'post_type' => 'bp_media',
9
- 'posts_per_page' => -1
10
- ));
11
- $media_files = $media_files->posts;
12
$wall_posts_album_ids=array();
13
- if(is_array($media_files)&&count($media_files)){
14
- foreach($media_files as $media_file){
15
- $attachment_id = get_post_meta($media_file->ID,'bp_media_child_attachment',true);
16
- $child_activity = get_post_meta($media_file->ID,'bp_media_child_activity',true);
17
- update_post_meta($attachment_id, 'bp_media_child_activity', $child_activity);
18
- $attachment = get_post($attachment_id , ARRAY_A);
19
- if(isset($wall_posts_album_ids[$media_file->post_author])){
20
- $wall_posts_id = $wall_posts_album_ids[$media_file->post_author];
21
- }
22
- else{
23
- $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'");
24
- if($wall_posts_id==null){
25
- $album = new BP_Media_Album();
26
- $album->add_album('Wall Posts',$media_file->post_author);
27
- $wall_posts_id = $album->get_id();
28
}
29
- if(!$wall_posts_id){
30
- continue; //This condition should never be encountered
31
}
32
- $wall_posts_album_ids[$media_file->post_author] = $wall_posts_id;
33
}
34
- $attachment['post_parent'] = $wall_posts_id;
35
- wp_update_post($attachment);
36
- update_post_meta($attachment_id,'bp-media-key',$media_file->post_author);
37
- $activity = bp_activity_get(array('in'=>intval($child_activity)));
38
- if(isset($activity['activities'][0]->id))
39
- $activity = $activity['activities'][0];
40
- $bp_media = new BP_Media_Host_Wordpress($attachment_id);
41
- $args = array(
42
- 'content' => $bp_media->get_media_activity_content(),
43
- 'id' => $child_activity,
44
- 'type' => 'media_upload',
45
- '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>' ) ),
46
- 'primary_link' => $bp_media->get_url(),
47
- 'item_id' => $attachment_id,
48
- 'recorded_time' => $activity->date_recorded,
49
- );
50
- $act_id = bp_media_record_activity($args);
51
- bp_activity_delete_meta($child_activity, 'bp_media_parent_post');
52
- wp_delete_post($media_file->ID);
53
}
54
- }
55
update_option('bp_media_db_version',BP_MEDIA_DB_VERSION);
56
add_action('admin_notices','bp_media_database_updated_notice');
57
wp_cache_flush();
4
global $wpdb;
5
remove_filter('bp_activity_get_user_join_filter','bp_media_activity_query_filter',10);
6
/* @var $wpdb wpdb */
7
$wall_posts_album_ids=array();
8
+ do{
9
+ $media_files = new WP_Query(array(
10
+ 'post_type' => 'bp_media',
11
+ 'posts_per_page' => 10
12
+ ));
13
+ $media_files = isset($media_files->posts)?$media_files->posts:null;
14
+ if(is_array($media_files)&&count($media_files)){
15
+ foreach($media_files as $media_file){
16
+ $attachment_id = get_post_meta($media_file->ID,'bp_media_child_attachment',true);
17
+ $child_activity = get_post_meta($media_file->ID,'bp_media_child_activity',true);
18
+ update_post_meta($attachment_id, 'bp_media_child_activity', $child_activity);
19
+ $attachment = get_post($attachment_id , ARRAY_A);
20
+ if(isset($wall_posts_album_ids[$media_file->post_author])){
21
+ $wall_posts_id = $wall_posts_album_ids[$media_file->post_author];
22
}
23
+ else{
24
+ $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'");
25
+ if($wall_posts_id==null){
26
+ $album = new BP_Media_Album();
27
+ $album->add_album('Wall Posts',$media_file->post_author);
28
+ $wall_posts_id = $album->get_id();
29
+ }
30
+ if(!$wall_posts_id){
31
+ continue; //This condition should never be encountered
32
+ }
33
+ $wall_posts_album_ids[$media_file->post_author] = $wall_posts_id;
34
}
35
+ $attachment['post_parent'] = $wall_posts_id;
36
+ wp_update_post($attachment);
37
+ update_post_meta($attachment_id,'bp-media-key',$media_file->post_author);
38
+ $activity = bp_activity_get(array('in'=>intval($child_activity)));
39
+ if(isset($activity['activities'][0]->id))
40
+ $activity = $activity['activities'][0];
41
+ $bp_media = new BP_Media_Host_Wordpress($attachment_id);
42
+ $args = array(
43
+ 'content' => $bp_media->get_media_activity_content(),
44
+ 'id' => $child_activity,
45
+ 'type' => 'media_upload',
46
+ '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>' ) ),
47
+ 'primary_link' => $bp_media->get_url(),
48
+ 'item_id' => $attachment_id,
49
+ 'recorded_time' => $activity->date_recorded,
50
+ );
51
+ $act_id = bp_media_record_activity($args);
52
+ bp_activity_delete_meta($child_activity, 'bp_media_parent_post');
53
+ wp_delete_post($media_file->ID);
54
}
55
}
56
+ else{
57
+ break;
58
+ }
59
+ }while(1);
60
update_option('bp_media_db_version',BP_MEDIA_DB_VERSION);
61
add_action('admin_notices','bp_media_database_updated_notice');
62
wp_cache_flush();
includes/bp-media-widgets.php CHANGED
@@ -210,7 +210,7 @@ class BP_Media_Popular_Media extends WP_Widget {
210
function widget($args, $instance) {
211
extract( $args );
212
213
- $title = apply_filters('widget_title', empty($instance['title']) ? __('Recent Media', 'bp-media') : $instance['title'], $instance, $this->id_base);
214
215
if ( empty( $instance['number'] ) || ! $number = absint( $instance['number'] ) )
216
$number = 10;
@@ -288,4 +288,4 @@ function bp_media_widgets_init(){
288
}
289
290
/* Initialize widgets */
291
- add_action('widgets_init', 'bp_media_widgets_init', 1);
210
function widget($args, $instance) {
211
extract( $args );
212
213
+ $title = apply_filters('widget_title', empty($instance['title']) ? __('Popular Media', 'bp-media') : $instance['title'], $instance, $this->id_base);
214
215
if ( empty( $instance['number'] ) || ! $number = absint( $instance['number'] ) )
216
$number = 10;
288
}
289
290
/* Initialize widgets */
291
+ add_action('widgets_init', 'bp_media_widgets_init', 1);
includes/js/bp-media.js CHANGED
@@ -61,4 +61,16 @@ jQuery(document).ready(function(){
61
jQuery('#bp-media-list').append(response);
62
});
63
});
64
});
61
jQuery('#bp-media-list').append(response);
62
});
63
});
64
+ setTimeout(function(){
65
+ jQuery('.media album_updated .delete-activity,.media_upload .delete-activity').unbind('click').click(function(e){
66
+ if(confirm('Are you sure you want to delete this activity and associated media?')){
67
+ return true;
68
+ }
69
+ else{
70
+ return false;
71
+ }
72
+ });
73
+
74
+ },1000);
75
+
76
});
loader.php CHANGED
@@ -3,7 +3,7 @@
3
Plugin Name: BuddyPress Media
4
Plugin URI: http://rtcamp.com/buddypress-media/
5
Description: This plugin adds missing media rich features like photos, videos and audios uploading to BuddyPress which are essential if you are building social network, seriously!
6
- Version: 2.2.2
7
Author: rtCamp
8
Author URI: http://rtcamp.com
9
*/
@@ -12,7 +12,7 @@ Author URI: http://rtcamp.com
12
define('BP_MEDIA_IS_INSTALLED', 1);
13
14
/* Constant to store the current version of the BP Media Plugin. */
15
- define('BP_MEDIA_VERSION', '2.2.2');
16
17
/* A constant to be used as base for other URLs throughout the plugin */
18
define('BP_MEDIA_PLUGIN_DIR', dirname(__FILE__));
3
Plugin Name: BuddyPress Media
4
Plugin URI: http://rtcamp.com/buddypress-media/
5
Description: This plugin adds missing media rich features like photos, videos and audios uploading to BuddyPress which are essential if you are building social network, seriously!
6
+ Version: 2.2.3
7
Author: rtCamp
8
Author URI: http://rtcamp.com
9
*/
12
define('BP_MEDIA_IS_INSTALLED', 1);
13
14
/* Constant to store the current version of the BP Media Plugin. */
15
+ define('BP_MEDIA_VERSION', '2.2.3');
16
17
/* A constant to be used as base for other URLs throughout the plugin */
18
define('BP_MEDIA_PLUGIN_DIR', dirname(__FILE__));
readme.txt CHANGED
@@ -1,12 +1,12 @@
1
=== BuddyPress Media ===
2
Contributors: rtcamp, rahul286, gagan0123, umeshnevase
3
- Donate link: https://rtcamp.com/donate
4
Tags: BuddyPress, media, multimedia, album, audio, songs, music, video, photo, image, upload, share, MediaElement.js, ffmpeg, kaltura, media-node
5
License: GPLv2 or later
6
License URI: http://www.gnu.org/licenses/gpl-2.0.html
7
Requires at least: 3.3.2
8
Tested up to: 3.4.2
9
- Stable tag: 2.2.2
10
11
Adds Photos, Music, Videos & Albums to your BuddyPress. Supports mobile devices (iPhone/iPad, etc) and automatic audio/video conversion.
12
@@ -18,7 +18,7 @@ BuddyPress Media adds Photos, Music, Videos & Albums to your BuddyPress. Support
18
19
* Images, Music, Videos Upload
20
* User-Albums Support
21
- * Multiple files upload with Darg-n-Drop
22
* Uploading Photos/Videos via mobile (Tested on iPhone running iOS6)
23
* HTML5 player (with fall back to flash/silverlight player support)
24
* Automatic conversion of common audio & video formats to mp3/mp4. via [Kaltura Add-On](http://rtcamp.com/store/buddypress-media-kaltura/ "BuddyPress Media Kaltura Addon for Kaltura.com/Kaltura-CE/Kaltura On-Prem version") and [FFMPEG Add-On](http://rtcamp.com/store/buddypress-media-ffmpeg-converter/ "BuddyPress Media FFMPEG Addon")
@@ -73,8 +73,13 @@ Please visit [BuddyPress Media's Features page](http://rtcamp.com/buddypress-med
73
74
Please visit [BuddyPress Media's Roadmap page](http://rtcamp.com/buddypress-media/roadmap/ "Visit BuddyPress Media's Features page") to get some details about fuure releases.
75
76
= 2.2.2 =
77
- Fixed the Notice that was generated on the albums page
78
79
= 2.2.1 =
80
* Removed anonymous function since its not supported in PHP versions < 5.3
1
=== BuddyPress Media ===
2
Contributors: rtcamp, rahul286, gagan0123, umeshnevase
3
+ Donate link: http://rtcamp.com/donate
4
Tags: BuddyPress, media, multimedia, album, audio, songs, music, video, photo, image, upload, share, MediaElement.js, ffmpeg, kaltura, media-node
5
License: GPLv2 or later
6
License URI: http://www.gnu.org/licenses/gpl-2.0.html
7
Requires at least: 3.3.2
8
Tested up to: 3.4.2
9
+ Stable tag: 2.2.3
10
11
Adds Photos, Music, Videos & Albums to your BuddyPress. Supports mobile devices (iPhone/iPad, etc) and automatic audio/video conversion.
12
18
19
* Images, Music, Videos Upload
20
* User-Albums Support
21
+ * Multiple files upload with Drag-n-Drop
22
* Uploading Photos/Videos via mobile (Tested on iPhone running iOS6)
23
* HTML5 player (with fall back to flash/silverlight player support)
24
* Automatic conversion of common audio & video formats to mp3/mp4. via [Kaltura Add-On](http://rtcamp.com/store/buddypress-media-kaltura/ "BuddyPress Media Kaltura Addon for Kaltura.com/Kaltura-CE/Kaltura On-Prem version") and [FFMPEG Add-On](http://rtcamp.com/store/buddypress-media-ffmpeg-converter/ "BuddyPress Media FFMPEG Addon")
73
74
Please visit [BuddyPress Media's Roadmap page](http://rtcamp.com/buddypress-media/roadmap/ "Visit BuddyPress Media's Features page") to get some details about fuure releases.
75
76
+ = 2.2.3 =
77
+ * Added more verification to check whether the object being used is available or not.
78
+ * Added custom message on delete activity action.
79
+ * Modified the upgrade loop to handle the sites with large number of media files.
80
+
81
= 2.2.2 =
82
+ * Fixed the Notice that was generated on the albums page.
83
84
= 2.2.1 =
85
* Removed anonymous function since its not supported in PHP versions < 5.3