Release of v3.2.5

Add [AllowDynamicProperties] in the base view class for J5. Move the _prepareDocument  above the display call in the base view class. Remove all backward compatibility issues, so JCB will not need the [Backward Compatibility] plugin to run. Added new import powers for custom import of spreadsheets. Move the setDocument and _prepareDocument above the display in the site view and custom admin view. Update the trashhelper layout to work in Joomla 5. Add AllowDynamicProperties (Joomla 4+5) to view class to allow Custom Dynamic Get methods to work without issues. Fix Save failed issue in dynamicGet. #1148. Move all [TEXT, EDITOR, TEXTAREA] fields from [NOT NULL] to [NULL]. Add the DateHelper class and improve the date methods. Add simple SessionHelper class. Add first classes for the new import engine. Improve the [VDM Registry] to be Joomla Registry Compatible. Move all registries to the [VDM Registry] class. Fix Checked Out to be null and not 0. (#1194). Fix created_by, modified_by, checked_out fields in the compiler of the SQL. (#1194). Update all core date fields in table class. (#1188). Update created_by, modified_by, checked_out fields in table class. Implementation of the decentralized Super-Power CORE repository network. (#1190). Fix the noticeboard to display Llewellyn's Joomla Social feed.
This commit is contained in:
2025-02-14 22:59:16 +02:00
parent 714cb5588a
commit f8b0a5df54
1474 changed files with 133744 additions and 48350 deletions

View File

@@ -130,6 +130,13 @@ final class MultiSubform implements MultiSubformInterface
{
$items = []; // will delete all existing linked items :( not ideal, but real
}
else
{
// make sure the sub-subform:linkValue[data:guid]
// is set with the needed key if possible
// this ensures that new sub-subform data is correctly linked
$this->prepLinkValue($items, $setMap);
}
// Save the core data
if (!$this->setSubformData($items, $setMap['_core']))
@@ -515,6 +522,45 @@ final class MultiSubform implements MultiSubformInterface
}
return true; // All checks passed
}
/**
* Prepare the linkValue needed by the sub-subform
*
* @param array $subform The subform data
* @param array $setMap Mapping data for processing subforms
*
* @return void
* @since 5.0.3
*/
private function prepLinkValue(array &$subform, array $setMap): void
{
$code_table = null;
foreach ($setMap as $key => $map)
{
if ($key === '_core')
{
$code_table = $map['table'] ?? null;
continue;
}
if (strpos($map['linkValue'], ':') !== false)
{
[$table, $field] = explode(':', $map['linkValue']);
if ($code_table !== null &&
'guid' === $field &&
$table === $code_table)
{
foreach ($subform as &$row)
{
if (empty($row['guid']))
{
$row['guid'] = $this->subform->table($table)->getGuid($field);
}
}
}
}
}
}
}