Routovanie submodulu

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

Presunul som si jednotlivé presentery z administrácie do samostatných modulov.
Takže z AdminModule/UsersPresenter je AdminModule/UsersModule/DefaultPresenter.
Lenže teraz to neviem naroutovať tak aby som mal link ako predtým, čiŽe admin/users/.
Neviete niekto ako nato?

David Grudl
Nette Core | 8218
+
0
-

Dej si do routy 'module' => 'Admin:Users'.

Jod
Člen | 701
+
0
-

Ano, ano, teraz tam mám:

// Admin Routing
$router[] = new Route('admin/<presenter>/<action>/<id>', array(
	'module' => 'Admin',
	'presenter' => 'News',
	'action' => 'default',
	'id' => NULL
));

Tak sa mi pridáva submodul za čiarku Users.default.

Chcel som vedieť či sa to dá aj na úrovni submodulov nastavovať aby to šlo dynamicky a nemusel na každý pridávať samostatnú routu.

Napríklad keď si chcem zmeniť separátor, alebo aby sa mi tam nedávalo to default, keďže tam chcem mať zatiaľ len jeden presenter.

Niečo štýlom:

// Admin Routing
$router[] = new Route('admin/<submodule>/<action>/<id>', array(
	'module' => 'Admin',
	'submodule' => 'News',
	'presenter' => 'Default',
	'action' => 'default',
	'id' => NULL
));

Editoval Jod (11. 1. 2009 0:51)

deric
Člen | 93
+
0
-

bylo by možné implementovat něco takovéhoto?

$router[] = new Route('<module admin|front>/<presenter>/<action>/<id>', array(
        'module' => 'Foo:<module>',
        'presenter' => 'Default',
        'action' => 'default',
        'id' => NULL
));

Jde mi o to, aby šlo elengantně spojit více rout do jedné. Aktuálně funkční řešení by bylo (co píše dgx):

$router[] = new Route('<module admin>/<presenter>/<action>/<id>', array(
        'module' => 'Foo:Admin',
        'presenter' => 'Default',
        'action' => 'default',
        'id' => NULL
));

přilo by mi to pochopitelnější a univerzálnější než psát třeba subsubmodule

Editoval deric (21. 1. 2009 10:46)

David Grudl
Nette Core | 8218
+
0
-

Co využít překladový slovník? 1061-rev-134-prekladovy-slovnik-pro-route

BTW, taky cítím určité mezery v routování s moduly, ale dokonalé řešení mě zatím nenapadlo. 'module' => 'Foo:<module>' jsem už dřív zavrhl, nepamatuju si přesně proč, byla tam nějaká komplikace s generováním URL nebo co.

phx
Člen | 651
+
0
-

Pokud chapu dobre tak kdyz v route napisu <module> tak se jakoby ulozi do toho array() za routou pod klic module. Mozna by stacilo misto ulozeni to prohnat jen str_replace (treba pouzit i sprintf a davat tam %1, %2) a zbytek routovani nebude narusen a muze byt stejny ne?

Jen takova myslenka. Neco jako predzpracovani:)