Перейти к содержимому
Открыть в приложении

Удобный способ просмотра. Узнать больше.

Дизайн и модификация Invision Community

Полноэкранное приложение на главном экране с push-уведомлениями, медалями и многим другим.

Чтобы установить это приложение на iOS и iPadOS
  1. Нажмите иконку «Поделиться» в Safari
  2. Прокрутите меню и нажмите На экран «Домой».
  3. Нажмите Добавить в правом верхнем углу.
Чтобы установить это приложение на Android
  1. Нажмите меню из трёх точек (⋮) в правом верхнем углу браузера.
  2. Нажмите Добавить на главный экран или Установить приложение.
  3. Подтвердите, нажав Установить.
Русский язык для Invision Community 5

Автоматизация выбора стиля в зависимости от устройства

Недавно создал новый стиль для мобильных гаджетов. И туда переопределил юзер-агентов, таких как iPad, iPhone, OperaMobile, Samsung и так далее. Стандартный мобильный стиль оставил для старых смартфонов, таких как Sony Ericsson, Motorola, Nokia и так далее.

 

Всё хорошо и отлично. Если для гостей всё нормально, то для зарегистрированных посетителей есть один нюанс - многие часто чередуют заходы на форум то с персонального компа, то с мобильного гаджета. А так как выбор стиля находиться в поле skin таблицы members, то пользователям приходиться постоянно переключать стиль вручную.

 

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

Рекомендованные сообщения

По умолчанию так и происходит, первым делом форум назначает стиль по юзерагенту, потом по остальным параметрам - '_fetchSkinByUserAgent', '_fetchSkinByURLMap', '_fetchSkinByApp', '_fetchSkinByMemberPrefs', '_fetchSkinByDefault'.

Но если пользователь начинает менять стили, в cookies и сессии устанавливается переменная uagent_bypass, которая запрещает переопределение стиля по юзерагенту. Действует это ограничение только во время жизни сессии или пока юзер не закроет браузер. Изменять что либо в этой логике не нужно, все правильно работает. Если отключить эту блокировку, на устройствах где стоит переопределение по юзерагенту сменить скин будет не возможно.

  • Автор

Действует это ограничение только во время жизни сессии или пока юзер не закроет браузер. Изменять что либо в этой логике не нужно, все правильно работает. Если отключить эту блокировку, на устройствах где стоит переопределение по юзерагенту сменить скин будет не возможно.

То есть, более или менее "безопасный" режим это только уменьшить время жизни сессии?

Единственно безопасный и правильный режим это объяснить пользователям, что если они меняют стиль (не важно на каком устройстве) переопределение по изерагенту сохраняется до следующего захода на форуме. Если они одновременно пользуются и мобильным и десктопным устройством, нужно сказать чтобы скин не меняли иначе блокируется переопределние по юзерагенту до следущего входа на форуме или пока не закроется браузер. Сессии и все остальное трогать не нужно. Калечить форум ради одного пользователя который в течение двух минут меняет 2 устройства тоже не имеет смысла.

  • Автор

Сессии и все остальное трогать не нужно. Калечить форум ради одного пользователя который в течение двух минут меняет 2 устройства тоже не имеет смысла.

Золотые слова - абсолютно согласен.

 

Кстати, вообще то я малость не договорил в начале темы - я думал что изначально движок сам автоматизирует этот процесс, просто новым мобильным стилем я где то сделал ошибку. Оказывается так и должно быть :)

 

P.S. Насчёт мобильного скина - что означает ссылка unlockUserAgent=1, это когда юзер в мобильном стиле кликает на кнопку полная версия. Хотел её убрать, что бы изначально был сразу выбор стилем, однако без кнопки полной версии идут глюки.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.