@Gregpopov
Full stack web developer

Как в Yii использовать темплейты и субдомены в связке?

Привет. Появилась идейка использовать два темплейта: один для десктопа, второй для портативных устройств.

Теперь суть вопроса: как создав две темы отображать их как на пример сделано в вк: vk.com m.vk.com и в каком месте делать редирект на ту или иную часть приложения?
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 3
madmages
@madmages
Человек прямоходящий
есть подозрение что USER-AGENT разбирают в поисках мобильности. На том и построена функция в хроме "шифрануться, будто я с компа"
Ответ написан
Комментировать
helmut_kenig
@helmut_kenig
...
Попробуй создать поддомен, сделай общую базу, заливка всех медиа файлов и файлов юзеров на отдельный сервер или поддомен и сделай редирект в index.php на мобильную версию.
<?php

$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
$mobile = strpos($_SERVER['HTTP_USER_AGENT'],"Mobile");
$symb = strpos($_SERVER['HTTP_USER_AGENT'],"Symbian");
$operam = strpos($_SERVER['HTTP_USER_AGENT'],"Opera M");
$htc = strpos($_SERVER['HTTP_USER_AGENT'],"HTC_");
$fennec = strpos($_SERVER['HTTP_USER_AGENT'],"Fennec/");
$winphone = strpos($_SERVER['HTTP_USER_AGENT'],"WindowsPhone");
$wp7 = strpos($_SERVER['HTTP_USER_AGENT'],"WP7");
$wp8 = strpos($_SERVER['HTTP_USER_AGENT'],"WP8");
if ($ipad || $iphone || $android || $palmpre || $ipod || $berry || $mobile || $symb || $operam || $htc || $fennec || $winphone || $wp7 || $wp8 === true) {
    header('Location: http://m.site.com'); 
}

?>

Код для index файла, у тебя там уже есть <?php ?> в коде, значит в этом просто их убери и ставь. что бы ошибки не было
Ответ написан
Комментировать
berezuev
@berezuev
#define TRUE FALSE
Можно в urlManager добавить правило
'rules' => [
     'http://m.vk.com/<action:(.+)>' => '/<action>/?mobile=1',
]

и в view layouts при наличии этого параметра возвращать мобильный шаблон
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы