05.04.2010, 13:54
Witam. Pokażę tutaj jak skonfigurować plugin useragent (wykrywanie systemu i przeglądarki przy postach)- UserAgent 1.6 autorstwa bryn'a.
Więc wchodzimy do naszego ftp.
inc/plugins
szukamy pliku useragent.php
modyfikacja:
szukamy takiego zapisu:
I usuwamy go!
Po tym plik powinien wyglądać tak:
oświadczam, iż usunięcie tego zapisu jest całkowicie bezpieczne i od tego czasu gdy np. napiszemy post z windowsa xp i np. opery i wyedytujemy z ubuntu i przeglądarki ff to nic się już nie zmieni. Myślę, że pomogłem - bo wiele osób się o to pyta.
Więc wchodzimy do naszego ftp.
inc/plugins
szukamy pliku useragent.php
modyfikacja:
szukamy takiego zapisu:
Kod PHP:
$plugins->add_hook("datahandler_post_update", "useragent_datahandler_post_update");
Po tym plik powinien wyglądać tak:
Kod PHP:
<?php
// I used pieces of code and icons I found somewhere by Google... hopefully I didn't break any copirights.
// Disallow direct access to this file for security reasons
if(!defined("IN_MYBB"))
{
die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}
function get_agents() // returns names of browser's and OS's icon files, without extension
{
$useragent = $_SERVER ? $_SERVER['HTTP_USER_AGENT'] : $HTTP_SERVER_VARS['HTTP_USER_AGENT'];
$ua = strtolower($useragent);
$ua_browser = 'unknown_b';
$ua_os = 'unknown_s';
// Browser detection:
if (strpos($ua, 'epiphany') !== false) $ua_browser = 'epiphany';
else if (strpos($ua, 'galeon') !== false) $ua_browser = 'galeon';
else if (strpos($ua, 'chrome') !== false) $ua_browser = 'chrome';
else if (strpos($ua, 'safari') !== false) $ua_browser = 'safari';
else if (strpos($ua, 'konqueror') !== false) $ua_browser = 'konqueror';
else if (strpos($ua, 'firefox') !== false) $ua_browser = 'firefox';
else if (strpos($ua, 'firebird') !== false) $ua_browser = 'firebird';
else if (strpos($ua, 'netscape') !== false) $ua_browser = 'netscape';
else if (strpos($ua, 'mozilla') !== false && strpos($ua, 'rv:') !== false) $ua_browser = 'mozilla';
else if (strpos($ua, 'opera') !== false)
{
if (strpos($ua, 'opera mini ') !== false) $ua_browser = 'operamini';
else $ua_browser = 'opera';
}
else if (strpos($ua, 'avant browser') !== false) $ua_browser = 'avant';
else if (strpos($ua, 'maxthon') !== false || strpos($ua, 'myie') !== false) $ua_browser = 'maxthon';
else if (strpos($ua, 'slimbrowser') !== false) $ua_browser = 'slimbrowser';
else if (strpos($ua, 'msie') !== false)
{
if (strpos($ua, 'msie 7.0') !== false) $ua_browser = 'ie7';
else $ua_browser = 'ie';
}
// OS detection:
if (strpos($ua, 'amiga') !== false) $ua_os = 'amiga';
else if (strpos($ua, 'beos; ') !== false) $ua_os = 'beos';
else if (strpos($ua, 'freebsd') !== false) $ua_os = 'freebsd';
else if (strpos($ua, 'linux') !== false)
{
if (strpos($ua, 'debian') !== false) $ua_os = 'linuxdebian';
else if (strpos($ua, 'fedora') !== false) $ua_os = 'linuxfedora';
else if (strpos($ua, 'gentoo') !== false) $ua_os = 'linuxgentoo';
else if (strpos($ua, 'kateos') !== false || strpos($ua, 'kate os') !== false) $ua_os = 'linuxkateos';
else if (strpos($ua, 'knoppix') !== false) $ua_os = 'linuxknoppix';
else if (strpos($ua, 'kubuntu') !== false) $ua_os = 'linuxkubuntu';
else if (strpos($ua, 'mandriva') !== false || strpos($ua, 'mandrake') !== false) $ua_os = 'linuxmandriva';
else if (strpos($ua, 'redhat') !== false || strpos($ua, 'red hat') !== false) $ua_os = 'linuxredhat';
else if (strpos($ua, 'slackware') !== false) $ua_os = 'linuxslackware';
else if (strpos($ua, 'suse') !== false) $ua_os = 'linuxsuse';
else if (strpos($ua, 'ubuntu') !== false) $ua_os = 'linuxubuntu';
else if (strpos($ua, 'arch') !== false) $ua_os = 'linuxarch';
else $ua_os = 'linux';
}
else if (strpos($ua, 'macosx') !== false || strpos($ua, 'macos') !== false || strpos($ua, 'mac os x') !== false || strpos($ua, 'macintosh') !== false || strpos($ua, 'os=mac') !== false || strpos($ua, 'mac_osx') !== false) $ua_os = 'macos';
else if (strpos($ua, 'macppc') !== false || strpos($ua, 'mac_ppc') !== false || strpos($ua, 'cpu=ppc;') !== false && strpos($ua, 'os=mac') !== false || strpos($ua, 'macintosh; ppc') !== false || strpos($ua, 'macintosh;') !== false && strpos($ua, 'ppc') !== false || strpos($ua, 'mac_powerpc') !== false) $ua_os = 'macos';
else if (strpos($ua, 'netbsd') !== false) $ua_os = 'netbsd';
else if (strpos($ua, 'sunos') !== false || strpos($ua, 'solaris') !== false) $ua_os = 'solaris';
else if (strpos($ua, 'symbian') !== false) $ua_os = 'symbian';
else if (strpos($ua, 'unix') !== false) $ua_os = 'unix';
else if (strpos($ua, 'windows nt 5.0') !== false || strpos($ua, 'windows 2000') !== false || strpos($ua, 'win2000') !== false || strpos($ua, 'winnt5.0') !== false) $ua_os = 'windows_98_nt_2000';
else if (strpos($ua, 'windows 95') !== false || strpos($ua, 'win95') !== false) $ua_os = 'windows_98_nt_2000';
else if (strpos($ua, 'windows me') !== false || strpos($ua, 'winme') !== false || strpos($ua, 'win9x 4.90') !== false || strpos($ua, 'win 9x 4.90') !== false) $ua_os = 'windows_me';
else if (strpos($ua, 'windows 98') !== false || strpos($ua, 'win98') !== false) $ua_os = 'windows_98_nt_2000';
else if (strpos($ua, 'windows nt 5.2') !== false || strpos($ua, 'winnt5.2') !== false) $ua_os = 'windows_98_nt_2000';
else if (strpos($ua, 'windows nt 5.1') !== false || strpos($ua, 'windows xp 5.1') !== false || strpos($ua, 'windows xp') !== false || strpos($ua, 'winxp') !== false || strpos($ua, 'winnt5.1') !== false || strpos($ua, 'cygwin_nt-5.1') !== false) $ua_os = 'windows_xp_2003';
else if (strpos($ua, 'windows nt 6.0') !== false || strpos($ua, 'winnt6.0') !== false) $ua_os = 'windows_vista';
else if (strpos($ua, 'windows nt 6.1') !== false || strpos($ua, 'winnt6.1') !== false) $ua_os = 'windows_7';
else if (strpos($ua, 'windows nt 4.0') !== false || strpos($ua, 'winnt4.0') !== false || strpos($ua, 'winnt') !== false || strpos($ua, 'windows nt') !== false) $ua_os = 'windows_98_nt_2000';
else if (strpos($ua, 'windows') !== false || strpos($ua, 'win') !== false) $ua_os = 'windows_xp_2003';
else if (strpos($ua, 'macintosh') !== false || strpos($ua, 'mac') !== false) $ua_os = 'macos';
$res = array($ua_browser,$ua_os);
$res[0] = 'icon_'.ereg_replace('[^a-z0-9_]', '', strtolower($res[0]));
$res[1] = 'icon_'.ereg_replace('[^a-z0-9_]', '', strtolower($res[1]));
return $res;
}
function make_cool_name($str,$acp=0)
{
$str = str_replace('icon_','',$str);
global $lang;
$lang->load("useragent", false, true);
switch($str)
{
case 'epiphany': return 'Epiphany';
case 'galeon': return 'Galeon';
case 'chrome': return 'Google Chrome';
case 'safari': return 'Safari';
case 'konqueror': return 'Konqueror';
case 'firefox': return 'Firefox';
case 'firebird': return 'Firebird';
case 'netscape': return 'Netscape';
case 'mozilla': return 'Mozilla';
case 'opera': return 'Opera';
case 'operamini': return 'Opera Mini';
case 'avant': return 'Avant Browser';
case 'maxthon': return 'Maxthon / MyIE2';
case 'slimbrowser': return 'SlimBrowser';
case 'ie': return 'Internet Explorer';
case 'ie7': return 'Internet Explorer 7';
case 'amiga': return 'Amiga';
case 'beos': return 'BeOS';
case 'freebsd': return 'FreeBSD';
case 'linuxdebian': return 'Linux Debian';
case 'linuxfedora': return 'Linux Fedora';
case 'linuxgentoo': return 'Linux Gentoo';
case 'linuxkateos': return 'Linux KateOS';
case 'linuxknoppix': return 'Linux Knoppix';
case 'linuxkubuntu': return 'Linux Kubuntu';
case 'linuxmandriva': return 'Linux Mandriva';
case 'linuxredhat': return 'Linux RedHat';
case 'linuxslackware': return 'Linux Slackware';
case 'linuxsuse': return 'Linux SuSE';
case 'linuxubuntu': return 'Linux Ubuntu';
case 'linuxarch': return 'Linux Arch';
case 'linux': return 'Linux';
case 'macos': return 'MacOS';
case 'netbsd': return 'NetBSD';
case 'solaris': return 'Solaris';
case 'symbian': return 'Symbian';
case 'unix': return 'UNIX';
case 'windows_98_nt_2000': return 'Windows 9x/NT/2000';
case 'windows_me': return 'Windows ME';
case 'windows_xp_2003': return 'Windows XP/2003';
case 'windows_vista': return 'Windows Vista';
case 'windows_7': return 'Windows 7';
case 'unknown_b':
{
if($acp==1) return $lang->ua_unknown_browser_acp;
else return $lang->ua_unknown_browser;
}
case 'unknown_s':
{
if($acp==1) return $lang->ua_unknown_system_acp;
else return $lang->ua_unknown_system;
}
default:
{
if($acp==1) return $lang->ua_unknown_system_acp;
else return $lang->ua_unknown_system;
}
}
}
$plugins->add_hook("datahandler_post_insert_post", "useragent_datahandler_post_insert_post");
$plugins->add_hook("datahandler_post_insert_thread_post", "useragent_datahandler_post_insert_thread_post");
$plugins->add_hook("admin_tools_menu", "useragent_admin_tools_menu");
$plugins->add_hook("admin_tools_action_handler", "useragent_admin_tools_action_handler");
$plugins->add_hook("postbit", "useragent_postbit");
function useragent_info()
{
global $lang;
$lang->load("useragent", false, true);
if(!isset($lang->ua_plugin_desc)) $lang->ua_plugin_desc = 'Shows icons and stats informing about poster\'s operating system and browser. <strong>Warning! Language files not found. Please make sure that you have properly uploaded the plugin.</string>';
return array(
"name" => "User Agent",
"description" => $lang->ua_plugin_desc,
"website" => "http://mybboard.pl/",
"author" => "bryn",
"authorsite" => "http://mybboard.pl/",
"version" => "1.5",
"guid" => "0532cbc5b87d335f1e46d3c63c288773",
"compatibility" => "14*",
);
}
function useragent_is_installed()
{
global $db;
$fields = $db->show_fields_from("posts");
foreach($fields as $field)
{
if(in_array('browser',$field)) return true;
}
return false;
}
function useragent_install()
{
global $db;
$query = $db->query("ALTER TABLE ".TABLE_PREFIX."posts ADD `system` VARCHAR( 32 ) DEFAULT 'icon_unknown_s' NOT NULL , ADD `browser` VARCHAR( 32 ) DEFAULT 'icon_unknown_b' NOT NULL");
}
function useragent_activate()
{
include MYBB_ROOT."/inc/adminfunctions_templates.php";
global $db;
find_replace_templatesets('postbit',"#".preg_quote('{$post[\'button_delete_pm\']}')."#",'{$post[\'button_delete_pm\']}{$post[\'icon_browser\']}{$post[\'icon_os\']}');
find_replace_templatesets('postbit_classic',"#".preg_quote('{$post[\'button_delete_pm\']}</td>')."#",'{$post[\'button_delete_pm\']}{$post[\'icon_browser\']}{$post[\'icon_os\']}</td>');
$update_query_array = array('browser' => 'icon_unknown_b');
$db->update_query('posts',$update_query_array,'`browser`=\'icon_unknown\'');
$update_query_array = array('system' => 'icon_unknown_s');
$db->update_query('posts',$update_query_array,'`system`=\'icon_unknown\'');
}
function useragent_deactivate()
{
include MYBB_ROOT."/inc/adminfunctions_templates.php";
find_replace_templatesets('postbit',"#".preg_quote('{$post[\'icon_browser\']}{$post[\'icon_os\']}')."#",'',0);
find_replace_templatesets('postbit_classic',"#".preg_quote('{$post[\'icon_browser\']}{$post[\'icon_os\']}</td>')."#",'</td>',0);
}
function useragent_uninstall()
{
global $db;
$query = $db->query("ALTER TABLE ".TABLE_PREFIX."posts DROP `system` , DROP `browser`");
}
function useragent_datahandler_post_update($it)
{
$ua = get_agents();
$it->post_update_data['browser'] = $ua[0];
$it->post_update_data['system'] = $ua[1];
return $it;
}
function useragent_datahandler_post_insert_post($it)
{
$ua = get_agents();
$it->post_update_data['browser'] = $ua[0];
$it->post_update_data['system'] = $ua[1];
$it->post_insert_data['browser'] = $ua[0];
$it->post_insert_data['system'] = $ua[1];
return $it;
}
function useragent_datahandler_post_insert_thread_post($it)
{
$ua = get_agents();
$it->post_insert_data['browser'] = $ua[0];
$it->post_insert_data['system'] = $ua[1];
return $it;
}
function useragent_postbit($it)
{
global $lang;
$lang->load("useragent", false, true);
if($it['browser']!='') $it['icon_browser'] = ' <img src="images/useragent/'.$it['browser'].'.gif" alt="'.make_cool_name($it['browser']).'" title="'.$lang->ua_used.' '.make_cool_name($it['browser']).'" />';
if($it['system']!='') $it['icon_os'] = ' <img src="images/useragent/'.$it['system'].'.gif" alt="'.make_cool_name($it['system']).'" title="'.$lang->ua_used.' '.make_cool_name($it['system']).'" />';
}
function useragent_admin_tools_menu($sub_menu)
{
global $lang;
$lang->load("useragent", false, false);
$sub_menu['70'] = array("id" => "useragent", "title" => $lang->ua_menuitem, "link" => "index.php?module=tools/useragent");
}
function useragent_admin_tools_action_handler($actions)
{
$actions['useragent'] = array('active' => 'useragent', 'file' => 'useragent.php');
}
?>