ACC SHELL

Path : /srv/www/vhosts/usoenergy/app/presenters/
File Upload :
Current File : /srv/www/vhosts/usoenergy/app/presenters/HomepagePresenter.php

<?php

use Nette\Mail\Message;

class HomepagePresenter extends BasePresenter
{
	protected function createComponentAnswerForm()
	{
		$form = new \Nette\Application\UI\Form;	
		$form->addText('name', 'Jméno:')
			->setRequired('Zadejte jméno');

		$form->addText('email', 'Email:')
            ->setEmptyValue('@')
			->addRule($form::EMAIL, 'Musí být ve tvaru emailu');

		$form->addTextArea('note', 'Poznámka:')
			->setRequired('Zadejte poznámku')
			->addRule($form::MAX_LENGTH, 'Poznámka je příliš dlouhá', 5000);

		$form->addSelect('type','Oblast zájmu:')
			->setRequired('Zadejte oblast zájmu');
						
		$form['type']->setItems(array('Spolupráce' => 'Spolupráce', 'Produkty' => 'Produkty', 'Obecný dotaz' => 'Obecný dotaz'))->setPrompt('Zadejte');
		$form->addSubmit('send', 'Odeslat');
		$form->addProtection('Vypršel časový limit, odešlete formulář znovu');		
		$form->onSuccess[] = callback($this, 'answerFormSubmitted');

	 	return $form;
	}
	
	public function answerFormSubmitted($form)
	{
            	try {
                        $this->sendMail($form->getValues());
                        $this->flashMessage('Zpráva úspěšně odeslána!');
                        $this->redirect('this');
                } catch (Nette\IOException $e) {
                        $form->addError($e->getMessage());
                        $this->flashMessage('Nepodařilo se odeslat e-mail, zkuste to prosím za chvíli.');
                }
	}

private function sendMail($values) {
				$mail = new Message;
                $mail->setSubject($values['type']);
                $mail->setFrom($values['email'], $values['name']);
                $mail->addTo('info@unitedsolution.cz', 'United solution');
                $mail->setBody($values['note']);

                try {
                        $mail->send();
                } catch (Nette\InvalidStateException $e) {
                        throw new Nette\IOException('Nepodařilo se odeslat e-mail, zkuste to prosím za chvíli.');
                }
        }
}

ACC SHELL 2018