Routes – problém s hezkou url adresou

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

Zdravím mám takový menší problém s Routama.
Mám presenter pages, který reprezentuje všechny dynamické stránky, které si může vytvořit sám uživatel. Bohužel se k nim dostanu pouze přes http://localhost/…pages/view/3 → Konkrétně tato URL znázorňuje kontakt.. potřeboval bych udělat http://localhost/www/kontakt.
Vím že je problém někde v routách bohužel nevím kde.

Díky

	$container->router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
	$container->router[] = new Route('<presenter>/<action>[/<id>]', array(
        'module' => 'Front',
        'presenter' => 'Homepage',
        'action' => 'default',
        'id' => NULL,
	));

	$container->router[] = new Route('<id>/', array(
        'module' => 'Front',
		'presenter' => 'Pages',
		'action' => 'view',
		'id' => array(
                                Route::FILTER_OUT => callback('Models\Pages::getUrlById'),
                                Route::FILTER_IN  => callback('Models\Pages::getIdByUrl')
                )
));
Tomtom
Člen | 3
+
0
-

Zkus se kouknout na " VIDEO od Pandy":https://www.youtube.com/watch?…
Velice pěkně vysvětlené

Jakub Kontra
Člen | 30
+
0
-

Pěkné, nedaří se mi to, ale stále zprovoznit :X

bojovyletoun
Člen | 667
+
0
-

Tenhle měsíc se tu tahle chyba opkuje už podruhý: routy mají prioritu odshora, takže na třetí routy nikdy nedojde.
https://doc.nette.org/…tion/routing#…

Jakub Kontra
Člen | 30
+
0
-

Už jsem to rozchodil.. chyba byla někde jinde.. a to v tom že jsem prohodil dvě Fce :--) Díky

Jakub Kontra
Člen | 30
+
0
-

Tak tu mám teď jiný problém..

Potřebuji URL ve tvaru /reference/urlzdb/informace
/reference/urlzdb/fotogalerie

Nedokáži přijít kde dělám chybu, mohl by mne někdo navést na správné řešení? Děkuji

$container->router[] = new \Artnok\ExtendedRouters\ReferenceRouter('<presenter>/<id>/', array(
        'module' => 'Front',
        'presenter' => 'Reference',
        'action' => 'view',
        'id' => array(
                    Route::FILTER_OUT => callback('ArtnokCMS\Models\Reference::getUrlById'),
                    Route::FILTER_IN  => callback('ArtnokCMS\Models\Reference::getIdByUrl')
        )
));

//extended router

namespace Artnok\ExtendedRouters;

class ReferenceRouter extends \Nette\Application\Routers\Route {

	/** @var SystemContainer */
	public $context;

	public function match(\Nette\Http\IRequest $request) {

		/** @var $appRequest \Nette\Application\Request */
		$appRequest = parent::match($request);

		if ($appRequest === NULL) {
			return NULL;
		}

		if (!is_numeric($appRequest->parameters['id'])) {
			$page = \ArtnokCMS\Models\Reference::getIdByUrl($appRequest->parameters['id']);
			if ($page == NULL) {
				return NULL;
			}
				$params = $appRequest->parameters;
				$params['id'] = $page->id;
				$appRequest->parameters = $params;
		}

		return $appRequest;

	}
}