routing (zobrazovat co nejmín), překlad do cz

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

Zdravíčko, snažím se zprovoznit následující:
domain.tld/document_root/?url=nazev-meho-clanku&presenter=Article
na
domain.tld/document_root/clanek/nazev-meho-clanku
po dlouhém routování se mi povedlo:
domain.tld/document_root/article/nazev-meho-clanku
ale při snaze zaměnit article na clanek

<?php
Route::setStyleProperty('presenter', Route::FILTER_TABLE, array(
'clanek' => 'article'
));
?>

se mi to pouze přesměruje na verzi s article.. Ale já chci, aby se to přesměrovalo na clanek.

V bootstrap.php mám následující:

<?php
$router = $application->getRouter();
$router[] = new Route('index.php', array(
	'presenter' => 'Default',
	'action' => 'default',
), Route::ONE_WAY);
$router[] = new Route('<presenter>/<url>', array(
	'presenter' => 'Default',
	'action' => 'default',
	'url' => NULL,
));
?>

Ale to mám asi špatně.

Obdobně bych to chtěl vytvořit i pro tuto url: /document_root/?page=1&category_id=5 na /document_root/page/1/kategorie/5

Ondřej Mirtes
Člen | 1536
+
0
-

Presenter se jmenuje Article, ne article.

MzK
Člen | 127
+
0
-

To sem opravil, ale efekt to nemá žádny..
Jak má vypadat ta routa aby mi to změnilo odkazy z
domain.tld/document_root/?url=nazev-meho-clanku&presenter=Article na domain.tld/document_root/clanek/nazev-meho-clanku ?

A ten samý problém mám u výše zmiňovaných URL page a category_id

David Grudl
Nette Core | 8152
+
0
-

Statické Route::setStyleProperty musí být uvedeno před vytvořením routy. Jinak dá se jít i jednodušeji:

$router[] = new Route('clanek/<url>', array(
        'presenter' => 'Article',
        'action' => 'default',
));