File: D:/HostingSpaces/SBogers96/smilefotografie.nl/app/Komma/Forms/FormController.php
<?php
namespace Komma\Forms;
use Komma\Core\MetaDataService;
use Komma\Mailers\FormMailer;
use Komma\Pages\PageController;
use Komma\Pages\PageRepository;
use Komma\Albums\AlbumService;
class FormController extends PageController
{
/**
* @var FormService
*/
private $formService;
/**
* @var FormMailer
*/
private $formMailer;
public function __construct(
PageRepository $repository,
MetaDataService $metaDataService,
FormService $formService,
FormMailer $formMailer)
{
parent::__construct($repository, $metaDataService);
$this->formService = $formService;
$this->formMailer = $formMailer;
}
/**
* Show page with form
*
* @param \StdClass $page
* @return mixed
*/
public function showPage(\StdClass $page)
{
// Check for success
if( ! $this->formService->validAttempt()) return \Redirect::to('/' . $page->route);
// Check for negative page-view
is_negative($page->code_name) ? $negative = 'negative' : $negative = '';
// Get form data
$this->formService->setFormName($page->code_name);
$data = $this->formService->fromSession();
// Meta data
$meta = $this->metaDataService->get($page);
// Return view
return \View::make('layouts.pages.' . $page->code_name)
->with([
'page' => $page,
'data' => $data,
'bodyClass' => $page->code_name,
'negative' => $negative,
'meta' => $meta
]);
}
/**
* Process offer
*/
public function process()
{
$request = \Request::all();
// Get route
$route = $request['route'];
unset($request['route']);
if (isset($request['honey']) && $request['honey'] != '') {
return \Redirect::to('/' . $route)->withInput();
}
// Set form name
$this->formService->setFormName($request['formName']);
// Save request in session
$this->formService->saveInSession($request);
// Validate request
if( ! $data = $this->formService->isValid($request))
return \Redirect::to('/' . $route . '?status=failed')->withErrors($this->formService->errors());
// Send mail
$data = $this->formService->data($request);
$config = $this->formService->config();
//$this->formMailer->reservationToClient($data,$config);
$this->formMailer->reservationToAdmin($data,$config);
// Set session
\Session::put('success',1);
$this->formService->forgetSession();
// Redirect to thank you page
return \Redirect::to('/' . $route . '?status=success');
}
}