Chce pouzit hezci backlink parametry v Nette?
- MartyIX
- Člen | 217
Ahoj,
klasicky backlink vypada takto:
http://example.com/user.login/?backlink=sd4gd
Moc se mi ta URL
nelibi, tak jsem si zkopiroval storeRequest
metodu a upravil takto:
/**
* Stores current request to session.
* @param mixed optional expiration time
* @return string key
*/
protected function storeRequestEx($key, $expiration = '+ 10 minutes') // novy parametr $key
{
$session = $this->session->getSection('Nette.Application/requests');
if (isset($session[$key])) {
do {
$key = Nette\Utils\Strings::random(5);
} while (isset($session[$key]));
}
$session[$key] = array($this->user->getId(), $this->request);
$session->setExpiration($expiration, $key);
return $key;
}
takze ted mohu mit v backlink parametru, co chci, a vysledna URL pak muze
vypadat napriklad
takto: http://example.com/user.login/?backlink=user-accounts-myaccounts
A moje otazka zni: Povazujete to nekdo za prinosne?
____________________________________________________
Kod v login presenteru:
$key = strtolower(str_replace(":", "-", $this->presenter->name));
$backlink = $this->storeRequestEx($key);
- Robyer
- Člen | 74
Jasně, ale klíč k tomu konkrétnímu requestu v session bude pro
všechny otevřené záložky stejný, pokud jsem to pochopil správně a bude
ve formátu „presenter-action“ (viz původní příklad
http://example.com/user.login/?backlink=user-accounts-myaccounts
).
Řešilo by to připojení hashe, vygenerovaného z těch parametrů, ale to
už jsme zase na začátku.
Editoval Robyer (28. 1. 2014 9:48)
- MartyIX
- Člen | 217
Robyer:
$key
si muzes nastavit na co chces (muzes krome jmena presenteru pocitat i s parametry, ale nevidim uz v tom moc smysl).- V mem pripade by to dopadlo tak, ze se objevi
backlink=random-string
, pokud uz je pouzity klicuser-accounts-myaccounts
. Ale i to by slo udelat hezci (napriklad, ze bys generovalbacklink=user-accounts-myaccounts-$randNum
).
- MartyIX
- Člen | 217
Robyer napsal(a):
Jasně, ale klíč k tomu konkrétnímu requestu v session bude pro všechny otevřené záložky stejný, pokud jsem to pochopil správně a bude ve formátu „presenter-action“ (viz původní příklad
http://example.com/user.login/?backlink=user-accounts-myaccounts
). Řešilo by to připojení hashe, vygenerovaného z těch parametrů, ale to už jsme zase na začátku.
Ten kod jen nastavi hezci defaultni hodnotu backlinku. Pointou je, ze toto v 90 % pripadu dopadne tak, ze uzivatel uvidi hezkou URL a ve zbytku uvidi URL osklivejsi.
- Michal Vyšinský
- Člen | 608
Je vůbec nutné, aby uživatel viděl backlink? Co to hodit jen jako
hidden prvek do formuláře?
Když jsem na nějakých stránkách jako uživatel, očekávám, že
když mi systém někam zakáže přístup a bude po mě chtít přihlášení,
tak mě po přihlášení pošle tam, kam jsem chtěl. O to, co je v URL se
ale nezajímám.
Edit: Napsal jsem hloupost
Editoval CherryBoss (28. 1. 2014 10:40)
- MartyIX
- Člen | 217
CherryBoss napsal(a):
Je vůbec nutné, aby uživatel viděl backlink? Co to hodit jen jako hidden prvek do formuláře?
Když jsem na nějakých stránkách jako uživatel, očekávám, že když mi systém někam zakáže přístup a bude po mě chtít přihlášení, tak mě po přihlášení pošle tam, kam jsem chtěl. O to, co je v URL se ale nezajímám.
A jak se ten backlink do prihlasovaciho formulare dostane? Typicky scenar je:
- URL XY vyzadujici prihlaseni
- Redirect na stranku s prihlasenim (s backlink parametrem) ← o tomto kroku se bavime v tomto vlakne
- V prihlasovacim formulari je ulozen backlink do hidden fieldu a pokud se prihlaseni povede, tak je uzivatel presmerovan na URL XY.
- Michal Vyšinský
- Člen | 608
Pravda. Omlouvám se, špatně jsem to pochopil.
Editoval CherryBoss (28. 1. 2014 10:35)