persistentni parametr jako subdomena – pro mobilni verzi stranek

- krissott
 - Člen | 48
 
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
 
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
 
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"