Вход Регистрация
Файл: apwa/includes/hooks/hook_mobile.php
Строк: 100
<?php
/**
* @package phpBB Hook Mobile Addon
* @version $Id$
* @copyright 2014 Anv@r.all (c) BB3.Mobi
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/

if (!defined('IN_PHPBB'))
{
    exit;
}

function 
request_url($get_path false$clear false)
{
    global 
$config$user$phpbb_seo;

    
$server_name $user->host;
    
$server_port = (!empty($_SERVER['SERVER_PORT'])) ? (int) $_SERVER['SERVER_PORT'] : (int) getenv('SERVER_PORT');

    
// Forcing server vars is the only way to specify/override the protocol
    
if ($config['force_server_vars'] || !$server_name)
    {
        
$server_protocol = ($config['server_protocol']) ? $config['server_protocol'] : (($config['cookie_secure']) ? 'https://' 'http://');
        
$server_name $config['server_name'];
        
$server_port = (int) $config['server_port'];

        
$url $server_protocol $server_name;
        
$cookie_secure $config['cookie_secure'];
    }
    else
    {
        
// Do not rely on cookie_secure, users seem to think that it means a secured cookie instead of an encrypted connection
        
$cookie_secure = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 0;
        
$url = (($cookie_secure) ? 'https://' 'http://') . $server_name;
    }

    if (
$server_port && (($cookie_secure && $server_port <> 443) || (!$cookie_secure && $server_port <> 80)))
    {
        
// HTTP HOST can carry a port number (we fetch $user->host, but for old versions this may be true)
        
if (strpos($server_name':') === false)
        {
            
$url .= ':' $server_port;
        }
    }

    if(!isset(
$phpbb_seo))
    {
        if (isset(
$_SERVER['REQUEST_URI']))
        {
            
$url .= $_SERVER['REQUEST_URI'];
        }
        else if (isset(
$_SERVER['argv'])) 
        {
            
$url .= $_SERVER['SCRIPT_NAME'] .'?'$_SERVER['argv'][0];
        }
        else if (isset(
$_SERVER['QUERY_STRING']))
        {
            
$url .= $_SERVER['SCRIPT_NAME'] .'?'$_SERVER['QUERY_STRING'];
        }
        else
        {
            
$url .= $_SERVER['SCRIPT_NAME'];
        }
    }

    if (
$get_path)
    {
        
$url_delim = (strpos($url'?') === false) ? '?' : ((strpos($url'?') === strlen($url) - 1) ? '' '&amp;');
        if(
$clear)
        {
            
$url_delim = array($url_delim $get_path'&' $get_path'?' $get_path$get_path);
            
$url str_replace($url_delim""$url);
        }
        else
        {
            
$url .= $url_delim $get_path;
        }
    }

    return 
$url;
}

function 
styles_change($version)
{
    global 
$db$config$user;

    if (!empty(
$config['mobile_style']) && $version == 'wap')
    {
        
$style $config['mobile_style'];
    }
    else
    {
        
$style $config['default_style'];
    }

    
$sql 'UPDATE ' USERS_TABLE "
        SET user_style = 
$style
        WHERE user_id = 
{$user->data['user_id']}";
    
$db->sql_query($sql);
}

function 
mobile_add_info()
{
    global 
$phpbb_root_path$phpEx$template$user$config;

    
$user->add_lang('mods/info_acp_mobile');

    
$computer false;
    if ((!empty(
$_SERVER['HTTP_USER_AGENT']))
    AND 
strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'j2me/midp') != true
    
AND strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'midp-2.0') != true
    
AND strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'midp') != true
    
AND strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'wap') != true
    
AND strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 's60') != true
    
AND (!(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'opera') === false)
    OR !(
strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'mozilla') === false)))
    
$computer true;

    
$version request_var('ver''');
    
$cookie_version request_var($config['cookie_name'] . '_version'''falsetrue);
    if (
$version == 'wap' || $version == 'web')
    {
        if(!empty(
$user->data['is_registered']) && !$user->data['is_bot'])
        {
            
styles_change($version);
            if(
$cookie_version)
            {
                
$user->set_cookie('version'''time() + 60);
            }
        }
        else
        {
            
$user->set_cookie('version'$versiontime() + 31536000);
        }
        
$redirect request_url('ver=' $versiontrue);
        
$redirect reapply_sid($redirect);
        
$redirect meta_refresh(1$redirect);
        @
trigger_error(sprintf($user->lang['REDIRECT_MESSAGE'], $version) . '<br /><br />' sprintf($user->lang['RETURN_PAGE'], '<a href="' $redirect '">''</a>'));
    }
    if (!
$user->data['is_registered'] && !$cookie_version)
    {
        
$user_mobile = (isset($config['mobile_style']) && $user->theme['style_id'] == $config['mobile_style']) ? true false;
        if (
$computer && $user_mobile && !$user->data['is_bot'])
        {
            
$message '<a href="' request_url('ver=wap') . '" class="button2 buttom">' $user->lang['CLOSE_WINDOW'] . '</a>';
            
$message sprintf($user->lang['COMP_INFO'], '<a href="' request_url('ver=web') . '">''</a>') . '<br /><br />' $message;
            
//@trigger_error($message);
        
}
        else if (!
$computer && !$user_mobile && !$user->data['is_bot'])
        {
            
$message '<a href="' request_url('ver=web') . '" class="button2 buttom">' $user->lang['CLOSE_WINDOW'] . '</a>';
            
$message sprintf($user->lang['MOBILE_INFO'], '<a href="' request_url('ver=wap') . '">''</a>') . '<br /><br />' $message;
            
//@trigger_error($message);
        
}
    }

    
$template->assign_vars(array(
        
'L_MOBILE_ON'        => $user->lang['MOBILE_ON'],
        
'L_MOBILE_OFF'        => $user->lang['MOBILE_OFF'],
        
'U_MOBILE_ON'        => (!empty($config['mobile_style']) ? request_url('ver=wap') : ''),
        
'U_MOBILE_OFF'        => (!empty($config['mobile_style']) ? request_url('ver=web') : ''),
        
'S_BROWSER_WEB'        => $computer)
    );
}

$phpbb_hook->register(array('template''display'), 'mobile_add_info');

?>
Онлайн: 0
Реклама