Php проверка размера экрана(и браузера) в panels

Главные вкладки

Аватар пользователя DarKaind DarKaind 14 октября 2017 в 1:20

Здравствуйте, собственно вопрос в названии)) Все мы знаем, что в модуле Panels есть варианты вывода определенных панелей в зависимости от условий. Я хочу чтобы при разрешении экрана например меньше 1024 отображался другой вариант панели, там есть проверка по php, к сожалению я в нем не силён от слова совсем, может кто-нибудь подсказать что туда вписать или альтернативу для этих целей. Так же интересует аналогичная проверка для браузера, чтоб в IE всех версий (включая Edge для win10) так же выводился другой вариант.
Спасибо Smile

Лучший ответ

Комментарии

Аватар пользователя DarKaind DarKaind 14 октября 2017 в 2:13

ну возможно, но у меня уже есть панельная страница с регионами, хочется чтоб выводился другой вариант этих регионов, а в модуле уже вроде как встроена проверка по пшп, я подумал, может туда вписать что?

Аватар пользователя DarKaind DarKaind 14 октября 2017 в 13:17

Ну да, в принципе делает, то что надо, Спасибо больше!
А для проверки браузера не знаете аналогичного?)

Аватар пользователя DarKaind DarKaind 14 октября 2017 в 10:42

Сложный код что-ли получается для проверки размера и браузера, раз нужно посторонние модули ставить?

Аватар пользователя BatKor BatKor 14 октября 2017 в 11:18

ТС.
Пожалуйста разберитесь с постановленной задачей.
Попробуйте получить общее представление работы и разработки сайтов. Серверное и клиентское приложение и в будущем у вас не будет проблем.

Аватар пользователя DarKaind DarKaind 14 октября 2017 в 13:06

Ну ладно... просто я думал, раз в самом модуле есть проверка по пшп, то туда можно вставить че-нить типа как в ксс @media, только пшп кодом

Аватар пользователя Andruxa Andruxa 14 октября 2017 в 17:25

Ну ок. Вот допустим, вы - вебсервер.
Вам приходит вот такой запрос:

GET / HTTP/1.1
Host: drupal.ru
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/61.0.3163.100 Chrome/61.0.3163.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: ru,en;q=0.8

Ось и браузер вы ещё сможете угадать, с верояностью 50х50.
Откуда возьмете разрешение экрана?

Аватар пользователя BatKor BatKor 14 октября 2017 в 18:47

Есть библиотека http://mobiledetect.net/
Есть модуль https://www.drupal.org/project/mobile_detect
И как добиться такого результата на пенелях не в курсе.(Сторонник ХардКорКоддинга)
Как вариант для, облегчения так сказать, лучше разобраться в мультисайтинге и редиректить на мобильную версию сайта, как реализована в ВК, ламода и еще где то там.
У кого какие предложения? Хотелось бы услышать предложения от "мистера Хауса" и "мистера Куска оружия"(Не серчай gun-dose) и конечно же остальных

Аватар пользователя gun_dose gun_dose 14 октября 2017 в 19:14

А ты посмотри в эту библиотеку - идёт тупо перебор всех заголовков и юзер-агентов и сопоставление их. Логики - минимум, но обрабатываемый объём данных (модели, ОС, браузеры) - большой.

Аватар пользователя meles meles 14 октября 2017 в 23:23

Ещё есть вариант с JS+Cookie+PHP ))
1. Пишем на JS опрос клиента какое разрешение экрана и браузер, помещаем это в массив(или в переменные).
2. Далее помещаем это всё в куки(Cookie).
3. После всего проделанного с помощью PHP достаём из Cookie наш массив, проверяем и убеждаемся что всё ок,
и далее делаем манипуляции с панелями.

Аватар пользователя gun_dose gun_dose 14 октября 2017 в 23:51

А чем различаются варианты для разных размеров и браузеров? Если на мобиле меньше контента, то можно этот минимум грузить сразу, затем через js определять размер окна и догружать нужное аяксом. Для интернет-эксплорера можно написать отдельный стиль, который будет срабатывать при наличии нужного класса в body, а сам этот класс вешать джаваскриптом.