Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 General Discussions
  #1  
Old 09-26-2011, 05:04 PM
Bestrafung Bestrafung is offline
 
Join Date: Aug 2009
Posts: 86
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Custom Style Chooser

I'm trying to setup a custom style chooser and following some advice found on these forums (I forget where) I was able to move the Style Changer from the footer to the top links. We are only using two styles, one narrow and one wide, and we want a radio button selector instead of a drop down. The original code is:
Code:
<form action="{vb:link forumhome|nosession}" method="get" id="footer_select">
<vb:if condition="$show['quickchooser']">
<select name="styleid" onchange="switch_id(this, 'style')">
<optgroup label="{vb:rawphrase quick_style_chooser}">
{vb:raw quickchooserbits}
</optgroup>
</select>
</vb:if>
</form>
and the radio button code I tried is:
Code:
<form action="{vb:link forumhome|nosession}" method="get" id="footer_select">
<vb:if condition="$show['quickchooser']">
<input type="radio" name="styleid" value="5" onChange="switch_id(this, 'style')"/>
Narrow (Default)
<input type="radio" name="styleid" value="4" onChange="switch_id(this, 'style')"/>
Wide
</vb:if>
</form>
If anyone has any ideas I'd greatly appreciate it. I'm still trying to figure it out but I'm not very good with code like this.
Reply With Quote
  #2  
Old 09-26-2011, 07:21 PM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Unfortunately the JavaScript function switch_id is hard coded to use a <select> input and just won't work with any other type of input. You'd need to rewrite the function or make a new one to work with radio buttons.

FYI - this is the javascript function in question:

PHP Code:
function switch_id(C,E)
{
   var 
C.options[C.selectedIndex].value;
   if(
F=="")
   {
      return;
   }
   var 
= new String(window.location);
   var 
= new String("");
   
B=B.split("#");
   if(
B[1])
   {
      
"#" B[1];
   }
   
B[0];
   if(
B.indexOf(E+"id=") != -&& is_regexp)
   {
      var 
D=new RegExp("id=\\d+&?");
      
B.replace(D"");   
   } 
   if(
B.indexOf("?") == -1)
   {
      
+= "?";
   }
   else
   {
      
lastchar B.substr(B.length 1);
      if(
lastchar != "&" && lastchar != "?")
      {
         
+= "&";
      }
   }
   
window.location "id=" A;

Reply With Quote
  #3  
Old 09-26-2011, 07:38 PM
BirdOPrey5's Avatar
BirdOPrey5 BirdOPrey5 is offline
Senior Member
 
Join Date: Jun 2008
Location: New York
Posts: 10,610
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK so if you add this javascript to your template:

PHP Code:
<script type="text/javascript">
function 
switch_id2(C,E)
{
   var 
C.value;
   if(
F=="")
   {
      return;
   }
   var 
= new String(window.location);
   var 
= new String("");
   
B=B.split("#");
   if(
B[1])
   {
      
"#" B[1];
   }
   
B[0];
   if(
B.indexOf(E+"id=") != -&& is_regexp)
   {
      var 
D=new RegExp("id=\\d+&?");
      
B.replace(D"");   
   } 
   if(
B.indexOf("?") == -1)
   {
      
+= "?";
   }
   else
   {
      
lastchar B.substr(B.length 1);
      if(
lastchar != "&" && lastchar != "?")
      {
         
+= "&";
      }
   }
   
window.location "id=" A;
}
</
script
And then change the calls in your code from switch_id to switch_id2 it will work.
Reply With Quote
Reply

Thread Tools
Display Modes

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 01:09 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.03559 seconds
  • Memory Usage 2,201KB
  • 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
  • (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
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (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_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