RTMediaMedia::delete PHP Method

delete() public method

Generic method to delete a media
public delete ( integer $id, boolean $core = false, boolean $delete_activity = true ) : boolean
$id integer
$core boolean
$delete_activity boolean
return boolean
    function delete($id, $core = false, $delete_activity = true)
    {
        do_action('rtmedia_before_delete_media', $id);
        $media = $this->model->get(array('id' => $id), false, false);
        $status = 0;
        if ($media) {
            /* delete meta */
            if ($delete_activity) {
                if ($media[0]->activity_id && function_exists('bp_activity_delete_by_activity_id')) {
                    $related_media = $this->model->get(array('activity_id' => $media[0]->activity_id), false, false);
                    if (count($related_media) > 1) {
                        $activity_media = array();
                        foreach ($related_media as $temp_media) {
                            if ($temp_media->id === $id) {
                                continue;
                            }
                            $activity_media[] = $temp_media->id;
                        }
                        $obj_activity = new RTMediaActivity($activity_media);
                        global $wpdb, $bp;
                        $wpdb->update($bp->activity->table_name, array('type' => 'rtmedia_update', 'content' => $obj_activity->create_activity_html()), array('id' => $media[0]->activity_id));
                    } else {
                        if (isset($media[0]) && isset($media[0]->activity_id)) {
                            bp_activity_delete_by_activity_id($media[0]->activity_id);
                        }
                    }
                    // Deleting like and comment activity for media
                    if (function_exists('bp_activity_delete')) {
                        bp_activity_delete(array('item_id' => $media[0]->id));
                    }
                }
            }
            if (!$core) {
                wp_delete_attachment($media[0]->media_id, true);
            }
            $status = $this->model->delete(array('id' => $id));
            //delete media meta (view) from wp_rt_rtm_media_meta
            $delete_rtmedia_views = delete_rtmedia_meta($id, 'view');
            if (0 !== $status && ('album' === $media[0]->media_type || 'playlist' === $media[0]->media_type)) {
                $status = wp_delete_post($media[0]->media_id);
            }
            $rtmedia_nav = new RTMediaNav();
            if ('group' === $media[0]->context) {
                $rtmedia_nav->refresh_counts($media[0]->context_id, array('context' => $media[0]->context, 'context_id' => $media[0]->context_id));
            } else {
                $rtmedia_nav->refresh_counts($media[0]->media_author, array('context' => 'profile', 'media_author' => $media[0]->media_author));
            }
        }
        if (!$status) {
            return false;
        } else {
            global $rtmedia_points_media_id;
            $rtmedia_points_media_id = $id;
            do_action('rtmedia_after_delete_media', $id);
            return true;
        }
    }

Usage Example

Example #1
0
 /**
  * Generic method to delete any album
  *
  * @param int $id
  *
  * @return bool
  */
 function delete($id)
 {
     /* action to perform any task befor deleting an album */
     do_action('rtmedia_before_delete_album', $this);
     /**
      * First fetch all the media from that album
      */
     add_filter('rt_db_model_per_page', array($this, 'set_queries_per_page'), 10, 2);
     $page = 1;
     $flag = true;
     /**
      * Delete each media from the album first
      */
     while ($media = $this->media->model->get_by_album_id($id, $page)) {
         $media_id = $media['result'][0]['media_id'];
         $flag = wp_delete_attachment($media_id);
         if (!$flag) {
             break;
         }
         $page++;
     }
     /**
      * If all the media are deleted from the album then delete the album at last.
      */
     if ($flag) {
         $this->media->delete($id);
     }
     /* action to perform any task after deleting an album */
     do_action('rtmedia_after_delete_album', $this);
     return $flag;
 }
All Usage Examples Of RTMediaMedia::delete