N°1025 Portal: Fixed regression introduced in r4863.

SVN:trunk[4966]
This commit is contained in:
Guillaume Lajarige
2017-10-05 09:48:29 +00:00
parent bfde101f6b
commit 59ebc49d46

View File

@@ -714,15 +714,18 @@ class ObjectFormManager extends FormManager
// Note: We can't do this in AttributeExternalKey::MakeFormField() in the Field::SetOnFinalizeCallback() because at this point we have no information about the portal scope and ignore_silos flag, hence it always applies silos.
// As a workaround we have to manually check if the field's current value is among the scope
/** @var DBObjectSearch $oValuesScope */
$oValuesScope = $oField->GetSearch()->DeepClone();
$oBinaryExp = new BinaryExpression(new FieldExpression('id', $oValuesScope->GetClassAlias()), '=', new ScalarExpression( $oField->GetCurrentValue() ));
$oValuesScope->AddConditionExpression($oBinaryExp);
$oValuesSet = new DBObjectSet($oValuesScope);
if( $oValuesSet->Count() === 0 )
if(!$oField->GetReadOnly())
{
$oField->SetCurrentValue(null);
/** @var DBObjectSearch $oValuesScope */
$oValuesScope = $oField->GetSearch()->DeepClone();
$oBinaryExp = new BinaryExpression(new FieldExpression('id', $oValuesScope->GetClassAlias()), '=', new ScalarExpression($oField->GetCurrentValue()));
$oValuesScope->AddConditionExpression($oBinaryExp);
$oValuesSet = new DBObjectSet($oValuesScope);
if($oValuesSet->Count() === 0)
{
$oField->SetCurrentValue(null);
}
}
}
// - Field that require processing on their subfields