Späť na predchádzajúcu stránku

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
SontoEremo
Člen | 341
+
0
-

Zdravím…
Neriešil náhodou niekto link späť na predchádzajúcu stránku vo VisualPaginator?

Teda som na stránke 3 tam idem do editácie a potrebujem sa späť dostať z editácie na stránku 3 a nie na default.

Neriešil niekto z Vás tento problém?
Všetkým vopred ďakujem.

vitkutny
Člen | 73
+
0
-

Tohle přesně řeší tlačítko zpět v prohlížeči. Odkaz v menu, drobečkovce správně odkazuje na default stránku.

Pokud chceš tohle chování měnit, musíš si ukládat ze které stránky jsi přišel do url (při použití session by se to pomíchalo ve více tabech), a dle toho vytvářet odkazy zpět.
Na editaci přesměruješ s persistentní proměnou backlink do které předáš $presenter->storeRequest(); a v editaci (případně obecně v layoutu) mít speciální tlačítko zpět, které bude odkazovat vždy na request z URL. Třeba pomocí signálu handleBack(), který zavolá $presenter->restoreRequest() s persistentním parametrem backlink

SontoEremo
Člen | 341
+
0
-

Vracia to len default robené podla Tohto

public function actionBack($backlink = null) {
    $this->backlink = $backlink;
  }
  public function handleBack() {
    if ($this->backlink !== NULL) {
        $this->application->restoreRequest($this->backlink);
    }
    $this->redirect('default');
  }
<a href="{plink back!}" class="btn btn-info noBorder noRadius">
                                	Naspäť
                                </a>
vitkutny
Člen | 73
+
0
-

namísto

public function actionBack($backlink = null) {
    $this->backlink = $backlink;
  }
\—

jen definuj public property s anotací persistent, v $presenter->loadState se tam hodnota doplní automaticky

/—php

/**
 * @var string
 * @persistent
 */
public $backlink;
SontoEremo
Člen | 341
+
0
-

Stále ma to vráti len na exemple.xx/zoznam/ a nie napr. exemple.xx/zoznam/3

vitkutny napsal(a):

namísto

public function actionBack($backlink = null) {
    $this->backlink = $backlink;
  }
\—

jen definuj public property s anotací persistent, v $presenter->loadState se tam hodnota doplní automaticky

/—php

/**
 * @var string
 * @persistent
 */
public $backlink;
SontoEremo
Člen | 341
+
0
-

Vyriešené! ASI? :)

Takže do linku v default.latte

<a href="{plink detail, id=>$order->id, backlink => $presenter->storeRequest()}" class="btn-link text-danger">
													Zobraziť
												</a>

V presenteru

public function handleBack() {
    if ($this->backlink !== NULL) {
        $this->restoreRequest($this->backlink);
    }
    $this->redirect('default');
  }

A potom šablóna detail z ktoréj sa chcem dostať späť na stránku napr. /3

<a href="{plink back!}" class="btn btn-info noBorder noRadius">
                                	<i class="fa fa-reply"></i>
                                </a>

Funguje dobre teda vráti ma to späť tam odkiaľ som prišiel :)

P.S.: samozrejme ak sa nájde lepší spôsob uvítam