Пожалуйста, сделайте резервные копии перед внесением изменений.
Правки будут вноситься всего в 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>
Расширенная версия бесплатного плагина AMP4DLE Отличия следующие: - Поддержка тегов {fullimage-x} - Поддержка тегов похожих новостей {related-news} - Поддержка тегов [catlist=1,2....] текст [/catlist]...
Добавлена совместимость с DLE 14.1 Специальная версия бесплатного плагина AMTS с адмикой для удобной работы с выбором шаблонов для различный мобильных устройств. Плагин AMTS Pro by TCSE это еще один...
Модуль AMP страниц для DataLife Engine В качестве исходника - бесплатный модуль DomiTori Автоматическая генерация AMP версии страниц полной новости. Суффикс /amp.html в конце ссылки полной новости....
Кадрирование картинок на сайте для DLE Доработка плагина http://www.binarymoon.co.uk/projects/timthumb/ для использования в шаблона DLE CMS. Кадрирование изображений в публикациях сайта. Репозиторий...
Разработка сайта для интернет-издания "под ключ". Это второй проект для ООО «Да» издателя NEWSRUSSIA.MEDIA...
Еще дин классический новостной портал на основе DataLife Engine. Именно для подобных сайтов DLE оптимален. Тем приятнее было работать над данным проектом....
В Веб-браузере Chrome существует функция позволяющая добавлять любой сайт (при соблюдении ряда условий) в качестве веб-приложения на главный экран гаджета. Это так называемый режим PWA Ready. Краткое...
YouTube PopUp jQuery Plugin Для DataLife Engine. Теперь в виде плагина для простой установке в свой шаблон. Доработка плагина для использования в шаблона DLE CMS. Например для RSS информеров в...
Бесплатный Instagram виджет для сайта: Транслируйте ваши фотографии из Instagram.com прямо на вашем сайте. Оригинал скрипта на сайте разработчика http://inwidget.ru/ . Студия TCSE адаптировала скрипт...
Корпоративный сайт для ГК “Кузовостроитель” является эксклюзивным представителем компании EMPL на территории Российской Федерации. EMPL: История австрийской компании началась в 1926 году, когда Josef...