zobrazeni textu pri uspesnem odeslani emailu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- vosy
- Člen | 532
ahoj chtel bych zobrazi zpravu o uspesnem odealsni emailu pobliz daneho formulare tak jak je to treba s errors
<blockquote n:if="$form->hasErrors()" class="bs-callout bs-callout-danger">
<h4>Při odesílání emailu se vyskytla chyba</h4>
{control contactForm errors}
</blockquote>
public function defaultFormSubmitted(\Vosy\Form\MyForm $form)
{
$presenter = $form->getPresenter();
$vals = $form->values;
if($form['send']->isSubmittedBy())
{
try
{
$template = new \Nette\Templating\FileTemplate(dirname(__FILE__).'/../../templates/Emails/contact.phtml');
$template->registerFilter(new \Nette\Latte\Engine);
$template->registerHelperLoader('Nette\Templating\Helpers::loader');
$template->predmet = $vals->predmet;
$template->jmeno = $vals->jmeno;
$template->email = $vals->email;
$template->zprava = nl2br($vals->zprava);
$mail = new Message;
$mail->setFrom($vals->jmeno.' <'.$vals->email.'>' )
->addTo(\Glb::$DOTAZY_MAIL_TO)
->setSubject($vals->predmet.' - kontakt z webu '.\Glb::$DOMAIN)
->setHtmlBody($template);
// $mail->setMailer($mailer);
$mail->send();
$presenter->flashMessage("Zpráva byla úspěšně odeslána.", "success");
} catch (\Nette\Mail\SmtpException $e)
{
$presenter->flashMessage("Odeslání emailu selhalo, zkuste prosím později.", "error");
}
}
$presenter->redirect('default');
}
ale $presenter->flashMessage bych chtel zobrazit pobliz formulare.
ale zase ne tak by se tam zobrazovaly vsechny flashMessage.
- Oli
- Člen | 1215
Nejsem si jistej jeslti to pak odchytává všechny flash messages, ale kdyz zavolas flash nad komponentou, tak se zobrazí v komponentě, když nad presenterem tak se zobrazí u něj pokud ho invaliduješ. Používám to v komponentě zhruba takhle:
$this->flashMessage('This flash belong control');
$this->presenter->flashMessage('This flash belong presenter');
$this->presenter->invalidateControl('flashes'); // zobrazí flash pro presenter
$this->invalidateControl('control'); // zobrazí flash pro control
Říkám, nevím jestli neříkám blbosti, zatím to používám takhle a celkem funguje to :-)