persistentni parametr jako subdomena – pro mobilni verzi stranek

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

Zdravim, potreboval bych malou radu. U jednoho projektu musim uskutecnit i jeho mobilni verzi. Funkcnost zustava stejna, pouze sablony se meni.
Rozhodl jsem se to provest pomoci persistentniho parametru. Persistentni parametr by pak mel byt v adrese na pozici subdomeny.
Bohuzel nevim jak vytvorit danou routu. Tvar adresy by mel byt nasledujici: m.projekt.com a projekt.com, kde m je onen persistentni parametr.

Nasel jsem podobne tema na v tomto vlakne https://forum.nette.org/…le-subdomeny, ale i toto mi moc nepomohlo.

Diky

Jan Tvrdík
Nette guru | 2595
+
0
-

Co takto?

$router[] = new Route('//m.example.com/<presenter>/<action>/', array(
    'presenter' => 'Default',
    'action' => 'default',
    'mobile' => TRUE,
));

$router[] = new Route('//example.com/<presenter>/<action>/', array(
    'presenter' => 'Default',
    'action' => 'default',
    'mobile' => FALSE,
));

V presenteru pak změníš metodu $this->formatTemplateFiles, aby hledala v případě $mobile == TRUE i mobilní šablony.

Patrik Votoček
Člen | 2221
+
0
-

zkusím ti odpovědět…
řekněme že máš persistentní parametr style. A ten může nabývat hodnot „screen“ a „mobile“. Tak pak už jenom routa:

Route::setStyleProperty('style', Route::FILTER_TABLE, array(
	NULL => "screen",
	'm.' => "mobile",
));

$router[] = new Route('//<style (|m\.)>example.com/<presenter>/<action>/<id>', array(
    'style' => NULL,
    'presenter' => 'Default',
    'action' => 'default',
    'id' => NULL,
));

Netestoval jsem ale tak něják by to mělo fungovat… kdyžtak mě někdo opravte… Nejsem si jist hlavně tím NULL => "screen"