id) { $libitem->format(); $name = $libitem->get_fullname(); $media_ids = array_merge($media_ids, $libitem->get_medias()); } } } else { switch ($_REQUEST['action']) { case 'tmp_playlist': $media_ids = $GLOBALS['user']->playlist->get_items(); $name = $GLOBALS['user']->username . ' - Playlist'; break; case 'browse': $id = intval(scrub_in($_REQUEST['browse_id'])); $browse = new Browse($id); $browse_media_ids = $browse->get_saved(); foreach ($browse_media_ids as $media_id) { switch ($object_type) { case 'album': $album = new Album($media_id); $media_ids = array_merge($media_ids, $album->get_songs()); break; case 'song': $media_ids[] = $media_id; break; case 'video': $media_ids[] = array('object_type' => 'Video', 'object_id' => $media_id); break; } // switch on type } // foreach media_id $name = 'Batch-' . date("dmY",time()); default: // Rien a faire break; } // action switch } if (!User::stream_control($media_ids)) { debug_event('UI::access_denied', 'Stream control failed for user ' . $GLOBALS['user']->username, '3'); UI::access_denied(); exit; } // Write/close session data to release session lock for this script. // This to allow other pages from the same session to be processed // Do NOT change any session variable after this call session_write_close(); // Take whatever we've got and send the zip $song_files = get_media_files($media_ids); if (is_array($song_files['0'])) { set_memory_limit($song_files['1']+32); send_zip($name,$song_files['0']); } exit;