update_manager_archive_extract($file, $directory)
Unpacks a downloaded archive file.
Parameters
string $file: The filename of the archive you wish to extract.
string $directory: The directory you wish to extract the archive into.
Return value
Archiver The Archiver object used to extract the archive.
Throws
Exception
File
- core/modules/update/update.manager.inc, line 150
- Administrative screens and processing functions of the Update Manager module.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | function update_manager_archive_extract( $file , $directory ) { $archiver = archiver_get_archiver( $file ); if (! $archiver ) { throw new Exception(t( 'Cannot extract %file, not a valid archive.' , array ( '%file' => $file ))); } // Remove the directory if it exists, otherwise it might contain a mixture of // old files mixed with the new files (e.g. in cases where files were removed // from a later release). $files = $archiver ->listContents(); // Unfortunately, we can only use the directory name to determine the project // name. Some archivers list the first file as the directory (i.e., MODULE/) // and others list an actual file (i.e., MODULE/README.TXT). $project = strtok ( $files [0], '/\\' ); $extract_location = $directory . '/' . $project ; if ( file_exists ( $extract_location )) { file_unmanaged_delete_recursive( $extract_location ); } $archiver ->extract( $directory ); return $archiver ; } |
Please login to continue.