Получить HTTP_USER_AGENT в модуле (InstantCMS 1.X)

как узнать в модуле на чем запущено?

#1 7 сентября 2018 в 21:47
В template.php отлично отрабатывает получение HTTP_USER_AGENT
  1. $ismobile = preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
  2.  
В зависимости от него вывожу или нет часть блоков.

Понадобилось допилить модуль вывода новостей с колонками. В мобильной версии хочется выводить только 1 колонку, на ПК — 2.
Но, указанный выше код — не работает. Дорабатывать пытался module.php

Собственно вопрос — как сделать получение $_SERVER["HTTP_USER_AGENT"] в модуле или где и как прописать $ismobile — что бы его можно было считать в модулях?
#2 8 сентября 2018 в 15:58
Как-то так
  1. <?php
  2. $ismobile = preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
  3. if($ismobile){ ?>
  4. Колонка для мобильных устройств
  5. <?php } else { ?>
  6. Колонка для пк
  7. <?php } ?>
#3 8 сентября 2018 в 17:37


Как-то так

ХурумБурум

У меня как раз так, но, вопрос в том, что В МОДУЛЯХ не отрабатывает! 😥
То есть $ismobile всегда уходит в else, вне зависимости от мобильника или нет.
В template.php это работает, а в модулях — нет 😥

У меня и вопрос — как сделать так, что бы это (или что то подобное) работало в модулях.
#4 8 сентября 2018 в 17:49
konst, так может дело в том, что модуль кэшируется? — соотвественно условие не проверяется каждый раз.
#5 8 сентября 2018 в 18:12
Ты гений!!! 😊
Я затратил 6 часов что бы хоть как то решить проблему, а надо было отрубить кэширование! :--)
Позже переделаю на раздельные модули для мобильника и компа, а пока пусть так 😊
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.