Pridani adresy do strankovani
- R@da
- Člen | 28
Ahoj,
mam stranku example.com/test. Na teto strance mam odkazy ktere vypadaji
asi takto:
<a href="{$basePath}/test/domaci" {if $presenter->getParam('sluzba')=="domaci"} class="active"{/if}>Domácí</a>
Vsechny tyto odkazy zpracovavam v jednom Presenteru takto:
class TestPresenter extends BasePresenter
{
public $homepage;
public function renderDefault()
{
$action = $this->getParam('sluzba');
$where = NULL;
if(!($action=="aktualne" OR empty($action)))
$where = " WHERE kategorie = '$action' ";
$strana = $this['strana'];
$paginator = $strana->paginator; // alias
$paginator->itemsPerPage = 3;
$paginator->itemCount = count($this->modelHomepage->VlastniVypis("SELECT * FROM `pokus` $where"));
$clanky = $this->modelHomepage->VlastniVypis("SELECT * FROM `pokus` $where LIMIT $paginator->offset,$paginator->itemsPerPage");
$this->template->clanky = $clanky;
$this->template->registerHelper('stripslashes','stripslashes'); //Vytvoreny helper pro stripslashes()
}
Takze podle example.com/test/domaci se vytvori sql
dotaz a vypise se do stejneho template. jako adresa /test/.
Vse funguje az na strankovani. Adresa u nej se generuje pouze pro existujici
Presenter (tedy Test) tzn ze adresa, ikdyz jsem na /test/domaci, tak se generuje
jako /test/strana-2.
Chtel bych aby adresa byla jako /test/domaci/strana-2 a listovalo se pouze
v kategorii domaci. Kdyz ji zadam rucne do prohlizece, funguje to.
Jde mi pouze o pridani parametru $presenter->getParam(‚sluzba‘) do
odkazu u VisualPaginator. Zrejme upravit radky jako je napr:
<a class="ajax" href="{link this, 'page' => $paginator->page + 1}">Další »</a>
v templatu VisualPaginatoru.
Pripadne muzete mi doporucit jiny zpusob abych nemusel pro kazdou sekci delat
zvlast stejny template a vytvaret stejny Presenter a zaroven aby v link this
byla adresa /domaci?
Snad jsem to napsal srozumitelne. Jeste pouzivam verzi Nette 0.9.7c stable pro PHP 5.2 s prefixy.
Predem dekuji za odpoved.