Skip to content

Commit

Permalink
relay on container type
Browse files Browse the repository at this point in the history
  • Loading branch information
stonebuzz committed Dec 21, 2023
1 parent 2ad9821 commit 9fa1404
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions inc/container.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -1412,21 +1412,19 @@ public static function validateValues($data, $itemtype, $massiveaction)
'plugin_fields_containers_id' => $data['plugin_fields_containers_id']
]);

// Apply status overrides
$status_field_name = PluginFieldsStatusOverride::getStatusFieldName($itemtype);
$status_overrides = array_key_exists($status_field_name, $data) && $data[$status_field_name] !== null
? PluginFieldsStatusOverride::getOverridesForItemtypeAndStatus($container->getID(), $itemtype, $data[$status_field_name])
: [];

// If no overrides are loaded, it may be because by the container if it's type is 'tab'
// this implies that it does not contain the fields of the parent object in $data
// try to load overrides with related item fields instead of $data
$status_value = null;
$relatedItem = new $data['itemtype']();
if (empty($status_overrides) && $relatedItem->getFromDB($data['items_id'])) {
$status_overrides = array_key_exists($status_field_name, $relatedItem->fields) && $relatedItem->fields[$status_field_name] !== null
? PluginFieldsStatusOverride::getOverridesForItemtypeAndStatus($container->getID(), $itemtype, $relatedItem->fields[$status_field_name])
: [];
$status_field_name = PluginFieldsStatusOverride::getStatusFieldName($itemtype);
if ($container->fields['type'] === 'dom') {
$status_value = $data[$status_field_name] ?? null;
} else {
$status_value = $relatedItem->fields[$status_field_name] ?? null;
}
// Apply status overrides
$status_overrides = $status_value !== null
? PluginFieldsStatusOverride::getOverridesForItemtypeAndStatus($container->getID(), $itemtype, $status_value)
: [];

foreach ($status_overrides as $status_override) {
if (isset($fields[$status_override['plugin_fields_fields_id']])) {
Expand Down

0 comments on commit 9fa1404

Please sign in to comment.