Предпочитаю, что бы сайт не грузил кучу скриптов и стилей. При загрузке адаптивного шаблона за ним тянется очень много файлов, которые перегружают мобильный трафик, что полностью нивелирует преимущества "легкого" отображения сайта. Решил создать мобильную версию шаблона для битрикс с автоматическим переключением на нужный шаблон.
Смысл разработки адаптивного сайта-это показать контент пользователям мобильных устройств в удобочитаемом виде. Однако: в современном web строительстве превуалируют скрипты, анимация, большое количество картинок. Адаптивному шаблону приходится тянуть все возможные файлы, которые используются шаблоном что полностью перечеркивает смысл мобильного представления шаблона. Через мобильный интернет он грузится на столько долго, что полностью теряет смысл.
Я сторонник разработки отдельной мобильной версии сайта, точнее отдельного шаблона, который максимально облегчен для загрузки с мобильного интернета. Само собой, все переключения должны быть автоматическими, без участия пользователя.
Мобильная версия сайта для Битрикс
В данном видео расскажу как:
- подключить мобильную, облегченную версию шаблона битрикс
- сделать автоматический переход пользователя на данный шаблон, если он зашел с мобильного устройства
- дать возможность пользователю переключиться на полную версию шаблона-по кнопке
Все что потребуется для реализации (как использовать смотрите в видео):
В init.php
if (isset ($_GET['type'])){
switch ($_GET['type']) {
case 'pda':
setcookie('siteType', 'pda', time()+3600*24*30,'/');
define('siteType','pda');
break;
case 'special':
setcookie('siteType', 'special', time()+3600*24*30,'/');
define('siteType','special');
break;
default:
setcookie('siteType', 'original', time()+3600*24*30,'/');
define('siteType','original');
}
}else{
$checkType='';
if (isset($_COOKIE['siteType'])) $checkType=$_COOKIE['siteType'];
switch ($checkType) {
case 'pda':
define('siteType','pda');
break;
case 'special':
define('siteType','special');
break;
default:
define('siteType','');
}
В header.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");
$VISITOR_ID = $APPLICATION->get_cookie("MOBILE_VISITOR_MB");
if (
($ipad || $iphone || $android || $palmpre || $ipod || $berry || $mobile || $symb || $operam || $htc || $fennec || $winphone || $wp7 || $wp8) &&
($_SERVER["SERVER_NAME"] == "camouf.ru" || $_SERVER["SERVER_NAME"] == "www.camouf.ru") &&
empty($VISITOR_ID)
) {
$APPLICATION->set_cookie("MOBILE_VISITOR_MB", "MOBILE", time()+60*60);
LocalRedirect("http://camouf.ru/?type=pda");
exit();
}
?>
Адреса шаблонов
/?type=special
/?type=pda
/?type=original
Настройка условий
Основной шаблон | без условия
Мобильный | выражение PHP | siteType=='pda'
Контрастный | Выражение PHP | siteType=='special'
Автокешироание и и cdn отключили ... Пробовал с разных устройст ( кеш тоже чистили ) Уже голову поломали . подскажите , пожалуйста!
Прописываешь в dbconn.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 || $wp 8) define("MOBILE", 'pda');
И ставишь условие для подгрузки шаблона MOBILE=='pda'
И вуаля... А уж если клиент так хочет перейти на обычную версию с мобильной, тогда уже редиректим переопределяем куки.

Цитата |
---|
Денис Чучумашев написал: Таки вы меня извините, а зачем что-то вообще каждый раз редиректить и добавлять в адресную строку параметры? Прописываешь в dbconn.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 || $wp define("MOBILE", 'pda'); И ставишь условие для подгрузки шаблона MOBILE=='pda' И вуаля... А уж если клиент так хочет перейти на обычную версию с мобильной, тогда уже редиректим переопределяем куки. |
Во вторых, не проверяли как к такому подходу относятся поисковые системы? Это вопрос без подковырки, реально интересно.
Но мне кажется поисковые системы к такому относятся не очень хорошо (вменяется "манипулирование поисковой системой" дорвеи).

Цитата |
---|
Михаил Базаров написал: Адаптивная верстка шагает по www но я не ее сторонник. Предпочитаю, что бы сайт не грузил чертову кучу скриптов и стилей. |
Возникла необходимость в мобильной версии сайта и выборе способа её реализации.
Вы пишите, что вы не сторонник адаптивной верстки и на примере вашего сайта показали как это можно сделать по другому.
Но это было очень давно и сейчас (2020 год) на вашем же сайте переход на мобильную версию по https://camouf.ru/?type=pda не срабатывает.
На другом сайте www.domcvetov.net/, который судя по вашему видео уроку https://camouf.ru/video/bxstorenew/ разработан вами, также нет перехода на мобильную версию по /?type=pda.
Судя по всему этот способ для вас уже не подходит и сейчас вы предпочитаете другой способ реализации мобильной версии сайта (похоже опять адаптивный дизайн)?
Подскажите, какой способ реализации мобильной версии сайта актуален на сегодня (2020 год)?
Спасибо.

Цитата | ||
---|---|---|
Александр Посохов написал:
Спасибо. |
На текущий момент актуален только адаптив, скорости мобильного интернета и самих телефонов- вполне позволяют.
Поддерживать, фактически, два сайта: мобильный и декстопный, иногда, накладно даже.
PS: Заметку подкорректирую, что бы не вводит в заблуждение, устаревшими доводами.

Цитата |
---|
Михаил Базаров написал: На текущий момент актуален только адаптив |
Спасибо.