services:
baz: Foo\Baz (pro prvni pripad)
- Foo\Baz (pro druhy pripad)
services:
- Foo\Bar(@baz)
- Foo\Bar(@Foo\Baz)
#multiple
foo1: Foo
foo2: Foo
bar: Bar(@foo1)
<?php
namespace App\Utils;
use Latte;
class Macros extends Latte\Macros\MacroSet
{
public static function install(Latte\Compiler $compiler)
{
$set = new static($compiler);
$set->addMacro('currency', array($set, 'macroCurrency'));
return $set;
}
public function macroCurrency(Latte\MacroNode $node, Latte\PhpWriter $writer)
{
return $writer->write(
'echo \App\Utils\Macros::renderMacroCurrency(%node.word)'
);
}
public static function renderMacroCurrency($currency = NULL)
{
$currency = $currency ?: self::$currency;
switch ($currency) {
case 'EUR': return "€";
default: return 'Kč';
}
}
}
$('#autocomplete').focus().keyup(function(event) {
$.getJSON("\/?do=autoComplete", {'text': $('#autocomplete').val()}, function(payload) {
$('ul.autocomplete').remove();
var list = $('<ul class="autocomplete"></ul>').insertAfter('#autocomplete');
for (var i in payload.autoComplete) {
$('<li></li>').html(payload.autoComplete[i]).appendTo(list);
}
});
});
<?php
$component = $this->context->createInstance('\\App\\Components\\'. $ucname );
if($component)
$this->context->callInjects($component);
// $container je systémový kontejner, např. $presenter->context
$httpRequest = $container->getService('httpRequest');
// nebo zkráceně:
$httpRequest = $container->httpRequest;
<?php
$pathToFile = $this->context->expand("%wwwDir%/files/soubor.pdf");
{foreach $polls as $id => $poll}
<h2>Anketa {$poll->name}</h2>
{control poll-$id}
{/foreach}
<?php
namespace App\FrontModule\Components;
use Nette\Application\UI,
Nette,
Nette\Mail\Message,
Nette\Mail\SendmailMailer,
App,
CardBook;
interface IContactUsFormFactory
{
/** @return ContactUsForm */
public function create ();
}
class ContactUsForm extends UI\Control
{
protected $userModel;
protected $mailer;
protected $messageFactory;
/** @persistent */
public $view;
public function __construct (App\Model\User $user, Nette\Mail\IMailer $mailer, App\FrontModule\Factory\MessageFactory $messageFactory)
{
parent::__construct();
$this->userModel = $user;
$this->mailer = $mailer;
$this->messageFactory = $messageFactory;
}
public function render()
{
if (!$this->view)
$this->template->setFile(__DIR__ . '/../templates/components/ContactUsForm/form.latte');
else
$this->template->setFile(__DIR__ . '/../templates/components/ContactUsForm/'.$this->view.'.latte');
$this->template->render();
}
public function createComponentForm()
{
$form = new UI\Form;
$form->addText("name", "Vaše jméno")
->addRule($form::FILLED, "Vyplňte prosím jméno");
$form->addText("email", "E-mail")
->addRule($form::FILLED, "Vyplňte prosím email")
->addRule($form::EMAIL, "Email není ve správném formátu");
$form->addTextArea("message", "Vaše zpráva")
->addRule($form::FILLED, "Vyplňte prosím Váš dotaz");
$form->addSubmit("send", "Odeslat");
$form->onSuccess[] = array($this, 'submitted');
return $form;
}
public function submitted($form)
{
$values = $form->getValues();
$template = $this->createTemplate();
$template->setFile(__DIR__ . '/../templates/emails/contactus.latte');
$template->title = 'Napište nám';
$template->values = $values;
$mail = $this->messageFactory->create();
//$mail = new Message;
$mail->setFrom($values->email)
->addTo(CardBook\Settings::ADMIN_EMAIL)
->setSubject('Cardbook - napište nám')
->setHtmlBody($template);
$this->mailer->send($mail);
// $mailer = new SendmailMailer; 1)
// $mailer = new Nette\Mail\SmtpMailer(array( 2)
// 'host' => 'smtp.savana.cz',
// 'username' => 'podpora@cardbook.cz',
// 'password' => 'uL$g4GHl6AR'
// ));
// $mailer->send($mail);
// 3)
//
// arguments: [..., ..., %foo%, %bar%] #ano, opravdu dvojtecky
// nebo:
// arguments: [foo: %foo%, bar: %bar%]
// nebo:
// arguments: [2: %foo%, 3: %bar%]
if ($this->presenter->isAjax())
{
$this->view = 'save';
$this->redrawControl('contactUsForm');
}
else
{
$this->redirect("this", array('view' => 'save'));
}
}
}
nette:
latte:
macros: [Img\ImgMacro]
services:
imageStorage: Img\ImageStorage(%tempDir%)
imagePipe: Img\ImagePipe(%wwwDir%)