1) На смартфонах — mobile (правильно)
2) На планшетах Android — mobile (НЕправильно, должно быть tablet )
3) На планшетах Windows 10 — desktop (НЕправильно, должно быть tablet )
Это только у меня?
Может поковыряться клещами в самом принципе определения типа дивайса?
Как оно там определяется? Кто знает? Неужели только по разрешению дисплея?
Я не вникал, времени нет. Но в 2.5.0 заявлено, что определение работает, и ясно, что это не по разрешению дисплея а по типу устройства. И вот как раз это не работает как надо, вроде бы. И тогда не подключить разные шаблоны к разным типам.Неужели только по разрешению дисплея?
Я просто вывел в layout:
<?php echo $device_type ?>
private static function loadDeviceType() { $device_type = (string)cmsUser::getCookie('device_type'); cmsCore::loadLib('mobile_detect.class'); $detect = new Mobile_Detect(); $device_type = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'mobile') : 'desktop'); } self::$device_type = $device_type; }
Попробуйте дописать туда Ваши устройства, может заработает?
А лучше обновите эту библиотеку mobiledetect.net/Попробуйте дописать туда Ваши устройства
В CMS файл библиотеки лежит здесь: /system/libs/mobile_detect.class.php
С другой стороны ничего более путного (выполняемого на стороне сервера) чем Mobile Detect я лично так и не нашёл.
Исходя из этого и писал как-то: лучше уточнить, и позволить "гулять" по версиям
Эхе-хе… Обновился до 2.8.22 — та же историяА лучше обновите эту библиотеку mobiledetect.net/
Видимо, нет смысла в этом. Придётся продолжать привязываться к разрешению экрана, или воспользоваться методом от Олег Васильевич я,
Я специально проверял с планшета на андроиде. Вполне четко пишет tablet.
Может у Вас из-за каких-то нюансов с шаблоном такая история?
Олег с клещами,
Я специально проверял с планшета на андроиде. Вполне четко пишет tablet.
Может у Вас из-за каких-то нюансов с шаблоном такая история?
Нет, к шаблону это не имеет отношение. Проверил библиотеку, и конечно, там далеко не все устройства прописаны. Из-за этого трабла.
Должен быть какой-то иной путь. Вот например сайт 1and1.com что-то другое использует. На всех моих устройствах всё правильно определил, то есть там явно не библиотека Mobile_Detect. А что же тогда?!
Трабла не из-за этого. Ни мобильник с которого я заходил, ни планшет в библиотеке не прописаны, но определяются четко.там далеко не все устройства прописаны. Из-за этого трабла.
Доеду до работы — попрошу у коллег с виндофонами и виндотаблетами проверить.
Вообще можно для проверки попробовать добавить устройства в библиотеку. Для примера:
'Sony' => 'SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533',
'Sony' => 'SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533|D5803',
Олег с клещами, а как вы определили что сайт правильно определил?Вот например сайт 1and1.com что-то другое использует. На всех моих устройствах всё правильно определил
Кроме Mobile_Detect есть и другие библиотеки, например
device-detector
php-browser-detector
agent — форк mobile detect
есть и js-библиотеки:
Detectizr
device-js
наверняка есть и другие =)
Не копал глубоко, но предполагаю, что работа всех этих библиотек основывается на парсинге заголовочных данных, и, следовательно, результат не может быть стопроцентно гарантирован. Это скорее справочная информация, которую стоит применять при разработке, но не полагаться на нее.