Ejemplo n.º 1
0
 /**
  * Generic method to delete a media
  *
  * @param type $media_id
  *
  * @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 */
         //delete_rtmedia_meta($id);
         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;
                     }
                     $objActivity = new RTMediaActivity($activity_media);
                     global $wpdb, $bp;
                     $wpdb->update($bp->activity->table_name, array("type" => "rtmedia_update", "content" => $objActivity->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);
                     }
                 }
             }
         }
         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 ($status != 0 && ($media[0]->media_type == "album" || $media[0]->media_type == "playlist")) {
             $status = wp_delete_post($media[0]->media_id);
         }
         $rtMediaNav = new RTMediaNav();
         if ($media[0]->context == "group") {
             $rtMediaNav->refresh_counts($media[0]->context_id, array("context" => $media[0]->context, 'context_id' => $media[0]->context_id));
         } else {
             $rtMediaNav->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;
     }
 }
Ejemplo n.º 2
0
 /**
  * Generic method to delete a media
  *
  * @param int $id
  * @param bool $core
  * @param bool $delete_activity
  *
  * @return bool
  *
  */
 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;
     }
 }