function media_browser_plus_move_root_folder in Media Browser Plus 7.2
Same name and namespace in other branches
- 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, '/'));
}