FORMULÁŘ setAttribute z action<akce>, Strankovani – paginator
- James07
- Člen | 41
Snažím se volat metody typu setRequired, addRule, addCondition,
setAttribute z akce místo z metody vytvářející formulář.
vyzkoušel jsem
<?php
// nefunkční
$this["productForm"]["time"]->setAttribute('min', '18:00');
?>
time je definován jako
<?php
$form->addText('time', "Čas vyzvednutí")
->setType('time')
// fungovalo by, ale nevim kolik by mělo byt xx, protože nemám přístup k datům
->setAttribute('min', 'xx')
// 15 min = 15 * 60 s - chci změnit na čas maximální délky přípravy produktu
->setDefaultValue(date("G:i", time() + 15 * 60))
->addRule(Form::FILLED, "Vlož čas vyzvednutí");
?>
A pak bych ještě rád použil Nette stránkovač, ale ta dokumentace mi není jasná. Především mě mate, jak je možné mít referenci na $paginator v modelu, když je jeho deklarace použitá v akci presenteru. A jestli jsem vůbec pochopil správně, že ta deklarace $paginatoru by byla v nějaké akci a přes parametr by obdržela číslo pro setPage(). Link na dokumentaci
- Felix
- Nette Core | 1247
ad) Form
Ukaz mi cely ten kod jak vytvaris formular a jak to nastavujes v akci, protoze principialne by to takto fungovat melo.
ad) Paginator
Nesmis si plest Paginator
– tridu pro manipulaci se
strankovanim a VisualPaginator
– komponentu, ktera obaluje
objekt paginator
a vykresluje ho a nastavuje aktualni stranku.
Pak totiz v presenteru muzes mit neco jako.
protected function createComponentVp() {
return new VisualPaginator();
}
public function actionDefault() {
$vp = $this['vp']; // vytvori komponentu
$paginator = $vp->getPaginator(); // vrati objekt typu Paginator, tu metodu getPaginator si musis samozrejme napsat
$this->myUltraModel->findAll($paginator); // vyfiltruje polozky podle nastaveni paginatoru
}
VisualPaginator muzes pouzit viz tento thread.
Editoval Felix (10. 4. 2015 12:22)
- James07
- Člen | 41
Tak jsem se ještě jednou podíval a to 1. je vyřešené. Problém byl snad už tradičně u pojmenování, vytvářel jsem komponentu orderForm a snažil jsem se to napasovat na productForm ->po sjednocení názvu to funguje.
2. dotaz směřoval na obecný Nette\Utils\Paginator, a předáním paginatoru jako parametr do modelu objasnilo vše. Původně jsem myslel, že paginator by měl být někde v bootstrap.php a ne v presenteru.
Děkuji.