Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 01-09-2007, 09:21 PM
effgee effgee is offline
 
Join Date: Nov 2005
Posts: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Custom PHP in headinclude/navbar, how?

Hi everyone!

The guys from the vbulletin.com forum sent me over here I'd like to include custom PHP in two of my templates ('headinclude' and 'navbar'; for a PHP style sheet switcher, to be exact) and am seriously stuck as to how to get vBulletin to parse my code. Here's what I have so far:

1. two external PHP files:
Code:
rootdir/_custom_includes/switcher.php
rootdir/_custom_includes/Styleswitcher.php
2. the code I need to include in the 'headinclude' template:
(goes inside the <head> tag, replaces 'traditional' links to style sheets)
Code:
<?php
    // BEGIN STYLESWITCHER CODE
    if(!isset($reqPath)){ $reqPath = "./"; }
    require_once($reqPath ."_custom_includes/Styleswitcher.php");

    $ss = new Styleswitcher();
    $ss->addStyle("basic", "basic.css", "", "", true);
    $ss->addStyle("blue", "blue.css");
    $ss->addStyle("green", "green.css");

    ... more identical stuff here ...

    // End Styleswitcher code
 ?>
3. the code I need to include in 'navbar':
(the controls for the style sheet switcher)
Code:
<form action="_custom_includes/switcher.php" method="post">
    <!-- Automatically redirect to the referer -->
    <input type="hidden" name="referer" id="referer" value="<?php print $_SERVER['PHP_SELF']; ?>" />
    <input type="hidden" name="inputStyle1" id="inputStyle1" value="fonts" />
    <input type="hidden" name="inputStyle2" id="inputStyle2" value="style" />
  
    <strong>Font Style:</strong><br />
    <input type="radio" name="fonts" id="fontStyle1" value="normal" <?php $ss->printSetInputChecked("fonts", "normal"); ?>/> <label for="fontStyle1">Normal text (smaller)</label>
    <input type="radio" name="fonts" id="fontStyle2" value="large" <?php $ss->printSetInputChecked("fonts", "large"); ?>/> <label for="fontStyle2">Large text</label><br />

    ... addtl. form elements here ...

    <input type="submit" name="setChanges" value="Change styles" />
</form>
I have read something about creating a custom plug-in to reference external files in the vBulletin reference but am totally clueless in trying to apply the info given therein to my particular situation - especially considering the PHP code for the form controls (see "3" above) I need to include in the 'navbar' template (*). Any ideas on how to achieve this? If at all possible, "dummy-style" answers would be much appreciated - my knowledge of PHP and similarly fear-inducing stuff is spotty at best.

Thanks much!

effgee


(* - e.g., do I put the code for these controls in a separate file?)
Reply With Quote
  #2  
Old 01-10-2007, 04:20 PM
noppid noppid is offline
 
Join Date: Mar 2003
Location: Florida
Posts: 1,875
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Since this will be in the header, you likely need to make a global start hook plugin. Try putting the above code in a global start hook.

hook code global start
PHP Code:
 // BEGIN STYLESWITCHER CODE
    
if(!isset($reqPath)){ $reqPath "./"; }
    require_once(
$reqPath ."_custom_includes/Styleswitcher.php");

    
$ss = new Styleswitcher();
    
$ss->addStyle("basic""basic.css"""""true);
    
$ss->addStyle("blue""blue.css");
    
$ss->addStyle("green""green.css");

    ... 
more identical stuff here ...

    
// End Styleswitcher code
    
$SS_script $_SERVER['PHP_SELF'];
    
$SS_normal $ss->printSetInputChecked("fonts""normal")
    
$SS_large $ss->printSetInputChecked("fonts""large"); 
    eval(
'$SS_template = "' fetch_template('SS_template') . '";'); 
SS_template
HTML Code:
<form action="_custom_includes/switcher.php" method="post">
    <!-- Automatically redirect to the referer -->
    <input type="hidden" name="referer" id="referer" value="$SS_script" />
    <input type="hidden" name="inputStyle1" id="inputStyle1" value="fonts" />
    <input type="hidden" name="inputStyle2" id="inputStyle2" value="style" />
  
    <strong>Font Style:</strong><br />
    <input type="radio" name="fonts" id="fontStyle1" value="normal"$SS_normal /> <label for="fontStyle1">Normal text (smaller)</label>
    <input type="radio" name="fonts" id="fontStyle2" value="large"$SS_large /> <label for="fontStyle2">Large text</label><br />

    ... addtl. form elements here ...

    <input type="submit" name="setChanges" value="Change styles" />
</form>
and put $SS_template in the header template. I think that should work. I have not tested it though.

don't forget to cache the template.
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 11:03 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.03523 seconds
  • Memory Usage 2,183KB
  • 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
  • (3)bbcode_code
  • (1)bbcode_html
  • (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