Changeset 9664 for trunk/wp-admin/includes/file.php
- Timestamp:
- 11/13/2008 06:48:54 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/includes/file.php
r9663 r9664 486 486 return new WP_Error('empty_archive', __('Empty archive')); 487 487 488 //Prepend another directory level if there are files in the root directory of the zip489 foreach ( $archive_files as $archive_file ) {490 if ( false === strpos($archive_file['filename'], '/') ) {491 $to = trailingslashit($to) . basename($file, '.zip');492 break;493 }494 }495 496 488 $path = explode('/', untrailingslashit($to)); 497 489 for ( $i = count($path); $i > 0; $i-- ) { //>0 = first element is empty allways for paths starting with '/' … … 571 563 } 572 564 } 573 }574 575 /**576 * Locates the lowest safe directory in a Plugin folder to copy to the plugins directory.577 *578 * Note: Desination directory will allways be unique.579 *580 * @since 2.7.0581 *582 * @param string $from the Working directory of the plugin files583 * @param string $to the proposed destination for the for the plugin files584 * @return array an array of the keys 'from' and 'to' for the actual copy.585 */586 function update_pluginfiles_base_dir($from, $to) {587 $files = list_files($from);588 589 //Remove non-php files590 foreach ( (array)$files as $key => $file )591 if ( ! preg_match('!.php$!i', $file) )592 unset($files[$key]);593 594 //remove non-plugin files595 foreach ( (array)$files as $key => $file ) {596 $details = get_plugin_data($file, false, false);597 if ( empty($details['Name']) )598 unset($files[$key]);599 }600 601 if ( empty($files) )602 return false;603 604 //Left with paths to files which ARE plugins.605 $min_num = 100; //assume no zips with deeper paths will come along606 $min_file = '';607 foreach ( (array)$files as $key => $file ) {608 $this_num = substr_count($file, '/');609 if ( $this_num < $min_num ) {610 $min_file = $file;611 $min_num = $this_num;612 }613 }614 unset($min_num);615 616 $from = dirname($min_file);617 //Ensure its a unique install folder, Upgrades delete the folder prior to this.618 $to = dirname($to) . '/' . wp_unique_filename(dirname($to), basename($to));619 620 return compact('from', 'to');621 565 } 622 566
Note: See TracChangeset
for help on using the changeset viewer.