Modules-Useg problém s routama

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

Verze Nette Framework 2.0-beta (revision 648b258 released on 2011–06–13)
Mám problém s modulama.
Když mám bootstrap.php takhle, tak všechno to funguje akorát že adresa na admin modul se musi zapsat http://www.blog-nette.cz/admin.default/

$application->onStartup[] = function() use ($application) {

	$router = $application->getRouter();


	if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {


		$router[] = new Route('index.php', 'Front:Default:default', Route::ONE_WAY);

     		$router[] = new Route('<presenter>/<action>[/<id>]', 'Front:Default:default');


		$router[] = new Route('index.php', 'Admin:Default:default');

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





	} else {

		$router[] = new SimpleRouter('Front:Default:default');

	}

};

Když použiju bootstrap s examplase tak mi to hodí error RouteList not found. Ukáže to chybu na tomto řádku $router[] = $adminRouter = new RouteList(‚Admin‘);

$application->onStartup[] = function() use ($application) {

	$router = $application->getRouter();



	// mod_rewrite detection

	if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {

		$router[] = new Route('index.php', 'Front:Default:default', Route::ONE_WAY);



		$router[] = $adminRouter = new RouteList('Admin');

		$adminRouter[] = new Route('admin/<presenter>/<action>', 'Default:default');



		$router[] = $frontRouter = new RouteList('Front');

		$frontRouter[] = new Route('<presenter>/<action>[/<id>]', 'Default:default');



	} else {

		$router[] = new SimpleRouter('Front:Default:default');

	}

};

Chtěl bych docílit toho aby stačilo napsat http://www.blog-nette.cz/admin a dostal jsem se na tento modul. Do dokumentace jsem se díval, zní to jaksi nechápu.

kucix
Člen | 33
+
0
-

ad. druhý případ s RouteList (který mně funguje…)

Máš v bootstrapu i use Nette\Application\Routers\RouteList; ?

Dále pak musí být v těch presenterech namespace AdminModule; atp – podle modulu … jinak to pro změnu nenajde presenter…

kralik
Člen | 230
+
0
-

Ahoj,

prosím poraďte mám problém v bootstrap.php

nechce mi to projít přes tento if

<?php
if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())
{
}
?>

chyba někde v konf. apache2 nebo php, ale zatím jsem nenašel kde.

mooc díky

Semik
Backer | 135
+
0
-

kralik napsal(a):

Ahoj,

prosím poraďte mám problém v bootstrap.php

nechce mi to projít přes tento if

<?php
if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())
{
}
?>

chyba někde v konf. apache2 nebo php, ale zatím jsem nenašel kde.

mooc díky

V tom if chybí ukončovací závorka.

basovnik
Člen | 23
+
0
-

Ahoj, řeším problém, který se již řešil, ale asi nevyřešil nebo to nechápu…
Lepší detekce aktivního .htaccess a mod_rewrite
Pozor na funkci apache_get_module v PHP 5.3

Na lokále mi funguje vše v pohodě, ale když hodím web na hosting od OneBit, tak ty routy nefungujou, přitom jsem v administraci OneBit povolil mod_rewrite. Requirements-checker mi stejně ale hlásí nějaký problém (viz. zde).

Mám modulární aplikaci a bohužel se nedostane do této podmínky:

if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules()))
{
...
}

Poradí mi někdo?

Editoval basovnik (18. 1. 2012 17:41)

22
Člen | 1478
+
0
-

co pro začátek zkusit vyhledávání? btw. ten mod_rewrite, podle obrázku toho checkeru, není aktivní asi…

basovnik
Člen | 23
+
0
-

22: Ten tvůj odkaz na „vyhledávání“ nefunguje. Mělo to někam vést nebo jsi mi jen chtěl naznačit, že mám více hledat před tím, než vznesu dotaz..?

Četl jsem už několik vláken, ale žádné mi nepomohlo. Když zmíněnou podmínku úplně vymažu a nechám tam jen nastavení rout, a zadám url, která by měla fungovat, tak mi to vyhodí error 500 od OneBit!! Jinak s ponecháním podmínky běhá normálně SimpleRouter, jen ta url vypadá hrozně.Jo a ten .htacces by měl být aktivní (obr).

PS: Zkouším najít něco tady a přemýšlím, zda se nemá něco změnit v souboru .htaccess případně použít ty jejich soubory .user.ini. Moc tomu ale nerozumím :(

Editoval basovnik (23. 1. 2012 17:41)