The Arcive of Official vBulletin Modifications Site.It is not a VB3 engine, just a parsed copy! |
|
[HOW TO - vB4] Create your own vBulletin page
This is an updated article on how to create your own vbulletin powered page. It's only for use with vB4. This is NOT my work. I'm posting this from another thread where vB Style took the time to write this out. And his work is based on the article by Gary King here - How to create your own vBulletin-powered page! (uses vB templates) Instructions to Create your Own Page: 1. Create the php page: - Create a new file, whatever you want to call it (let's say test.php). - Open up test.php and add the following (replace TEST with whatever template you want to show - WARNING: the template name is CASE SENSITIVE!!!): Code:
<?php // ####################### SET PHP ENVIRONMENT ########################### error_reporting(E_ALL & ~E_NOTICE); // #################### DEFINE IMPORTANT CONSTANTS ####################### define('THIS_SCRIPT', 'test'); define('CSRF_PROTECTION', true); // change this depending on your filename // ################### PRE-CACHE TEMPLATES AND DATA ###################### // get special phrase groups $phrasegroups = array(); // get special data templates from the datastore $specialtemplates = array(); // pre-cache templates used by all actions $globaltemplates = array('TEST', ); // pre-cache templates used by specific actions $actiontemplates = array(); // ######################### REQUIRE BACK-END ############################ // if your page is outside of your normal vb forums directory, you should change directories by uncommenting the next line // chdir ('/path/to/your/forums'); require_once('./global.php'); // ####################################################################### // ######################## START MAIN SCRIPT ############################ // ####################################################################### $navbits = construct_navbits(array('' => 'Test Page')); $navbar = render_navbar_template($navbits); // ###### YOUR CUSTOM CODE GOES HERE ##### $pagetitle = 'My Page Title'; // ###### NOW YOUR TEMPLATE IS BEING RENDERED ###### $templater = vB_Template::create('TEST'); $templater->register_page_templates(); $templater->register('navbar', $navbar); $templater->register('pagetitle', $pagetitle); print_output($templater->render()); ?> 2. Create the Template: - If you are in debug mode, create the template in your MASTER STYLE so it shows up in all your styles, otherwise make sure you create the template in the style you are using. If following the page above, call the template TEST (WARNING: the template name is CASE SENSITIVE!!!) with the following content: HTML Code:
{vb:stylevar htmldoctype} <html xmlns="http://www.w3.org/1999/xhtml" dir="{vb:stylevar textdirection}" lang="{vb:stylevar languagecode}" id="vbulletin_html"> <head> <title>{vb:raw vboptions.bbtitle} - {vb:raw pagetitle}</title> {vb:raw headinclude} {vb:raw headinclude_bottom} </head> <body> {vb:raw header} {vb:raw navbar} <div id="pagetitle"> <h1>{vb:raw pagetitle}</h1> </div> <h2 class="blockhead">Title</h2> <div class="blockbody"> <div class="blockrow"> Text </div> </div> {vb:raw footer} </body> </html> Instructions to Add your Page to the Who's Online List (WOL): Create two plugins using the following hooks. Replace mypage and similar with your information. 1. hook location - online_location_process: Code:
switch ($filename) { case 'test.php': $userinfo['activity'] = 'mypage'; break; // add more cases here if you have more than one custom page. no need for multiple plugins. one plugin can handle all. } 2. hook location online_location_unknown: Code:
switch ($userinfo['activity']) { case 'mypage': $userinfo['where'] = '<a href="test.php?'.$vbulletin->session->vars[sessionurl].'">My Page</a>'; $userinfo['action'] = "Viewing My Page"; $handled = true; break; // add more cases here if you have more than one custom page. no need for multiple plugins. one plugin can handle all. } The colored part in the code above shows what you need to change in the plugins (both reds should be the same and both blues should be the same, whereas green can be whatever you want). Please see this article for help with rendering templates - [vB4] Rendering templates and registering variables - a short guide |
#362
|
|||
|
|||
What code can I put into the template so that I can have alternating colors. I will listing links from top to bottom and I would like each link to have a different bg color like we do in forumdisplay
|
#363
|
||||
|
||||
Probably in your php code you would have a counter and then based on whether it's even or odd, you set the class (alt1 or alt2). This thread is really not the place to ask about how to write the php code though. You could probably find it doing a search though since it's been posted a few times.
|
#364
|
|||
|
|||
I ran into a wierd problem programming my own custom page. I wanted to add a note to the bottom of a screen to see what infraction a user received. So, I thought I did the obvious: $vbphrase['infractionlevel8_title'] -- and to my surprise, it was blank (even though it's actually defined).
Next, I copied the vbphrase precache out of infraction.php: $phrasegroups = array('infraction', 'infractionlevel', 'pm', 'posting', 'banning', 'user'); Nothing. I made sure vbphrases are working, because I successfully displayed $vbphrase['forum']. I worked on this for a few hours and couldn't figure it out. What's so unique about these infractionlevel phrases, and why can't I get to them from inside of my custom page? Any help is greatly appreciated. Fixed by calling fetch_phrase_group('infractionlevel'); |
#365
|
|||
|
|||
Thank you very much this is exactly what I needed!!!
|
#366
|
|||
|
|||
thanks
|
#367
|
|||
|
|||
Thank you !
I have 2 qustions: Can I add widgets to my new page? How can I do that ? Can I choose layout to the new page? THANKS AGIN |
#368
|
||||
|
||||
Widgets go in the CMS. You can't add them anywhere else, just as you can't pick a CMS layout for your page either. However, your page is just a template so you can lay it our however you want - even if that means copying a CMS grid and putting it in there.
|
#369
|
|||
|
|||
Ok
thanks. I have new problem, in my computer the new page is working but in others computer they see blank page. this is my php code of the page PHP Code:
|
#370
|
|||
|
|||
Excellent guide (combined with the adding the nav tab dropdown menu guide Lynne).
I'm an absolute code n00b and don't don't know a condition from a variable to a hook, basically jumped in feet first and just trying to learn this stuff as I go. My only criticism (and I hope it's constructive) is that some of these guides are written for people who actually know where to navigate in the admincp and where to add new styles/templates, etc. There's as many new people coming to these forums learning coding and vBulletin for the first time and although I know you guys do your best to try and make things basic, sometimes it can be with presumed knowledge. With just a few more simple initial babysteps (given that topics like this are likely to be one of the first things someone wants to do with their site, and therefore might have very little prior knowledge of vBull and how to do any coding) it would be sooooo helpful to have a "to do this you go to here > here > here" in the OP instead of working through the entire thread to find out the info (which I generally do as I don't like to ask questions that are answered in the thread, it can just sometimes be a pain when it's on page 16 ). Anyway, again, great great guide and in the main really simple to do (even for a none-coder like myself). Kudos! |
#371
|
|||
|
|||
Hello,
First off, I just want to say that this is a top-notch guide, in my opinion. I just have a quick question: How do I add dividers to sections? Is it in the template? Or the PHP page? What's the code? Also, How do I add the shadow effect behind the whole box? Regards, Guitar Guy |
Thread Tools | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|