function media_browser_plus_folder_save_folder in Media Browser Plus 7
Same name and namespace in other branches
- 7.2 includes/media_browser_plus.folders.inc \media_browser_plus_folder_save_folder()
@todo Document what this function is does.
_state
Parameters
$form:
3 calls to media_browser_plus_folder_save_folder()
- media_browser_plus_folder_add_submit in includes/
media_browser_plus.folders.inc - @todo Document what this function is does.
- media_browser_plus_folder_add_submit_continue in includes/
media_browser_plus.folders.inc - @todo Document what this function is does.
- media_browser_plus_folder_edit_submit in includes/
media_browser_plus.folders.inc - @todo Document what this function is does.
File
- includes/
media_browser_plus.folders.inc, line 382 - Folder manipulation functions
Code
function media_browser_plus_folder_save_folder($form_state) {
$vocabulary = taxonomy_vocabulary_machine_name_load('media_folders');
$term = new stdClass();
if (isset($form_state['values']['folder_id'])) {
$term->tid = (int) $form_state['values']['folder_id'];
$source = media_browser_plus_construct_dir_path($term);
}
$term->name = check_plain($form_state['values']['name']);
$term->description = check_plain($form_state['values']['description']);
$term->parent = (int) $form_state['values']['pid'];
$term->vid = $vocabulary->vid;
// Save (folder) term.
switch (taxonomy_term_save($term)) {
case SAVED_NEW:
// Create physical folder.
$dir = media_browser_plus_construct_dir_path($term);
if (file_prepare_directory($dir, FILE_CREATE_DIRECTORY)) {
drupal_set_message(t('Folder %term_name created successfully', array(
'%term_name' => $term->name,
)));
}
else {
drupal_set_message(t('Folder %term_name created successfully as term but failed to create as physical folder.Please do it manually', array(
'%term_name' => $term->name,
)), 'warning');
}
break;
case SAVED_UPDATED:
// Update physical folder.
$destination = media_browser_plus_construct_dir_path($term);
if ($source != $destination) {
media_browser_plus_move_physical_folder($source, $destination);
// Update files in folder and subfolders get folders.
$folders = array(
$term->tid,
);
$sub_folders = taxonomy_get_children($term->tid);
// Add subfolders if found
foreach ($sub_folders as $sf) {
$folders[] = $sf->tid;
}
$path = drupal_get_path('module', 'media_browser_plus');
// Set batch.
$batch = array(
'title' => t('Updating Media'),
'operations' => array(
array(
'media_browser_plus_folder_update_file_locations_batch',
array(
$folders,
),
),
),
'finished' => 'media_browser_plus_folder_update_file_locations_batch_complete',
'file' => $path . '/includes/media_browser_plus.folders.inc',
);
batch_set($batch);
}
drupal_set_message(t('Folder %term_name updated successfully', array(
'%term_name' => $term->name,
)));
break;
case FALSE:
drupal_set_message(t('Error saving folder %term_name', array(
'%term_name' => $term->name,
)), 'error');
break;
}
}