Deprecated metoda getSteps
- stpnkcrk
- Generous Backer | 190
Navrhuji, aby metoda getSteps() byla v Paginatoru znova k užití (čili odznačení deprecated).
Chápu, že někdo si chce tvořit vlastní způsob, proměnné firstPage a
lastPage mu to umožňují, ale pro „běžné“ a jednoduché použití bych
se přikláněl k ponechání getSteps();
Co Ty na to Davide?
- David Grudl
- Nette Core | 8218
Možná by to šlo řešit takovýmto helperem pro šablony:
<?php
abstract class Helpers
{
/**
* Generates list of pages used for visual control.
* @return array
*/
public static function steps(Paginator $paginator, $steps = 5, $surround = 3)
{
$page = $paginator->page;
if ($paginator->pageCount < 2) {
return array($page);
}
$surround = max(0, $surround);
$arr = range(max($paginator->firstPage, $page - $surround), min($paginator->lastPage, $page + $surround));
$steps = max(1, $steps - 1);
$quotient = ($paginator->pageCount - 1) / $steps;
for ($i = 0; $i <= $steps; $i++) {
$arr[] = round($quotient * $i) + $paginator->firstPage;
}
sort($arr);
return array_values(array_unique($arr));
}
}
A nebo prostě přes Extension Method. Vážně si myslím, že byla chyba tuhle metodu do Paginatora vůbec dávat.
- RaR
- Člen | 42
Prosím poraďte jak Helper steps.
Vytvořil jsem výše uvedený helper pro paginátor.
V presenteru mám
<?php
$paginator = new Paginator;
...
$this->template->registerHelper('steps', 'Helpers::steps');
$this->template->paginator = $paginator;
?>
jak mám šablonu donutit, aby naplnila pole $steps?
{foreach $steps as $step}
zkusil jsem
{foreach $steps|steps:$paginator as $step}
ale nějak to nehraje. děkuji za pomoc.
- David Grudl
- Nette Core | 8218
Helper se volá standardně takto:
$template->steps(...)
Je možné, že bude fungovat i {foreach $steps as $step|steps}
,
nejsem si jist.
- Panda
- Člen | 569
David Grudl napsal(a):
Helper se volá standardně takto:
$template->steps(...)
Je možné, že bude fungovat i
{foreach $steps as $step|steps}
, nejsem si jist.
Přidání helperu u mě (rev. 225, PHP 5.2.6-win32) nemělo žádný vliv na vygenerovaný zdroják šablony, takže to asi fungovat nebude. Ale možná by mohlo být fajn, kdyby fungovalo něco na způsob toho, co psal RaR:
{foreach $paginator|steps:7:5 as $step}
...
{/foreach}
místo
{foreach $template->steps($paginator, 7, 5) as $step}
...
{/foreach}