enabled) { $total_size += sprintf("%.2f",($media->size/1048576)); $media->format(); $dirname = $media->f_album_full; //debug_event('batch.lib.php', 'Songs file {'.$media->file.'}...', '5'); if (!array_key_exists($dirname, $media_files)) { $media_files[$dirname] = array(); } array_push($media_files[$dirname], $media->file); } } return array($media_files, $total_size); } //get_song_files /** * send_zip * * takes array of full paths to songs * zips them and sends them * * @param string $name name of the zip file to be created * @param string $song_files array of full paths to songs to zip create w/ call to get_song_files */ function send_zip( $name, $song_files ) { // Check if they want to save it to a file, if so then make sure they've // got a defined path as well and that it's writable. if (AmpConfig::get('file_zip_download') && AmpConfig::get('tmp_dir_path')) { // Check writeable if (!is_writable(AmpConfig::get('tmp_dir_path'))) { $in_memory = '1'; debug_event('Error','File Zip Path:' . AmpConfig::get('tmp_dir_path') . ' is not writable','1'); } else { $in_memory = '0'; $basedir = AmpConfig::get('tmp_dir_path'); } } else { $in_memory = '1'; } // if file downloads /* Require needed library */ require_once AmpConfig::get('prefix') . '/modules/archive/archive.lib.php'; $arc = new zip_file( $name . ".zip" ); $options = array( 'inmemory' => $in_memory, // create archive in memory 'basedir' => $basedir, 'storepaths' => 0, // only store file name, not full path 'level' => 0, // no compression 'comment' => AmpConfig::get('file_zip_comment') ); $arc->set_options( $options ); foreach ($song_files as $dir => $files) { $arc->add_files( $files, $dir ); } if (count($arc->error)) { debug_event('archive',"Error: unable to add songs",'3'); return false; } // if failed to add songs if (!$arc->create_archive()) { debug_event('archive',"Error: unable to create archive",'3'); return false; } // if failed to create archive $arc->download_file(); } // send_zip