/** * @param Context $context * @param Request $request */ public function _execute($context, $request) { $forms = $this->getDocumentInstanceArrayFromRequest($request); $responseArchivedCount = 0; foreach ($forms as $form) { $responseArchivedCount += form_FormService::getInstance()->fileResponses($form); } if (Framework::isInfoEnabled()) { Framework::info('form/ArchiveResponse -> Filed responses : ' . $responseArchivedCount); } $request->setAttribute('message', $responseArchivedCount); return self::getSuccessView(); }
/** * @param form_persistentdocument_baseform $form * @param block_BlockRequest $request * @return void */ public function saveFormData($form, $request) { $errors = new validation_Errors(); $this->validate($form, $request, $errors); if (!$errors->isEmpty()) { throw new form_FormValidationException("Form does not validate", $errors); } $domDoc = new DOMDocument('1.0', 'utf-8'); $domDoc->formatOutput = true; $rootElm = $domDoc->createElement('response'); $rootElm->setAttribute('lang', RequestContext::getInstance()->getLang()); $rootElm->setAttribute('date', date('Y-m-d H:i:s')); $domDoc->appendChild($rootElm); $fields = $this->getSortedFields($form); $replyTo = null; $acknowledgmentReceiver = null; $this->doMakeXmlResponse($domDoc, $rootElm, $request, $replyTo, $acknowledgmentReceiver, $form); $response = form_ResponseService::getInstance()->getNewDocumentInstance(); $response->setContents($domDoc->saveXML()); $response->setLabel(f_Locale::translate("&modules.form.bo.general.Form-response-title;", array('form' => $form->getLabel()))); // Handle specific treatments. $result = $this->handleData($form, $fields, $response, $request, $replyTo); // Acknowledgment. if ($result['success'] && $form->getAcknowledgment() && $acknowledgmentReceiver !== null) { if (!$this->sendAcknowledgement($form, $response, $request, $result, $acknowledgmentReceiver, $replyTo)) { Framework::info(__METHOD__ . " An error occured during acknowledgment sending to " . $acknowledgmentReceiver); } } return $result; }