Forum Komputerowe || Forum informatyczne

Pełna wersja: [mybb] - konfiguracja useragenta aby po edycji nie zmienił się.
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
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:
Kod PHP:
$plugins->add_hook("datahandler_post_update""useragent_datahandler_post_update"); 
I usuwamy go!
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"falsetrue);
    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"falsetrue);
    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"falsetrue);
    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"falsefalse);
    
$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');
}
?>
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.
Za poradnik na twoje konto przesyłam 40€. win
Przekierowanie