Routa pro handle – preklad x.com/do=Login na x.com/login

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

Zdravim,

poradi mi nekdo jak z:

<a n:href="login!" class="ajax">Prihlasit</a>

udelat nejakou peknejsi adresu?

Naprilaklad:
http://www.example.com/login,

misto soucasneho

http://www.example.com/?…

Muj HomepagePresenter:

/**
 * Homepage presenter.
 */
class HomepagePresenter extends BasePresenter
{
        /** @var string */
        private $anyVariable;

        public function handleLogin()
        {
            $this->anyVariable = 'changed value via ajax';
            if ($this->isAjax()) {
                $this->invalidateControl('ajaxChange');
            }
        }


        public function renderDefault()
        {
            if ($this->anyVariable === NULL) {
                $this->anyVariable = 'default value';
            }
            $this->template->anyVariable = $this->anyVariable;
        }

}

Diky moc za nasmerovani!

@flexroad

David Matějka
Moderator | 6445
+
0
-

mas nejaky duvod mit login jako signal?

flexroad
Člen | 117
+
+1
-

@matej: Nemusim. Je to spise obecna otazka…

Stejny problem resim treba pri pouziti kdyby/facebook

Jak prelozit:

<a n:href="fbLogin-open!">Login using facebook</a>

napriklad na:
http://www.example.com/login/facebook

David Matějka
Moderator | 6445
+
+3
-

tak „do“ je klasicky parametr, se kterym muzes udelat masku routy jako s kazdym jinym parametrem…

Editoval matej21 (29. 8. 2014 0:17)

flexroad
Člen | 117
+
0
-

@matej21 : Mohl bych poprosit o priklad?

<a n:href="fbLogin-open!">Login using facebook</a>

v soucasne chvili vraci mi to vraci:

http://www.example.com/account/login/do=fbLogin-open

Potreboval bych, aby to vratilo:

http://www.example.com/account/login/facebook

Resi se to pres filtry, nebo jak na to? Neni nekde nejaka konkretni ukazka? Nebo nemuze sem nekdo nejakou jednoduchou ukazku vlozit?

Diky moc,

@flexroad

David Matějka
Moderator | 6445
+
+2
-

nejak takhle

new Route('<presenter>/<action>/<do>', array(
	'do' => array(
		Route::FILTER_TABLE => array(
			'facebook' => 'fbLogin-open'
		)
	),
	.....
));
Kurtas
Člen | 109
+
0
-

@flexroad Resi to prekladovy slovnik viz

edit: Matej byl rychlejsi vcetne prikladu ;)

Editoval Kurtas (25. 11. 2014 16:56)

flexroad
Člen | 117
+
0
-

@matej21 @Kurtas : Chlapci, dekuji. To je presne to co jsem potreboval!