You are here

function media_browser_plus_move_root_folder in Media Browser Plus 7.2

Same name and namespace in other branches
  1. 7.3 includes/media_browser_plus.folders.inc \media_browser_plus_move_root_folder()

Moves the root folder of media files.

Updates the variable media_root_folder too.

Parameters

string $source: Source path.

string $destination: Destination path.

1 call to media_browser_plus_move_root_folder()
media_browser_plus_media_settings_submit in ./media_browser_plus.module
Saves the entered settings.

File

includes/media_browser_plus.folders.inc, line 426
Folder manipulation functions

Code

function media_browser_plus_move_root_folder($source, $destination) {
  if (!empty($source)) {
    $source .= '/';
  }
  if (!empty($destination)) {
    $destination .= '/';
  }
  $scheme = variable_get('file_default_scheme', 'public') . '://';
  $source = $scheme . $source;
  $destination = $scheme . $destination;
  file_prepare_directory($destination, FILE_CREATE_DIRECTORY);

  // Load root folder term.
  $root_folder_term = media_browser_plus_get_media_root_folder();

  // Move media files in root folder itself. We do this because if the root
  // folder was located in the default file directory of Drupal we can't move
  // all files / folders.
  $conditions = array();
  $conditions[] = array(
    'field' => array(
      'field_folder',
      'tid',
      $root_folder_term->tid,
      '=',
    ),
  );
  $options = array(
    'apply_filter' => FALSE,
    'paging' => FALSE,
    'conditions' => $conditions,
  );
  $file_entities = media_browser_plus_load_multiple($options);
  if (!empty($file_entities->results)) {
    foreach ($file_entities->results as $file_entity) {
      file_move($file_entity, $destination);
    }
  }

  // Move subfolders.
  $root_subfolders = taxonomy_get_children($root_folder_term->tid);
  foreach ($root_subfolders as $subfolder) {
    $subfolder_source = media_browser_plus_construct_dir_path($subfolder);
    $subfolder_destination = str_replace($source, $destination, $subfolder_source);
    media_browser_plus_move_subfolder($subfolder, $subfolder_source, $subfolder_destination);
  }
  variable_set('media_root_folder', trim($destination, '/'));
}