diff --git a/title.module b/title.module index ef106e9..e8b499e 100644 --- a/title.module +++ b/title.module @@ -69,6 +69,10 @@ function title_entity_info_alter(&$info) { // Support add explicit support for entity_label(). if (isset($entity_info['entity keys']['label']) && $entity_info['entity keys']['label'] == $legacy_field) { + // Store the original label callback for compatibility reasons. + if (isset($info[$entity_type]['label callback'])) { + $info[$entity_type]['label fallback']['title'] = $info[$entity_type]['label callback']; + } $info[$entity_type]['label callback'] = 'title_entity_label'; $fr_info += array('preprocess_key' => $info[$entity_type]['entity keys']['label']); } @@ -123,6 +127,10 @@ function title_entity_label($entity, $type, $langcode = NULL) { return $info['callbacks']['sync_get']($type, $entity, $legacy_field, $info, $langcode); } else { + // Retrieve the original label callback. + if (isset($entity_info['label fallback']['title']) && function_exists($entity_info['label fallback']['title'])) { + return $entity_info['label fallback']['title']($entity, $type, $langcode); + } return $entity->{$legacy_field}; } }