\w+)/"; /** @inheritdoc * @throws FormBlockException */ public function AllInputsReadyEvent(): void { parent::AllInputsReadyEvent(); $this->ComputeExpression(FormEvents::POST_SET_DATA); $this->ComputeExpression(FormEvents::POST_SUBMIT); } /** * Compute the expression and set the output values. * * @param string $sEventType * * @return mixed * @throws FormBlockException */ public function ComputeExpression(string $sEventType): mixed { $sExpression = $this->GetOption('expression'); try { $oExpression = Expression::FromOQL($sExpression); $aParamsToResolve = $oExpression->GetParameters(); $aResolvedParams = []; foreach ($aParamsToResolve as $sParamToResolve) { $aResolvedParams[$sParamToResolve] = $this->GetInputValue($sParamToResolve); } return $oExpression->Evaluate($aResolvedParams); } catch (\Exception $e) { throw new FormBlockException('Compute expression '.json_encode($sExpression).' block issue', 0, $e); } } }