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"