1
0
Fork 0
mirror of https://github.com/Yetangitu/ampache synced 2025-10-05 19:41:55 +02:00

[BUGFIX] Fix some metadata errors

This commit is contained in:
René Bigler 2015-11-19 22:56:07 +01:00
parent 61de51ef93
commit e96b0ff073
5 changed files with 19 additions and 12 deletions

View file

@ -813,16 +813,13 @@ class Catalog_local extends Catalog
*/
protected function getCleanMetadata(library_item $libraryItem, $metadata)
{
$tags = array_diff($metadata, get_object_vars($libraryItem));
$keys = array_merge(
isset($libraryItem::$aliases) ? $libraryItem::$aliases : array(),
array_keys(get_object_vars($libraryItem))
$tags = array_diff_key(
$metadata,
get_object_vars($libraryItem),
array_flip($libraryItem::$aliases ?: array())
);
foreach ($keys as $key) {
unset($tags[$key]);
}
return $tags;
return array_filter($tags);
}
/**
@ -861,7 +858,7 @@ class Catalog_local extends Catalog
$tags = $this->getCleanMetadata($media, $results);
if (method_exists($media, 'updateOrInsertMetadata') && $media::isCustomMetadataEnabled()) {
$tags = array_diff_key($results, array_flip($media->getDisabledMetadataFields()));
$tags = array_diff_key($tags, array_flip($media->getDisabledMetadataFields()));
foreach ($tags as $tag => $value) {
$field = $media->getField($tag);
$media->updateOrInsertMetadata($field, $value);
@ -869,3 +866,4 @@ class Catalog_local extends Catalog
}
}
} // end of local catalog class