/** * @param form_persistentdocument_form $form * @param form_persistentdocument_response $response * @param block_BlockRequest $request * @param string $replyTo * @return array an associative array contaning at least the key "success" with a boolean value. This array will be accessible during the acknowledgment notification sending. */ protected function handleData($form, $fields, $response, $request, $replyTo) { if ($form->getSaveResponse()) { $tm = f_persistentdocument_TransactionManager::getInstance(); try { $tm->beginTransaction(); $this->addResponseToForm($response, $form); $response->save(); $form->save(); $tm->commit(); } catch (Exception $e) { throw $tm->rollBack($e); } } f_event_EventManager::dispatchEvent(self::FORM_SUBMITTED_EVENT_NAME, $form, array('response' => $response, 'request' => $request, 'referer' => $request->getParameter(form_FormConstants::BACK_URL_PARAMETER))); $sendingType = $form->getMessageSendingType(); if ($sendingType !== self::SEND_EMAIL_AND_APPEND_TO_MAILBOX && $sendingType !== self::SEND_EMAIL_ONLY) { Framework::debug(__METHOD__ . " No message to send."); return true; } $copyMail = null; $data = $request->getParameters(); foreach ($fields as $field) { if (!$field->getDocumentService()->isConditionValid($field, $data)) { continue; } if ($field instanceof form_persistentdocument_mail) { if ($field->getIsReceiver()) { $fieldName = $field->getFieldName(); $copyMail = isset($data[$fieldName]) ? $data[$fieldName] : null; } } } if (Framework::isDebugEnabled()) { Framework::debug(__METHOD__ . " A message has to be sent: " . $form->getMessageSendingType()); } $result = array(); $result['success'] = $this->sendEmail($form, $response, $request, $copyMail, $replyTo); return $result; }