Пожалуйста, сделайте резервные копии перед внесением изменений.
Правки будут вноситься всего в 2 файла:
/engine/modules/function.php
/engine/init.php
Создать различные шаблоны для различных устройств
Cтандартный (указанный в админке) - Компьютеры/Ноутбуки/Нетбуки(на WindowsNT)
tabletpc - Планшеты (Android/IOS/WindowsPhone)(втч Galaxy Note) / Нетбуки(Android/WindowsCE)
smartphone - Смартфоны
mobphone - Телефоны на J2ME
В файл /engine/modules/function.php:
В конце файла, перед:
?>
Вставить:
// MobTPL fix
function check_device() {
if(!empty($_GET['mobtpl'])){
if($_GET['mobtpl']=='phone'){ $_SESSION['mobtpl']='phone'; return 'phone';}
else if($_GET['mobtpl']=='smart'){ $_SESSION['mobtpl']='smart'; return 'smart';}
else if($_GET['mobtpl']=='tablet'){ $_SESSION['mobtpl']='tablet'; return 'tablet';}
else if($_GET['mobtpl']=='pc'){ $_SESSION['mobtpl']='pc'; return 'pc';}
else if($_GET['mobtpl']=='reset'){ unset($_SESSION['mobtpl']);}
}else{
if(!empty($_SESSION['mobtpl'])){
if($_SESSION['mobtpl']=='phone') return 'phone';
else if($_SESSION['mobtpl']=='smart') return 'smart';
else if($_SESSION['mobtpl']=='tablet') return 'tablet';
else if($_SESSION['mobtpl']=='pc') return 'pc';
}
}
$device_array = array(
'ip.*opera\smini'=>'smart', // Opera Mini для I-устройств
'android.*gt\-s'=>'smart', // Android Samsung Galaxy S gt-sXXXX (смартфон)
'android.*gt\-n'=>'tablet', // Android Samsung Galaxy Note gt-nXXXX (минипланшет)
'android.*gt\-p'=>'tablet', // Android Samsung Galaxy Tab gt-pXXXX (планшет)
// тут необходимо добавить тесты на других планшетах под андроид: HTC, VSonic, Китайцы
'android'=>'smart', // всех остальных андроидов относим к смартам
'pocket'=>'smart', // HP
'palm'=>'smart', // Palm/HP
'webos'=>'smart', // Palm/HP WebOS
'fennec'=>'smart', // Mobile Firefox
'windows\s?ce'=>'tablet', //'windowsce'=>'smart', // навигаторы и китайские устройства на windows ce
'mobile\swindows'=>'smart', // Смартфоны на Windows Mobile
'wp7'=>'smart', // Windows Phone 7
'wp8'=>'smart', // Windows Phone 8 (необходимы доп тесты на пленшете под windows phone)
'cellphone'=>'phone',
'opera\s?mobi'=>'smart', //'operamobi'=>'phone', // Opera Mobile
'opera\smini'=>'phone', // Opera Mini
'iphone'=>'smart', // Apple IPhone
'ipod'=>'smart', // Apple IPod Toch
'ipad'=>'tablet', // Apple IPad
'sharp'=>'phone',
'symbian'=>'smart',
'symbos'=>'smart',
'htc\_'=>'smart',
'sonyericsson'=>'phone',
'nokia'=>'phone',
'samsung'=>'phone',
'motorola'=>'phone',
'blackberry'=>'smart', // смартфон Blackberry
'playstation\sportable'=>'smart', // Sony PSP
'rim\stablet'=>'tablet', // планшет Blackberry
'small'=>'smart',
'tablet\sbrowser'=>'tablet',
'smartphone'=>'smart',
'touch'=>'tablet',
'tablet'=>'tablet'
// боты поисковые
// Scooter Ask Jeeves fast googlebot slurp lycos Simple Yandex Stack aport111
);
$agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
$rtrn='pc';
foreach ($device_array as $key => $value){
$pattern="/".$key."/ix"; //echo $key.'';
if(preg_match($pattern,$agent,$find)){ $rtrn=$value; break;}
}
return $rtrn;
}
// .MobTPL fix
В файле /engine/init.php
Вместо:
if ( ($config['allow_smartphone'] AND !$_SESSION['mobile_disable'] AND $tpl->smartphone) OR $_SESSION['mobile_enable'] ) {
if ( @is_dir ( ROOT_DIR . '/templates/smartphone' ) ) {
$config['skin'] = "smartphone";
$smartphone_detected = true;
$config['allow_comments_wysiwyg'] = 0;
}
}
Вставить:
// MobTPL fix
if ( $config['allow_smartphone'] ) {
$smartphone_detected = $_SESSION['mobile_disable'] = $_SESSION['mobile_enable'] = false;
$device=check_device();
if ( $device == 'tablet' && @is_dir ( ROOT_DIR . '/templates/tabletpc' ) ) {
$config['skin'] = "tabletpc";
$smartphone_detected = true;
$config['allow_comments_wysiwyg'] = 0;
}elseif ( $device == 'phone' && @is_dir ( ROOT_DIR . '/templates/mobphone' ) ) {
$config['skin'] = "mobphone";
$smartphone_detected = true;
$config['allow_comments_wysiwyg'] = 0;
} elseif ( $device == 'smart' && @is_dir ( ROOT_DIR . '/templates/smartphone' ) ) {
$config['skin'] = "smartphone";
$smartphone_detected = true;
$config['allow_comments_wysiwyg'] = 0;
}
}
// .MobTPL fix
При необходимости, добавить ссылки на жесткое переключение типов шаблонов для пользователя.
Внимание!!!
После переключения тип устройства будет игнорироваться
<a href="/index.php?mobtpl=pc" title="Включить стандартный шаблон">ПК</a>
<a href="/index.php?mobtpl=phone" title="Включить шаблон для мобильных телефонов">Телефон</a>
<a href="/index.php?mobtpl=smart" title="Включить шаблон для смартфонов и наладонников">Смартфон</a>
<a href="/index.php?mobtpl=tablet" title="Включить шаблон для планшетов">Планшет</a>
<a href="/index.php?mobtpl=reset" title="Сбросить настройки шаблонов">Сбросить</a>
Пожалуйста, сделайте резервные копии перед внесением изменений.
Правки будут вноситься всего в 3 файла:
/engine/modules/function.php
/engine/init.php
/engine/classes/templates.class.php
Создать различные шаблоны для различных устройств
Cтандартный (указанный в админке) - Компьютеры/Ноутбуки/Нетбуки(на WindowsNT)
tabletpc - Планшеты (Android/IOS/WindowsPhone)(втч Galaxy Note) / Нетбуки(Android/WindowsCE)
smartphone - Смартфоны
mobphone - Телефоны на J2ME
В файл /engine/modules/function.php:
В конце файла, перед:
?>
Вставить:
// MobTPL fix mobiledetect.net
function check_device_std() {
global $tpl;
if(!empty($_GET['mobtpl'])){
if($_GET['mobtpl']=='phone'){ $_SESSION['mobtpl']='phone'; return 'phone';}
else if($_GET['mobtpl']=='smart'){ $_SESSION['mobtpl']='smart'; return 'smart';}
else if($_GET['mobtpl']=='tablet'){ $_SESSION['mobtpl']='tablet'; return 'tablet';}
else if($_GET['mobtpl']=='pc'){ $_SESSION['mobtpl']='pc'; return 'pc';}
else if($_GET['mobtpl']=='reset'){ unset($_SESSION['mobtpl']);}
}else{
if(!empty($_SESSION['mobtpl'])){
if($_SESSION['mobtpl']=='phone') return 'phone';
else if($_SESSION['mobtpl']=='smart') return 'smart';
else if($_SESSION['mobtpl']=='tablet') return 'tablet';
else if($_SESSION['mobtpl']=='pc') return 'pc';
}
}
if ( $tpl->tablet ) return 'tablet';
if ( $tpl->phone ) return 'phone';
if ( $tpl->smartphone ) return 'smart';
}
// .MobTPL fix mobiledetect.net
В файле /engine/init.php
Вместо:
if ( ($config['allow_smartphone'] AND !$_SESSION['mobile_disable'] AND $tpl->smartphone) OR $_SESSION['mobile_enable'] ) {
if ( @is_dir ( ROOT_DIR . '/templates/smartphone' ) ) {
$config['skin'] = "smartphone";
$smartphone_detected = true;
$config['allow_comments_wysiwyg'] = 0;
}
}
Вставить:
// MobTPL fix mobiledetect.net
if ( $config['allow_smartphone'] ) {
$smartphone_detected = $_SESSION['mobile_disable'] = $_SESSION['mobile_enable'] = false;
$device=check_device_std();
if ( $device == 'tablet' && @is_dir ( ROOT_DIR . '/templates/tabletpc' ) ) {
$config['skin'] = "tabletpc";
$smartphone_detected = true;
$config['allow_comments_wysiwyg'] = 0;
}elseif ( $device == 'phone' && @is_dir ( ROOT_DIR . '/templates/mobphone' ) ) {
$config['skin'] = "mobphone";
$smartphone_detected = true;
$config['allow_comments_wysiwyg'] = 0;
} elseif ( $device == 'smart' && @is_dir ( ROOT_DIR . '/templates/smartphone' ) ) {
$config['skin'] = "smartphone";
$smartphone_detected = true;
$config['allow_comments_wysiwyg'] = 0;
}
}
// .MobTPL fix mobiledetect.net
В файле /engine/classes/templates.class.php
Вместо:
if ( $mobile_detect->isMobile() ) {
$this->smartphone = true;
$this->desktop = false;
}
if ( $mobile_detect->isTablet() ) {
$this->smartphone = false;
$this->desktop = false;
$this->tablet = true;
}
Вставить:
// MobTPL fix mobiledetect.net
if ( $mobile_detect->isTablet() ) {
$this->tablet = true;
} elseif ( $mobile_detect->isMobile() ) {
if($mobile_detect->mobileGrade() == 'C') $this->phone = true;
else $this->smartphone = true;
} else $this->desktop = true;
// .MobTPL fix mobiledetect.net
Найти:
var $tablet = false;
После нее вставить:
var $phone = false;
При необходимости, добавить ссылки на жесткое переключение типов шаблонов для пользователя.
Внимание!!!
После переключения тип устройства будет игнорироваться
<a href="/index.php?mobtpl=pc" title="Включить стандартный шаблон">ПК</a>
<a href="/index.php?mobtpl=phone" title="Включить шаблон для мобильных телефонов">Телефон</a>
<a href="/index.php?mobtpl=smart" title="Включить шаблон для смартфонов и наладонников">Смартфон</a>
<a href="/index.php?mobtpl=tablet" title="Включить шаблон для планшетов">Планшет</a>
<a href="/index.php?mobtpl=reset" title="Сбросить настройки шаблонов">Сбросить</a>
Для компании «Альфатракт» мы разработали уникальный и функциональный дизайн-макет интернет-магазина Parts-Soft, который стал надежной платформой для продажи запчастей к технике «МАЗ». Наша задача...
В нашем портфолио представлены проекты, которые демонстрируют наш подход к созданию эффективных и функциональных веб-решений. Одним из ярких примеров нашей работы является проект для компании...
Мы представляем проект — корпоративный сайт для юридического бюро, предоставляющего услуги в Санкт-Петербурге и Москве. Наша команда разработала современный и функциональный веб-ресурс, который...
Мы рады представить новый сайт для компании "Кузовостроитель", специализирующейся на эвакуаторах производства Metro Tow Trucks. Одним из основных преимуществ компании Metro Tow Trucks является...
Корпоративный сайт завода изготовителя из Гатчины (Лен.Область). Завод осуществляет производство и комплексные поставки: ШТС,СТАКАНЫ ПЕРЕБОРОЧНЫЕ,ФЛАНЦЫ,РУКАВНЫЕ СОЕДИНЕНИЯ,ГРИБОВИДНЫЕ ГОЛОВКИ и...
Разработка лендинга для продавца коммерческой техники китайского бренда Dongfeng Пройдите длительный тест-драйв и испытайте DONGFENG под Ваши бизнес-задачи!...
Продажа крепежа и метизов по всей России....
ЭКСПОРТ / ИМПОРТ НОВОСТЕЙ DLE Плагин для DLE, позволяющий выгружать новости в CSV и загружать их на сайте. Модуль для DLE, позволяющий производить массовые изменения в опубликованных новостях путем...
Редизайн сайта компании ООО «КИТ-КОМПЛЕКТ» был необходим, чтобы улучшить пользовательский опыт и повысить конверсию. Старый сайт был устаревшим и не отвечал современным требованиям дизайна и...
Сайт одностраничник для промо-акции поставщика среднетонажной грузовой техники марки Dongfeng...