Database\Table\Selection a funkce page
- mardon
- Člen | 59
v HomePresenteru mám
private $recordFacade;
function __construct(Model\RecordFacade $recordFacade)
{
$this->recordFacade = $recordFacade;
}
public function renderDefault($page = 1)
{
$this->template->records = $this->recordFacade->getAll()->page($page, 4);
$this->template->page = $page;
}
v šabloně pak
<a n:href="default $page - 1" n:if="$page > 1">starší</a>
<a n:href="default $page + 1" >novější</a>
jak omezím zobrazení poslední stránky ? Zobrazují se mi totiž neustále novější stránky i s prázdným obsahem
- David Matějka
- Moderator | 6445
kratce: musis si spocitat, kolik je tam celkem zaznamu
V selection ta fce page je hodne primitivni, mrkni na Nette\Utils\Paginator,
ktery ti treba pomuze
Pro zobrazeni paginatoru muzes pouzit visual paginator
(mozna neni zcela kompatibilni se soucasnym nette, ale asi bude jen stacit
doplnit importy)..
Zaznamy spocitas pomoci
$selection->count('*');
Editoval matej21 (27. 12. 2013 21:31)
- mardon
- Člen | 59
matej21 napsal(a):
kratce: musis si spocitat, kolik je tam celkem zaznamu
V selection ta fce page je hodne primitivni, mrkni na Nette\Utils\Paginator, ktery ti treba pomuze
Pro zobrazeni paginatoru muzes pouzit visual paginator (mozna neni zcela kompatibilni se soucasnym nette, ale asi bude jen stacit doplnit importy)..Zaznamy spocitas pomoci
$selection->count('*');
takze
$selection->count('*');
mám předat jako třetí parametr pro page?
O visualpaginatoru jsem uvažovala, ale vzhledem že celá aplikace je hrozně jednoduchá doufala jsem, že půjde realizovat standartními částmi Nette
- mardon
- Člen | 59
David Grudl napsal(a):
Metoda page() vrací ve třetím parametru počet stránek. V nette 2.1.
Děkuji za nasměrování, upravila jsem si to takto:
public function renderDefault($page = 1)
{
$this->template->records = $this->recordFacade->getAll()->page($page, 4, $numpages);
$this->template->page = $page;
$this->template->numpages = $numpages;
}
šablona
<a n:href="default $page - 1" n:if="$page > 1">starší</a>
<a n:href="default $page + 1" n:if="$page < $numpages">novější</a>
takže mi to již částečně funguje jen bych potřebovala ještě ošetřit omezení pokud zadám přímo do adresního řádku prohlížeče na konci v url ?page=20 kde číslo stránky je větší než počet stránek
- David Matějka
- Moderator | 6445
na to bych se bud vykaslal, nebo tam jen hodit redirect na posledni stranku