I got this working in Ditto and Wayfinder with a similar fix (I also spoke to Mike Schell - the "someone" you mentioned who found a fix - he tells me the fix I found is basically the same):
Change line 782 onwards of ditto.class.inc.php from:
$defaultOutput = getTVDisplayFormat($row['name'], $row['default_text'], $row['display'], $row['display_params'], $row['type'],$row['contentid']);
foreach ($docIDs as $id) {
if (!isset($resourceArray["#".$id])) {
$resourceArray["#$id"][$tvname] = $defaultOutput;
$resourceArray["#$id"]["tv".$tvname] = $resourceArray["#$id"][$tvname];
}
}
to:
if (strtoupper($row['default_text']) == '@INHERIT') {
foreach ($docIDs as $id) {
$defaultOutput = getTVDisplayFormat($row['name'], $row['default_text'], $row['display'], $row['display_params'], $row['type'], $id);
if (!isset($resourceArray["#".$id])) {
$resourceArray["#$id"][$tvname] = $defaultOutput;
$resourceArray["#$id"]["tv".$tvname] = $resourceArray["#$id"][$tvname];
}
}
} else {
$defaultOutput = getTVDisplayFormat($row['name'], $row['default_text'], $row['display'], $row['display_params'], $row['type'],$row['contentid']);
foreach ($docIDs as $id) {
if (!isset($resourceArray["#".$id])) {
$resourceArray["#$id"][$tvname] = $defaultOutput;
$resourceArray["#$id"]["tv".$tvname] = $resourceArray["#$id"][$tvname];
}
}
}
And for wayfinder.inc.php, change line 459 onwards from:
$defaultOutput = getTVDisplayFormat($row['name'], $row['default_text'], $row['display'], $row['display_params'], $row['type']);
foreach ($docIDs as $id) {
if (!isset($resourceArray["#{$id}"])) {
$resourceArray["#{$id}"][$tvname] = $defaultOutput;
}
}
to:
if (strtoupper($row['default_text']) == '@INHERIT') {
foreach ($docIDs as $id) {
$defaultOutput = getTVDisplayFormat($row['name'], $row['default_text'], $row['display'], $row['display_params'], $row['type'], $id);
if (!isset($resourceArray["#{$id}"])) {
$resourceArray["#{$id}"][$tvname] = $defaultOutput;
}
}
} else {
$defaultOutput = getTVDisplayFormat($row['name'], $row['default_text'], $row['display'], $row['display_params'], $row['type']);
foreach ($docIDs as $id) {
if (!isset($resourceArray["#{$id}"])) {
$resourceArray["#{$id}"][$tvname] = $defaultOutput;
}
}
}
I’ve tested this a little and it seems fine, but by no means have I tested extensively. Use entirely at your own risk and test thoroughly!