Routování moduly a podsložky v templates

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

Dobrý den,

potřebuju nastavit routování.

Moje aplikace se skládá z několika modlulů. Cesta k šabloně kam chci nastavit routovani je nasledujici

App\MujModul\templates\default\HomePage\list.latte

Abych to vysvětlil tak adresář App\MujModul\templates obsahuje další podadresáře ( má to fungovat jako šablony (vzhled) ve wordpressu – mám k dispozici šablony neboli vzhled a můžu si vybrat jaký vzhled webu chci – proto ten podadresář default)

Adresář App\MujModul\templates obsahuje tedy například: default, newWorld, …

Já potřebuju nastavit routu k defaultu

takto je to samozřejmě špatně

$router[] = new Route('', 'Muj:Homepage:default:HomePage', Route::ONE_WAY);

poradíte někdo jak nastavím routu?

Šaman
Člen | 2666
+
0
-

Routy a šablony spolu vůbec nesouvisí. Routováním nastavíš akci presenteru, která odpovídá dané adrese. A presenter už si šablony dohledává sám, podle vlastních pravidel.

ondrej256
Člen | 187
+
0
-

Aha, a můžeš mě nějak nasměrovat jak se dostanu na

App\MujModul\templates\default\HomePage\list.latte

?

Vůbec mně nenapadá jak to tam nasměrovat. Potřebuju aby výše uvedená adresa byla hlavní strana webu

Jan Suchánek
Člen | 404
+
0
-
$route = new Route('<presenter>[/<action>[/<id>]]', array(
    'module' => 'Example',
    'presenter' => 'Homepage',
    'action' => 'list',
    'id' => NULL,
));

	// nebo

	$router[] = new Route('<presenter>[/<action>[/<id>]]', 'Example:Homepage:list');

a v šabloně latte napišeš odkaz na hlavní stránku takto

	<a n:href="Homepage:">Úvodní stránka</a>

Šablonu bys měl mít asi zde templates\HomePage\list.latte

Ale doporučuji ti aby si se nezabýval modulama a pořádně si prozkoušel CD collection na gitu a až potom se tímhle zabýval.

Editoval jenicek (13. 8. 2014 16:35)

ondrej256
Člen | 187
+
-1
-

jenicek napsal(a):

$route = new Route('<presenter>[/<action>[/<id>]]', array(
    'module' => 'Example',
    'presenter' => 'Homepage',
    'action' => 'list',
    'id' => NULL,
));

	// nebo

	$router[] = new Route('<presenter>[/<action>[/<id>]]', 'Example:Homepage:list');

a v šabloně latte napišeš odkaz na hlavní stránku takto

	<a n:href="Homepage:">Úvodní stránka</a>

Šablonu bys měl mít asi zde templates\HomePage\list.latte

Ale doporučuji ti aby si se nezabýval modulama a pořádně si prozkoušel CD collection na gitu a až potom se tímhle zabýval.

Děkuju, ale jak jsem psal tak šablonu potřebuju mít na App\MujModul\templates\default\HomePage\list.latte

ten podadresář default tam prostě potřebuju. Kdyby tam nebyl tak není co řešit.

S tím podadresářem potřebuju pomoct. Dokáže to někdo nasměrovat?

ondrej256
Člen | 187
+
0
-

Nikdo neví?

David Kudera
Člen | 455
+
0
-

No a jak už ti tu psal @Šaman, tak routy s umístěním šablon nesouvisí. Pokud to tak nutně potřebuješ, tak přepsat metodu formatTemplateFiles , samozřejmě ne přímo v téhle classe, ale ve tvém poděděném presenteru..

Jen tak ze zajímavosti, chceš to kvůli různým vzhledům? Třeba vzhledy default, pro motorkáře a tak? Víš jen mě to zajímá proč na tom tak lpět a jiný důvod mě nenapadá.. ;-)

ondrej256
Člen | 187
+
-1
-

David Kudera napsal(a):

No a jak už ti tu psal @Šaman, tak routy s umístěním šablon nesouvisí. Pokud to tak nutně potřebuješ, tak přepsat metodu formatTemplateFiles , samozřejmě ne přímo v téhle classe, ale ve tvém poděděném presenteru..

Jen tak ze zajímavosti, chceš to kvůli různým vzhledům? Třeba vzhledy default, pro motorkáře a tak? Víš jen mě to zajímá proč na tom tak lpět a jiný důvod mě nenapadá.. ;-)

Super, děkuju mnohokrát, funguje to

a ano jak jsem psal, chci to kvůli vzhledům jako šablony ve wordpressu

Editoval ondrej256 (13. 8. 2014 20:53)

David Kudera
Člen | 455
+
0
-

jé sorry, jsem si tvůj příspěvek nepřečetl celý :-D