bp_media_import_buddyboss_media_tables()
Import BuddyBoss Media plugin db tables into Media Component
Description
Source
File: bp-media/bp-media-functions.php
function bp_media_import_buddyboss_media_tables() {
global $wpdb;
$buddyboss_media_table = $wpdb->prefix . 'buddyboss_media';
$buddyboss_media_albums_table = $wpdb->prefix . 'buddyboss_media_albums';
$total_media = $wpdb->get_var( "SELECT COUNT(*) FROM {$buddyboss_media_table}" );
$total_albums = $wpdb->get_var( "SELECT COUNT(*) FROM {$buddyboss_media_albums_table}" );
update_option( 'bp_media_import_total_media', $total_media );
update_option( 'bp_media_import_total_albums', $total_albums );
$albums = $wpdb->get_results( "SELECT * FROM {$buddyboss_media_albums_table}" );
$album_ids = array();
if ( ! empty( $albums ) ) {
$albums_count = 0;
foreach ( $albums as $album ) {
$user_id = ! empty( $album->user_id ) ? $album->user_id : false;
$group_id = ! empty( $album->group_id ) ? $album->group_id : false;
$title = ! empty( $album->title ) ? $album->title : '';
$date_created = ! empty( $album->date_created ) ? $album->date_created : bp_core_current_time();
$album_args = array(
'user_id' => $user_id,
'title' => $title,
'group_id' => $group_id,
'date_created' => $date_created,
);
if ( ! empty( $album->privacy ) ) {
if ( 'private' == $album->privacy ) {
$privacy = 'onlyme';
} else if ( 'members' == $album->privacy ) {
$privacy = 'loggedin';
} else {
$privacy = $album->privacy;
}
} else {
$privacy = 'public';
}
$album_args['privacy'] = $privacy;
$album_id = bp_album_add( $album_args );
if ( ! empty( $album_id ) ) {
$album_ids[ $album_id ] = $album->id;
}
$albums_count++;
update_option( 'bp_media_import_albums_done', $albums_count );
}
}
$medias = $wpdb->get_results( "SELECT * FROM {$buddyboss_media_table}" );
if ( ! empty( $medias ) ) {
$activity_ids = array();
$media_done = 0;
foreach ( $medias as $media ) {
$attachment_id = ! empty( $media->media_id ) ? $media->media_id : false;
$user_id = ! empty( $media->media_author ) ? $media->media_author : false;
$title = ! empty( $media->media_title ) ? $media->media_title : '';
$activity_id = ! empty( $media->activity_id ) ? $media->activity_id : false;
if ( ! empty( $activity_id ) ) {
$activity_ids[ $activity_id ] = array();
}
$media_args = array(
'attachment_id' => $attachment_id,
'user_id' => $user_id,
'title' => $title,
);
if ( ! empty( $media->album_id ) && ! empty( $album_ids ) ) {
$album_id_key = array_search( $media->album_id, $album_ids );
if ( ! empty( $album_id_key ) ) {
$album_id = $album_id_key;
$media_args['album_id'] = $album_id;
}
}
if ( ! empty( $media->upload_date ) ) {
$date_created = $media->upload_date;
} else if ( ! empty( $media->upload_date ) && '0000-00-00 00:00:00' == $media->upload_date && ! empty( $attachment_id ) ) {
$date_created = get_the_date( $attachment_id );
} else {
$date_created = bp_core_current_time();
}
$media_args['date_created'] = $date_created;
if ( ! empty( $media->privacy ) ) {
if ( 'private' == $media->privacy ) {
$privacy = 'onlyme';
} else if ( 'members' == $media->privacy ) {
$privacy = 'loggedin';
} else {
$privacy = $media->privacy;
}
} else {
$privacy = 'public';
}
$media_args['privacy'] = $privacy;
if ( ! empty( $activity_id ) && bp_is_active( 'activity' ) ) {
$activity = new BP_Activity_Activity( $activity_id );
if ( ! empty( $activity->id ) ) {
$activity_args = array(
'user_id' => $user_id,
'recorded_time' => $activity->date_recorded,
'hide_sitewide' => true,
'privacy' => 'media',
'type' => 'activity_update',
'component' => buddypress()->activity->id,
);
if ( 'groups' == $activity->component ) {
$media_args['group_id'] = $activity->item_id;
$activity_args['component'] = buddypress()->groups->id;
$activity_args['item_id'] = $activity->item_id;
}
// make an activity for the media
$sub_activity_id = bp_activity_add( $activity_args );
if ( $sub_activity_id ) {
// update activity meta
bp_activity_update_meta( $sub_activity_id, 'bp_media_activity', '1' );
$media_args['activity_id'] = $sub_activity_id;
}
}
}
$media_id = bp_media_add( $media_args );
if ( ! empty( $media_id ) && ! empty( $media_args['activity_id'] ) ) {
update_post_meta( $attachment_id, 'bp_media_activity_id', $media_args['activity_id'] );
update_post_meta( $attachment_id, 'bp_media_parent_activity_id', $activity_id );
if ( isset( $activity_ids[ $activity_id ] ) ) {
$activity_ids[ $activity_id ][] = $media_id;
}
}
$media_done++;
update_option( 'bp_media_import_media_done', $media_done );
}
if ( ! empty( $activity_ids ) && bp_is_active( 'activity' ) ) {
foreach( $activity_ids as $id => $activity_media ) {
if ( ! empty( $activity_media ) ) {
$media_ids = implode( ',', $activity_media );
bp_activity_update_meta( $id, 'bp_media_ids', $media_ids );
}
}
}
}
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.0.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.