Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 02-25-2012, 01:22 PM
MikeTrin MikeTrin is offline
 
Join Date: Jun 2006
Posts: 26
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Mobile Detection

There's a lot of info on changing a users theme if they are using a mobile browser. I'm looking to just change a few images and adsense code on various templates.

I have a taken some code out of init.php that vbulletin uses to detect various mobile browsers.

I'm trying to create a single global variable that I can use vb if condition on it from any template on any theme. I've seen the VB_Template:reRegister code that lets you push php variables to single templates but I need it go to any template.

So the question is, which hook and how do create a global variable that can be accessed from any template. I'ved attempted to use global $mobilemt as seen below in the global_bootstrap_init_start hook and {vb:raw mobilemt} in a template with no luck.

PHP Code:
global $mobilemt 

$mobilemt 
"no"

if (
stripos($_SERVER['HTTP_USER_AGENT'], 'windows') === false)  
    {  
        if (  
            
preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android)/i'strtolower($_SERVER['HTTP_USER_AGENT']))  
            OR  
            
stripos($_SERVER['HTTP_ACCEPT'],'application/vnd.wap.xhtml+xml') !== false  
            
OR  
            ((isset(
$_SERVER['HTTP_X_WAP_PROFILE']) OR isset($_SERVER['HTTP_PROFILE'])))  
            OR  
            
stripos($_SERVER['ALL_HTTP'],'OperaMini') !== false  
        
)  
        {  
            
$mobile_browser true;  
        }  
        
// This array is big and may be bigger later on. So we move it to a second if.  
        
elseif (in_array(  
                    
strtolower(substr($_SERVER['HTTP_USER_AGENT'], 04)),  
                    array(  
                    
'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',  
                    
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',  
                    
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',  
                    
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',  
                    
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',  
                    
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',  
                    
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',  
                    
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',  
                    
'wapr','webc','winw','winw','xda ','xda-')  
                )  
            )  
        {  
            
$mobile_browser true;  
        }  
    }  

    if (  
        
$mobile_browser  
        
AND  
        
preg_match('/(ipad|ipod|iphone|blackberry|android|pre\/|palm os|palm|hiptop|avantgo|plucker|xiino|blazer|elaine)/i'strtolower($_SERVER['HTTP_USER_AGENT'])) 
    )  
    {  
        
$mobile_browser_advanced true;  
    }  

    if (
$mobile_browser_advanced||$mobile_browser
    { 
        { 
            
$mobilemt="yes"
        } 
    } 
Reply With Quote
  #2  
Old 03-22-2012, 02:21 AM
MikeTrin MikeTrin is offline
 
Join Date: Jun 2006
Posts: 26
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i know how much i love when google indexes questions with no solutions...

I was able to solve this using a hidden profile field. It seems to work...


At the end of the plug in (global_start) i set it.

Code:
*** snip ***

    if ($mobile_browser_advanced||$mobile_browser)  
    {  
        {  
            $mobilemt="yes";  
        }  
    }  

$vbulletin->userinfo['field15'] = $mobilemt;
Then to do an IF Condition in a template I just...

Code:
<vb:if condition="$bbuserinfo[field15] == 'no'">
.....
</vb:if>
I didn't really want to use a profile field but it does seem to work.

If anyone has any better suggestions, i'm open.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 09:50 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04292 seconds
  • Memory Usage 2,195KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete