Вход Регистрация
Файл: 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') ? 1 : 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', '', false, true);
    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', $version, time() + 31536000);
        }
        
$redirect = request_url('ver=' . $version, true);
        
$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');

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