vyjmutí jedné adresy z routování

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

Zdravím,

jelikož jsem v rámci nette MVP narazil na problém, že se nedá nejprve vykreslit kus šablony a pak teprve zpracovat nějaký kus kódu, jehož průběh by se přes funkce flush() a ob_flush() vykresloval, musím zvolit jinou cestu.

Napadlo mě tedy, že pro daný malý kus kódu bych napsal vlastní skript a teď bych potřeboval, aby jej routovací pravidla dovolila vykonat. Myslím tím, aby se adresa http://www.server.cz/mujskript.php nepřekládala jako Nette MVP, ale aby se opravdu zavolal soubor /mujskript.php

V ideálním případě, aby se požadavek na soubor /document_root/mujkript.php presmeroval na /app/scripts/mujskript.php

Představoval bych si to jako Hurvínek válku asi takhle:
V souboru bootstrap.php bych měl:
$router[] = new Route('mujskript.php','/app/scripts/mujskript.php);

nAS
Člen | 277
+
0
-

Já bych na to udělal pravidlo do .htaccess.

2bfree
Člen | 248
+
0
-

nAS napsal(a):

Já bych na to udělal pravidlo do .htaccess.

Zjistil jsem, že když mám soubor /document_root/mujskript.php a zavolám http://www.server.cz/mujskript.php, tak ho Nette opravdu načte tak jak jsem si představoval. Předtím, když jsem to zkoušel, jsem měl asi někde chybku. ;)

2bfree
Člen | 248
+
0
-

Druhá věc je, že přidáním pravidla se nedostanu do adresáře /app

Pravidlo RewriteRule mujkript\.php$ /../app/mujskript.php [QSA,L] vyvolá http error 400

jansfabik
Člen | 193
+
0
-

2bfree napsal(a):

Druhá věc je, že přidáním pravidla se nedostanu do adresáře /app

Pravidlo RewriteRule mujkript\.php$ /../app/mujskript.php [QSA,L] vyvolá http error 400

tak si udělej skript mujskript.php v document root a dej do něj

require __DIR__ . '/../app/mujskript.php';
2bfree
Člen | 248
+
0
-

Tak nakonec je to celé úplně zbytečné téma.
Účelem hry bylo průběžně vykreslovat průběh zpracování jednotlivých operací.
Bylo mi porazeno, ať ty operace volám ajaxem. To se mi nelíbilo kvůli závislosti na JS.

Nicméně mne dneska večer oslovil hlas podsvětí a řekl zrůdnou myšlenku:
Když to bude volat ajax, tak to bude muset nejdřív vykreslit šablonu (View) a teprve to View bude volat operace z Module. Takže co kdybych naprasil do šablony to volání Module normální CurlyBracket cestou a jen tam přidal patřičné funkce ob_flush() a flush().

Je to sice prasárna na entou, ale účel to plní. ;)