Пошук по сайту
Результати пошуку за тегами 'mobile'.
Найдено 2 результата
-
Всем доброго дня и с праздниками! Если вдруг кто-то хочет запускать различные темы в кабинете пользователя, в зависимости от типа устройства, вам потребуется произвести некоторые манипуляции с php кодом кабинета, ну и вот вам моё (может неказистое, но рабочее) решение: На гитхабе уже существует php проект, определяющий тип устройства, поэтому не выдумываем и будем использовать его: https://github.com/serbanghita/Mobile-Detect/ Для начала, нужно подключить его вконце index.php: require_once 'Mobile_Detect.php'; //Detect library Далее, нужно создать объект класса: $detect = new Mobile_Detect; //Class object Вообще, верхний код я без зазрения совести скопипастил с какой-то статьи из интернета, говорят, это экономит время. Теперь, к самой сути: if($detect->isMobile()) { zbs_ShowTemplate("default-mobile"); } else { zbs_ShowTemplate("default"); } Здесь мы вытаскиваем из класса необходимое условие, в зависимости от которого, будем выполнять необходимые манипуляции с кабинетом. В данном случае загружается конкретный шаблон в том случае, если устройство определено как 'mobile', и обычный (любой другой) шаблон, если условие не соблюдено. К слову, mobile_detect.php умеет не только различать десктоп от мобильных платформ, но и конкретизировать систему, к примеру isAndroidOS() соответственно, укажет на то, что платформа определилась как андроид. Полный список параметров доступен на странице проекта на гитхабе, я полагаю. Мне хватило пока что isMobile() Но есть еще один нюанс. С завода, функция zbs_ShowTemplate() загружает тему, указанную в config.php и не умеет загружать принудительно указанную тему, как мы это сделали в скобках выше. Но мы её научим. Нужно открыть файл /modules/engine/api.compat.php И найти там описание функции : function zbs_ShowTemplate() Ну и меняем её содержимое на что-то вот такое: function zbs_ShowTemplate($tpath) { global $ContentContainer; if(!isset($tpath)){ include (zbs_GetCurrentSkinPath() . 'template.html'); } else { $basePath = 'skins/'; include $basePath . $tpath . '/' . 'template.html'; } } Что мы сделали? Мы добавили в объявлении функции возможность указания темы через переменную $tpath в скобках и просто подставляем его вместо пути к директории шаблона. Кстати, в таком виде, пропал функционал определения шаблона из конфига, да и вообще половина кода в функции не нужна стала. Но поскольку тут всё просто, то вы можете с легкостью исправить это сами. Всем добра
- 2 ответа
-
- ubilling
- личный кабинет
- (та 3 ще)
-
