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 08-01-2012, 07:05 AM
Gemma's Avatar
Gemma Gemma is offline
 
Join Date: Apr 2004
Location: Scotland
Posts: 1,229
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Display Theme According To Resolution?

Does anyone know of a way to display a theme automatically in accordance to the user's screen resolution?

I had some code before which stopped certain elements of my theme appearing on lower resolution screens but was never able to suss out how to load a theme automatically if, for example, your monitor resolution was 1600*900 or higher.

I'm not even sure if it is possible - if I remember correctly my attempts just caused my index page to loop, constantly trying to load 'theme A' or 'theme B' depending on my resolution setting.
Reply With Quote
  #2  
Old 08-01-2012, 09:35 AM
Sarteck's Avatar
Sarteck Sarteck is offline
 
Join Date: Mar 2008
Posts: 304
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It'd likely have to be passed to PHP by JavaScript, if you were to do it. And that would mean that the first page a user loads would NOT display the correct Style-By-Resolution, but subsequent ones would.

Let's see, you could do something like... Make a page that basically says "Please wait a moment while we detect your browser resolution." On that page, you could have JavaScript set the URL according to the screen size.

HTML Code:
<script type="text/javascript" language="javascript">
function get_styleid_by_resolution()
{
  var x = screen.width;
  var y = screen.height;
  var resolution = x+'x'+y;
  var styleid_by_res = 0;
  switch(resoltuion)
  {
    case '1024x768':  styleid_by_res = 1; break;
    case '1280x800':  styleid_by_res = 2; break;
    case '1920x1080':  styleid_by_res = 3; break;
    case '320xwhatever':  styleid_by_res = 4; break;
    /* Etc. */
  }
  return styleid_by_res;
}
function set_styleid_in_url(sid)
{
  location.href = 'http://my.forum/respage.php?styleid='+sid+'&res_set=1';
}
</script>
The res_set is a variable your respage.php would have to set into the cookie, like so:

PHP Code:
vbsetcookie('res_set',1); 

Then you'd need a plugin (maybe somewhere in the Global stuff) to check to see if the res_set is set.

PHP Code:
$res_set $vbulletin->input->clean_gpc('c''res_set''TYPE_BOOL');
if (!
$res_set)
{
  
/// Do some redirection to resolution setting page, I guess
  
$vbulletin->url 'res_page.php'.$vbulletin->session->vars['sessionurl'];
  
print_standard_redirect('We\'re, like, gunna try to detect your resolution and shit.'falsetrue);
  die();






Mind you, this isn't meant to be followed step-by-step; it's just a general idea of what you'd have to code for it. (Although someone else probably has a better idea.)
Reply With Quote
Благодарность от:
Gemma
  #3  
Old 08-01-2012, 09:43 AM
Gemma's Avatar
Gemma Gemma is offline
 
Join Date: Apr 2004
Location: Scotland
Posts: 1,229
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks, I'll have a play around later
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 11:30 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04335 seconds
  • Memory Usage 2,193KB
  • Queries Executed 13 (?)
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
  • (1)bbcode_html
  • (2)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (3)post_thanks_box
  • (1)post_thanks_box_bit
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)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_postinfo_query
  • fetch_postinfo
  • 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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete