Kontaktní formulář – získání hodnot z config.neon
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Montes
- Člen | 5
Zdravím,
prošel jsem si tutoriál QuickStart a celkem mně Nette framework zaujal. Tak
jsem zkusil ještě screencast Kontaktní formulář. Aplikace funguje, ale mám
problém se získáním hodnot ze souboru config.neon. Ve screencastu jsou
indexy to a subject uloženy v souboru
config.ini, já je přesunul do config.neon. Procházel jsem fórum a našel
jen, že lze pro získání hodnot použít:
$this->context->parameters['mail']['to'];
To mě ale nefunguje… :-( Laděnka hlásí: Undefined index: mail. Díky za radu.
config.neon
common:
parameters:
php:
date.timezone: Europe/Prague
# zlib.output_compression: yes
nette:
application:
errorPresenter: Error
database:
dsn: 'mysql:host=localhost;dbname=test'
user: root
password:
mail:
to: 'marek@localhost.cz'
subject: 'Kontakt formulář z APP'
session:
expiration: 14 days
services:
authenticator: Authenticator
routerFactory: RouterFactory
router: @routerFactory::createRouter
factories:
production < common:
development < common:
HomepagePresenter.php
<?php
use Nette\Mail\Message;
/**
* Homepage presenter.
*/
class HomepagePresenter extends BasePresenter {
public function renderDefault() {
$this->template->anyVariable = 'any value';
}
protected function createComponentContactForm($name) {
$form = new ContactForm($this, $name);
$form['ok']->onClick[] = callback($this, 'contactFormOkClicked');
return $form;
}
public function contactFormOkClicked(\Nette\Forms\Controls\SubmitButton $button) {
$values = $button->getForm()->getValues();
$this->sendContactEmail($values);
}
protected function sendContactEmail($values) {
$mail = new Message;
$mail->setFrom($values['email']);
//$mail->addTo($this->context->parameters['mail']['to']);
$mail->addTo('marek@localhost.cz');
$mail->setSubject('Kontakt formulář z APP');
$mail->setBody($values['message']);
$template = $this->createTemplate();
$template->setFile(APP_DIR . '/templates/emails/contact.latte');
$template->title = 'Kontakt formular z APP';
$template->values = $values;
$mail->setHtmlBody($template);
$mail->send();
$this->flashMessage('Zpráva byla úspěšně odeslána!');
$this->redirect('this');
}
}