RTMediaMedia::move PHP Method

move() public method

Move a media from one album to another
public move ( type $media_id, type $album_id ) : boolean
$media_id type
$album_id type
return boolean
    function move($media_id, $album_id)
    {
        global $wpdb;
        /* update the post_parent value in wp_post table */
        $status = $wpdb->update($wpdb->posts, array('post_parent' => $album_id), array('ID' => $media_id));
        if (is_wp_error($status) || 0 === $status) {
            return false;
        } else {
            $id = rtmedia_id($media_id);
            /* update album_id, context, context_id and privacy in rtMedia context */
            $album_data = $this->model->get(array('media_id' => $media_id));
            $data = array('album_id' => $album_id, 'context' => $album_data->context, 'context_id' => $album_data->context_id, 'privacy' => $album_data->privacy);
            return $this->update($id, $data, $media_id);
        }
    }

Usage Example

Example #1
0
 /**
  * Generic function to merge two albums
  *
  * @param int $primary_album_id
  * @param int $secondary_album_id
  *
  * @return int/bool
  */
 function merge($primary_album_id, $secondary_album_id)
 {
     add_filter('rt_db_model_per_page', array($this, 'set_queries_per_page'), 10, 2);
     $page = 1;
     /**
      * Transfer all the media from secondary album to primary album
      */
     while ($media = $this->media->model->get_by_album_id($secondary_album_id, $page)) {
         $media_id = $media['result'][0]['media_id'];
         $this->media->move($media_id, $primary_album_id);
         $page++;
     }
     $author = $this->get_current_author();
     $admins = get_super_admins();
     $global_albums = self::get_globals();
     if (in_array(intval($secondary_album_id), array_map('intval', $global_albums), true)) {
         if (in_array($author, array_map('intval', $admins), true)) {
             $this->delete_global($secondary_album_id);
         } else {
             return false;
         }
     } else {
         $this->delete($secondary_album_id);
     }
     return $primary_album_id;
 }