Мобильная версия сайта Drupal

С распостранением мобильных устройств стало актуальным создание мобильной версии сайта. От обычной она отличается более усеченным функционалом. Как правило, такая версия имеет одну колонку, большие кнопки для удобного попадания пальцем и более крупный шрифт: могут быть другие особенности.

Для мобильной версии создается отдельная тема, которая тестируется при помощи модуля theme_key.  В модуле делается настройка для определенного аккаунта (например, develop) входить в мобильную версию с обычного компьютера. После создания мобильной темы, делается переключение на мобильную для определенных устройств. Используется модуль mobile_detect и библиотека Mobile_Detect.php . Как правило, производится выбор темы для устройств Tablet (планшет) и Mobile . В терминах библиотеки Mobile_Detect, мобильные устройства включают в себя как смартфоны, так и планшеты, поэтому, сначала обговаривается тема для планшета, затем - для остальных мобильных устройств.

Если, кроме автоматического переключения на нужную тему в зависимости от устройства, требуется и ручное переключение - применяется модуль switchtheme . Модуль нами переработан:

  • В настройках модуля задается наименование для полной и мобильной версий, наименование выводится в блоке переключения, автоматически добавляя скрипт переключения при помощи ссылки (а не формы)
  • Исправлены ошибки при переходе на новую версию и другие мелкие огрехи

При использовании кеширования для анонимных пользователей, возникают новые проблемы. Так как в Друпале кеш не зависит от темы и в базе данных хранится один экземпляр для каждой страницы, то может возникнуть ситуация, когда пользователи полной версии видят мобильный вариант, и наоборот. Решение найдено в виде разделения кеша для типов устройств: Desktop(обычный кеш), Tablet(кеш для планшетов), Mobile(кеш для прочих мобильных устройств). Реализация такого кеша в подмодуле mobile_detect_caching .