/** * Saves or Updates a BuddyDrive item * * @param array $args the different argument of the item to save * @uses bp_loggedin_user_id() to default to current user id * @uses wp_parse_args() to merge defaults and args array * @uses BuddyDrive_Item::save() to save data in DB * @return int the item id */ function buddydrive_save_item($args = '') { $defaults = array('id' => false, 'type' => '', 'user_id' => bp_loggedin_user_id(), 'parent_folder_id' => 0, 'title' => false, 'content' => false, 'mime_type' => false, 'guid' => false, 'metas' => false); $params = wp_parse_args($args, $defaults); // Setup item to be added $buddydrive_item = new BuddyDrive_Item(); $buddydrive_item->id = (int) $params['id']; $buddydrive_item->type = $params['type']; $buddydrive_item->user_id = (int) $params['user_id']; $buddydrive_item->parent_folder_id = (int) $params['parent_folder_id']; $buddydrive_item->title = $params['title']; $buddydrive_item->content = $params['content']; $buddydrive_item->mime_type = $params['mime_type']; $buddydrive_item->guid = $params['guid']; $buddydrive_item->metas = $params['metas']; if (!$buddydrive_item->save()) { return false; } do_action('buddydrive_save_item', $buddydrive_item->id, $params); return $buddydrive_item->id; }