1с-Битрикс управление сайтом

Продление лицензий 1С-Битрикс: Управление сайтом
У нас вы можете приобрести продукты и продления лицензий 1С-Битрикс без наценок и бюрократии.

Битрикс24

Продление лицензий Битрикс24
У нас вы можете приобрести продукты и продления лицензий Битрикс24 без наценок и бюрократии.
Назад

Как в битрикс сделать отдельный шаблон для мобильных устройств

Как
Главная
Блог
Как в битрикс сделать отдельный шаблон для мобильных устройств

Данная инструкция описывает процесс настройки адаптивной версии сайта на платформе 1С-Битрикс с автоматическим определением типа устройства пользователя. Реализация позволяет предоставлять пользователям оптимальную версию сайта в зависимости от используемого устройства (компьютер, планшет или телефон), а также сохранять выбор пользователя для последующих посещений.

Подготовительные работы

Загрузка библиотеки Mobile_Detect

  1. Скачайте актуальную версию библиотеки Mobile_Detect с официального сайта: http://mobiledetect.net/

  2. Разместите файл Mobile_Detect.php в директории /local/php_interface/classes/Mobile-Detect/

Пример структуры папок:

/local/
  /php_interface/
    /classes/
      /Mobile-Detect/
        Mobile_Detect.php

Настройка системы определения типа устройства

Инициализация в init.php

Добавьте следующий код в файл /local/php_interface/init.php:

<?php
// Определение типа сайта на основе cookie или GET-параметров
if (isset($_GET['type'])) {
    switch ($_GET['type']) {
        case 'pda':
            // Установка cookie для мобильной версии на 30 дней
            setcookie('siteType', 'pda', time() + 3600 * 24 * 30, '/');
            define('siteType', 'pda');
            break;
        default:
            // Установка cookie для полной версии на 30 дней
            setcookie('siteType', 'original', time() + 3600 * 24 * 30, '/');
            define('siteType', 'original');
    }
} else {
    $checkType = '';
    if (isset($_COOKIE['siteType'])) {
        $checkType = $_COOKIE['siteType'];
    }
    switch ($checkType) {
        case 'pda':
            define('siteType', 'pda');
            break;
        default:
            define('siteType', '');
    }
}
?>

Принцип работы:

  • Система проверяет наличие GET-параметра type

  • При значении type=pda устанавливается мобильная версия

  • При отсутствии параметра проверяются cookie пользователя

  • Результат сохраняется в константе siteType

Настройка десктопного шаблона

Добавление кода в основной шаблон

В начало десктопного шаблона (например, header.php) добавьте:

<?php
// Подключение библиотеки Mobile_Detect
require_once $_SERVER['DOCUMENT_ROOT'] . '/local/php_interface/classes/Mobile-Detect/Mobile_Detect.php';
$detect = new Mobile_Detect;
$deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');

// Перенаправление на мобильную версию для телефонов
if ($deviceType == 'phone' && siteType != 'original') {
    $separator = (strpos($APPLICATION->GetCurPageParam(), "?") !== false) ? "&" : "?";
    LocalRedirect($APPLICATION->GetCurPageParam() . $separator . "type=pda");
    exit();
}
?>

Пример использования:

// В шаблоне можно использовать условие для разного отображения
if (siteType == 'pda') {
    // Мобильная версия
    $APPLICATION->SetAdditionalCSS('/mobile-styles.css');
} else {
    // Десктопная версия  
    $APPLICATION->SetAdditionalCSS('/desktop-styles.css');
}

Настройка мобильного шаблона

Добавление кода в мобильный шаблон

В начало мобильного шаблона добавьте:

<?php
// Подключение библиотеки Mobile_Detect
require_once $_SERVER['DOCUMENT_ROOT'] . '/local/php_interface/classes/Mobile-Detect/Mobile_Detect.php';
$detect = new Mobile_Detect;
$deviceType = ($detect->isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer');

// Перенаправление на десктопную версию для компьютеров и планшетов
if ($deviceType != 'phone' && siteType != 'pda') {
    $separator = (strpos($APPLICATION->GetCurPageParam(), "?") !== false) ? "&" : "?";
    LocalRedirect($APPLICATION->GetCurPageParam() . $separator . "type=original");
    exit();
}
?>

Настройка в административной панели

Привязка шаблонов к условиям

  1. Перейдите в раздел "Настройки сайта" → "Шаблоны сайтов"

  2. Для мобильного шаблона задайте условие:

    • Тип условия: "PHP-выражение"

    • Условие: siteType=='pda'

  3. Для основного шаблона установите условие по умолчанию или противоположное условие

Пример настройки шаблонов:

  • Основной шаблон: Условие siteType!='pda' или "По умолчанию"

  • Мобильный шаблон: Условие siteType=='pda'

Дополнительные возможности

Добавление переключателя версий

Для предоставления пользователям возможности ручного переключения между версиями, добавьте в шаблоны ссылки:

<!-- В мобильной версии -->
<a href="?type=original">Полная версия сайта</a>

<!-- В десктопной версии -->
<a href="?type=pda">Мобильная версия</a>

Пример обработки различных устройств

$detect = new Mobile_Detect;

// Проверка конкретных устройств
if ($detect->is('iPhone')) {
    // Особые настройки для iPhone
    $APPLICATION->SetPageProperty('special-script', 'iphone-fixes.js');
}

// Проверка конкретных ОС
if ($detect->is('iOS')) {
    // Настройки для iOS
} elseif ($detect->is('AndroidOS')) {
    // Настройки для Android
}

Заключение

Представленная реализация обеспечивает:

  • Автоматическое определение типа устройства пользователя

  • Сохранение выбора версии сайта в cookie

  • Возможность ручного переключения между версиями

  • Корректную работу с SEO (использование корректных редиректов)

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

Нужна помощь с разработкой на Битрикс?

Мы внедрим профессиональную архитектуру данных в ваш проект. Избавим от глобальных переменных и настроим чистый код с использованием штатного API.

Получить консультацию
Читайте по теме
Все статьи
Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Все статьи