function media_browser_plus_uuid_entity_features_rebuild_alter in Media Browser Plus 7.3
Implements hook_uuid_entity_features_rebuild_alter().
File
- ./
media_browser_plus.module, line 981 - Media Browser Plus - enhanced file management functions.
Code
function media_browser_plus_uuid_entity_features_rebuild_alter($entity_type, &$entity) {
// If this file is marked as child of the root folder get the current root
// folder and set it.
if (!empty($entity->mbp_uuid_features_root_folder)) {
unset($entity->mbp_uuid_features_root_folder);
$root_folder = media_browser_plus_get_media_root_folder();
// Take all reference fields in account.
$fields = uuid_features_get_field_items_iterator($entity, $entity_type, 'taxonomy_term_reference');
foreach ($fields as $field_name => $field) {
if (isset($entity->{$field_name})) {
foreach ($field as $language => $items) {
foreach ($items as $delta => $item) {
if (in_array('mbp_uuid_features_root_folder', $entity->{$field_name}[$language][$delta])) {
$entity->{$field_name}[$language][$delta]['tid'] = $root_folder->tid;
}
}
}
}
}
$fields = uuid_features_get_field_items_iterator($entity, $entity_type, 'entityreference');
foreach ($fields as $field_name => $field) {
if (isset($entity->{$field_name})) {
foreach ($field as $language => $items) {
foreach ($items as $delta => $item) {
if (in_array('mbp_uuid_features_root_folder', $entity->{$field_name}[$language][$delta])) {
$entity->{$field_name}[$language][$delta]['target_id'] = $root_folder->tid;
}
}
}
}
}
}
// Ensure imported folders also have the generic media root set.
if ($entity_type == 'taxonomy_term' && $entity->vocabulary_machine_name == 'media_folders') {
$root_parents = array_keys($entity->parent, 'mbp_uuid_features_root_folder');
foreach ($root_parents as $key) {
$entity->parent[$key] = $root_folder->tid;
}
if ($entity->uuid == 'mbp_uuid_features_root_folder') {
$entity->uuid = $root_folder->uuid;
$entity->tid = $root_folder->tid;
}
}
}