RTMediaMedia::update PHP Method

update() public method

Generic method to update a media. media details can be changed from this method
public update ( $id, $data, integer $media_id ) : boolean
$id
$data
$media_id integer
return boolean
    function update($id, $data, $media_id)
    {
        /* action to perform any task before updating a media */
        do_action('rtmedia_before_update_media', $id);
        $defaults = array();
        $data = wp_parse_args($data, $defaults);
        $where = array('id' => $id);
        if (array_key_exists('media_title', $data) || array_key_exists('description', $data)) {
            $post_data['ID'] = $media_id;
            if (isset($data['media_title'])) {
                $data['media_title'] = wp_kses($data['media_title'], wp_kses_allowed_html());
                $post_data['post_title'] = $data['media_title'];
                $post_data['post_name'] = $data['media_title'];
            }
            if (isset($data['description'])) {
                // filter post_content for allowed html tags
                $post_data['post_content'] = wp_kses($data['description'], wp_kses_allowed_html());
                unset($data['description']);
            }
            wp_update_post($post_data);
        }
        $status = $this->model->update($data, $where);
        // insert/update activity details in rtmedia activity table
        $media_model = new RTMediaModel();
        $media = $media_model->get(array('id' => $id));
        if (!empty($media)) {
            $rtmedia_activity_model = new RTMediaActivityModel();
            $similar_media = $media_model->get(array('activity_id' => $media[0]->activity_id));
            $max_privacy = 0;
            foreach ($similar_media as $s_media) {
                if ($s_media->privacy > $max_privacy) {
                    $max_privacy = $s_media->privacy;
                }
            }
            if (!$rtmedia_activity_model->check($media[0]->activity_id)) {
                $rtmedia_activity_model->insert(array('activity_id' => $media[0]->activity_id, 'user_id' => $media[0]->media_author, 'privacy' => $max_privacy));
            } else {
                $rtmedia_activity_model->update(array('activity_id' => $media[0]->activity_id, 'user_id' => $media[0]->media_author, 'privacy' => $max_privacy), array('activity_id' => $media[0]->activity_id));
            }
        }
        /* action to perform any task after updating a media */
        do_action('rtmedia_after_update_media', $id);
        if (false === $status) {
            return false;
        } else {
            return true;
        }
    }

Usage Example

 function check_return_merge()
 {
     global $rtmedia_query;
     if ($rtmedia_query->action_query->action != 'merge') {
         return;
     }
     $nonce = $_REQUEST['rtmedia_merge_album_nonce'];
     if (wp_verify_nonce($nonce, 'rtmedia_merge_album_' . $rtmedia_query->media_query['album_id'])) {
         $media = new RTMediaMedia();
         $model = new RTMediaModel();
         $album_contents = $model->get(array('album_id' => $rtmedia_query->media_query['album_id']), false, false);
         $album_move_details = $model->get_media(array('id' => $_POST['album']), false, false);
         foreach ($album_contents as $album_media) {
             $post_array['ID'] = $album_media->media_id;
             $post_array['post_parent'] = $album_move_details[0]->media_id;
             wp_update_post($post_array);
             $media->update($album_media->id, array('album_id' => $album_move_details[0]->id), $album_media->media_id);
         }
         $media->delete($rtmedia_query->media_query['album_id']);
     }
     if (isset($rtmedia_query->media_query['context']) && $rtmedia_query->media_query['context'] == "group") {
         global $bp;
         $group_link = bp_get_group_permalink($bp->groups->current_group);
         wp_safe_redirect(esc_url_raw(trailingslashit($group_link) . RTMEDIA_MEDIA_SLUG . '/album/'));
     } else {
         wp_safe_redirect(esc_url_raw(trailingslashit(get_rtmedia_user_link(get_current_user_id())) . RTMEDIA_MEDIA_SLUG . '/album/'));
     }
     exit;
 }