Динамическая смена редактора тектса
Сегодня столкнулся с проблемой, на сайт невозможно было написать с мобильных устройств т.к. используется редактор tinymce.
В общем подумал и решил так: распарсить $_SERVER['HTTP_USER_AGENT'] и если по ту сторону провода компьютер то подсовываю tinymce, ну а если нет то стандартный редактор который нормально работает со всем подряд.
Вот код который надо вставить в config.local
в config на всякий случай надо запретить использование tinymce
Потом я сталкнулся с другой проблемой, на сайте стоит acesearch который использует aceadminpanel, и уже aceadminpanel записывает конфигурацию которая мешала нормальному функционированию моегоговночудо кода.
Искал долго, в итоге нашел в файле aceadminpanel/config/config.custom.php немного изменил 29 строку:
$key != 'view.tinymce' — запрещает записывать конфигурацию использования tinymce и настройке в итоге берутся с config.local.
Может кому пригодиться.
В общем подумал и решил так: распарсить $_SERVER['HTTP_USER_AGENT'] и если по ту сторону провода компьютер то подсовываю tinymce, ну а если нет то стандартный редактор который нормально работает со всем подряд.
Вот код который надо вставить в config.local
if (isset($_SERVER['HTTP_USER_AGENT'])){
$browsers = array(
'Flock' => 'Flock',
'Chrome' => 'Chrome',
'Opera' => 'Opera',
'MSIE' => 'Internet Explorer',
'Internet Explorer' => 'Internet Explorer',
'Shiira' => 'Shiira',
'Firefox' => 'Firefox',
'Chimera' => 'Chimera',
'Phoenix' => 'Phoenix',
'Firebird' => 'Firebird',
'Camino' => 'Camino',
'Netscape' => 'Netscape',
'OmniWeb' => 'OmniWeb',
'Safari' => 'Safari',
'Mozilla' => 'Mozilla',
'Konqueror' => 'Konqueror',
'icab' => 'iCab',
'Lynx' => 'Lynx',
'Links' => 'Links',
'hotjava' => 'HotJava',
'amaya' => 'Amaya',
'IBrowse' => 'IBrowse'
);
$platforms = array (
'windows nt 6.2' => 'Windows 8',
'windows nt 6.1' => 'Windows 7',
'windows nt 6.0' => 'Windows Vista',
'windows nt 5.2' => 'Windows 2003',
'windows nt 5.0' => 'Windows 2000',
'windows nt 5.1' => 'Windows XP',
'windows nt 4.0' => 'Windows NT 4.0',
'winnt4.0' => 'Windows NT 4.0',
'winnt 4.0' => 'Windows NT',
'winnt' => 'Windows NT',
'windows 98' => 'Windows 98',
'win98' => 'Windows 98',
'windows 95' => 'Windows 95',
'win95' => 'Windows 95',
'windows' => 'Unknown Windows OS',
'os x' => 'Mac OS X',
'ppc mac' => 'Power PC Mac',
'freebsd' => 'FreeBSD',
'ppc' => 'Macintosh',
'linux' => 'Linux',
'debian' => 'Debian',
'sunos' => 'Sun Solaris',
'beos' => 'BeOS',
'apachebench' => 'ApacheBench',
'aix' => 'AIX',
'irix' => 'Irix',
'osf' => 'DEC OSF',
'hp-ux' => 'HP-UX',
'netbsd' => 'NetBSD',
'bsdi' => 'BSDi',
'openbsd' => 'OpenBSD',
'gnu' => 'GNU/Linux',
'unix' => 'Unknown Unix OS',
);
$mobiles = array(
'mobileexplorer' => 'Mobile Explorer',
'palmsource' => 'Palm',
'palmscape' => 'Palmscape',
#Phones and Manufacturers
'motorola' => 'Motorola',
'nokia' => 'Nokia',
'palm' => 'Palm',
'iphone' => 'Apple iPhone',
'ipad' => 'iPad',
'ipod' => 'Apple iPod Touch',
'sony' => 'Sony Ericsson',
'ericsson' => 'Sony Ericsson',
'blackberry' => 'BlackBerry',
'cocoon' => 'O2 Cocoon',
'blazer' => 'Treo',
'lg' => 'LG',
'amoi' => 'Amoi',
'xda' => 'XDA',
'mda' => 'MDA',
'vario' => 'Vario',
'htc' => 'HTC',
'samsung' => 'Samsung',
'sharp' => 'Sharp',
'sie-' => 'Siemens',
'alcatel' => 'Alcatel',
'benq' => 'BenQ',
'ipaq' => 'HP iPaq',
'mot-' => 'Motorola',
'playstation portable' => 'PlayStation Portable',
'hiptop' => 'Danger Hiptop',
'nec-' => 'NEC',
'panasonic' => 'Panasonic',
'philips' => 'Philips',
'sagem' => 'Sagem',
'sanyo' => 'Sanyo',
'spv' => 'SPV',
'zte' => 'ZTE',
'sendo' => 'Sendo',
#Operating Systems
'symbian' => 'Symbian',
'SymbianOS' => 'SymbianOS',
'elaine' => 'Palm',
'palm' => 'Palm',
'series60' => 'Symbian S60',
'windows ce' => 'Windows CE',
'android' => 'Android',
#Browsers
'obigo' => 'Obigo',
'netfront' => 'Netfront Browser',
'openwave' => 'Openwave Browser',
'mobilexplorer' => 'Mobile Explorer',
'operamini' => 'Opera Mini',
'opera mini' => 'Opera Mini',
'opera mobile' => 'Opera Mobile',
'mobile safari' => 'Mobile Safari',
#Other
'digital paths' => 'Digital Paths',
'avantgo' => 'AvantGo',
'xiino' => 'Xiino',
'novarra' => 'Novarra Transcoder',
'vodafone' => 'Vodafone',
'docomo' => 'NTT DoCoMo',
'o2' => 'O2',
#Fallback
'mobile' => 'Generic Mobile',
'wireless' => 'Generic Mobile',
'j2me' => 'Generic Mobile',
'midp' => 'Generic Mobile',
'cldc' => 'Generic Mobile',
'up.link' => 'Generic Mobile',
'up.browser' => 'Generic Mobile',
'smartphone' => 'Generic Mobile',
'cellphone' => 'Generic Mobile'
);
function __GetUserBrowser___( $list )
{
foreach ($list as $key => $val)
{
if (preg_match('|'.preg_quote($key).'|i', $_SERVER['HTTP_USER_AGENT']))
{
return $val;
break;
}
}
}
if( __GetUserBrowser___($browsers) == true )
{
if( __GetUserBrowser___($platforms) == true )
{
if( __GetUserBrowser___($mobiles) == false )
{
$get_user_agent = __GetUserBrowser___($browsers).' '.__GetUserBrowser___($platforms);
}
else $get_user_agent = false;
}
else $get_user_agent = false;
}
else $get_user_agent = false;
if($get_user_agent == true) $config['view']['tinymce'] = true; // использовать или нет визуальный редактор TinyMCE для браузеров
else $config['view']['tinymce'] = false; // ЗАПРЕТИТЬ использовать или нет визуальный редактор TinyMCE для мобильных
}
в config на всякий случай надо запретить использование tinymce
$config['view']['tinymce'] = false;
Потом я сталкнулся с другой проблемой, на сайте стоит acesearch который использует aceadminpanel, и уже aceadminpanel записывает конфигурацию которая мешала нормальному функционированию моего
Искал долго, в итоге нашел в файле aceadminpanel/config/config.custom.php немного изменил 29 строку:
if ($key != 'view.tinymce' AND ($key != 'view.skin')
$key != 'view.tinymce' — запрещает записывать конфигурацию использования tinymce и настройке в итоге берутся с config.local.
Может кому пригодиться.
6 комментариев
files.mail.ru/7N4E2U
Заменил на
Т.е. плагин не скин меняет а редактор.