Advertisement
Guest User

saveDataAction

a guest
Oct 5th, 2016
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.68 KB | None | 0 0
  1. public function saveDataAction(\MyVendor\Requestform\Domain\Model\Request $request)
  2.     {
  3.         $settings = $this->settings;
  4.         $args = $this->request->getArguments();
  5.         $redirectUri = $this->controllerContext->getUriBuilder()->reset()->setTargetPageUid($settings['thankyouPage'])->build();
  6.         $step_nr = 0;
  7.         // get uploaded files and assign them to the request
  8.         $files = $this->saveFiles($args, $settings);
  9.         $request->setFile($files);
  10.         $this->persistenceManager->persistAll();
  11.         $this->requestRepository->add($request);
  12.         // variables that are needed in the mail template
  13.         $answers = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
  14.         // save answers from all fields
  15.         foreach ($args['tx_requestform_requestform']['steps'] as $k => $step_fields) {
  16.             if ($step_nr > 0) {
  17.                 foreach ($step_fields as $field_uid => $field_value) {
  18.                     if ($field_uid != 'old_page') {
  19.                         $answer = new \MyVendor\Requestform\Domain\Model\Answer();
  20.                         $answer->setField($this->formFieldsRepository->findByUid($field_uid));
  21.                         $answer->setRequest($request);
  22.                         $answer->setValue($field_value);
  23.                         $this->answerRepository->add($answer);
  24.                         $answers->attach($answer);
  25.                     }
  26.                 }
  27.             }
  28.             $step_nr++;
  29.         }
  30.         // send mail with the data from the new request
  31.         $this->sendMail($request, $answers, $files, $settings, $args);
  32.         // redirect to "thank you" page
  33.         $this->redirectToUri($redirectUri);
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement