ACC SHELL
<?php
/**
* Homepage presenter.
*
* @author John Doe
* @package MyApplication
*/
class UsefulInformationPresenter extends BasePresenter
{
private $brochures = array();
/**
* List of bruchures to order via form.
* List of bruchures available in template.
*/
public function actionDefault()
{
$this->brochures = array(
// 'brochure1' => 'Brožura č. 1',
// 'brochure2' => 'Brožura #2',
// 'brochure3' => 'Třetí brožura'
);
$this->template->brochures = $this->brochures;
}
public function renderDefault()
{
}
public function createComponentUsefulInformationForm($name)
{
$form = new Nette\Application\UI\Form($this, $name);
$form->setTranslator(new MyTranslator($this->lang));
$form->addText('name', 'Jméno *', 40)
->setRequired('Prosím, vyplňte povinná pole označená *.');
$form->addText('email', 'E-mail *', 40)
->setRequired('Prosím, vyplňte povinná pole označená *.')
->addRule(Nette\Application\UI\Form::EMAIL, 'Prosím, vložte platnou emailovou adresu.');
$form->addText('company', 'Společnost', 40);
foreach ($this->brochures as $brochure => $brochureName)
$form->addCheckbox($brochure, $brochureName);
$form->addTextArea('note', 'Poznámka', 40, 5);
$form->addSubmit('send', 'Objednat');
$form->onSuccess[] = callback($this, 'usefulInformationFormSubmitted');
return $form;
}
public function UsefulInformationFormSubmitted(Nette\Application\UI\Form $form)
{
$values = $form->values;
$text = "Dne ". date('j. m. Y') . " v " . date('H:i') . " byla učiněna následující objednávka:\n\n";
$atLeastOneBrochure = false;
foreach ($values as $checkbox => $checked)
{
if (preg_match('/brochure/', $checkbox) && $checked)
{
$text .= "- " . $this->brochures[$checkbox] . "\n";
$atLeastOneBrochure = true;
}
}
if (!$atLeastOneBrochure)
$text .= "(nebyla vybrána žádná z brožur)";
$text .= "\nna jméno $values->name ($values->email)";
if ($values['company'])
$text .= " ze společnosti $values->company";
$text .= '.';
if ($values['note'])
$text .= "\n\nPoznámka odesílatele:\n$values[note]";
$mail = new Nette\Mail\Message;
$mail->setFrom("$values->name <$values->email>")
// ->addTo('info@czerwpart.cz')
->addTo('jiri.zajic@flipcom.cz')
->setSubject('Potvrzení objednávky')
->setBody($text)
->send();
$this->flashMessage('Formulář byl odeslán.');
$this->redirect('Homepage:');
}
}
ACC SHELL 2018