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 |
#352
|
||||
|
||||
Then why don't you create a custom php page in the CMS in the first place? No sense in recreating the whole CMS infrastructure, when you just could use it.
|
#353
|
|||
|
|||
Quote:
As i am very ned wo vBulletin, i thought the easiest way would be to force the .php file into the templates. |
#354
|
||||
|
||||
Quote:
my code looks like this: Code:
if ($loc == './error.php?error=400') { $filename = 'error_400.php'; } if ($loc == './error.php?error=401') { $filename = 'error_401.php'; } if ($loc == './error.php?error=403') { $filename = 'error_403.php'; } if ($loc == './error.php?error=404') { $filename = 'error_404.php'; } if ($loc == './error.php?error=500') { $filename = 'error_500.php'; } Code:
if ($filename == 'error_400.php') { $userinfo['activity'] = 'error400'; } if ($filename == 'error_401.php') { $userinfo['activity'] = 'error401'; } if ($filename == 'error_403.php') { $userinfo['activity'] = 'error403'; } if ($filename == 'error_404.php') { $userinfo['activity'] = 'error404'; } if ($filename == 'error_500.php') { $userinfo['activity'] = 'error500'; } |
#355
|
||||
|
||||
Quote:
|
#356
|
|||
|
|||
Hi,
This has all worked brilliantly after flicking a bit between the original and Lynn's article (more of a case of me having to get my head round it). Now, I don't know if it's a roblem with my custom style, but standard html doesn't seem to be having any effect on my pages, for example: Code:
<UL><LI>[</LI></UL> <STRONG></STRONG> <I></I> Code:
<a href="..."></a> Cheers |
#357
|
||||
|
||||
Use a div of class="restore" around the code to get back to normal html.
|
#358
|
|||
|
|||
Thanks for helping me out with a n00b problem Lynn, for the record if anyone else has that problem the double quotes (")after A HREF are left in, but if you use single (') or none at all then it works. Thanks again Lynn!
|
#359
|
|||
|
|||
Lynne,
Thanks for converting the article to a vB4 version. It's very helpful for those of us offering some custom-built pages. If you do not mind, I do have a question about tables, though. I've used the approach a lot where I offer a custom page to pull some custom data from the database. Typically, this means I connect to the db, pull out data, and then build one huge HTML string with tables to represent the data. I have looked, but not managed to find a definite article on how to achieve the same but consistent with the vB4 coding standards. I have tried looking at the CSS classes used in the vB4 pages, but I have to admit that is kind of over my head (I will admit I did not spend THAT much time on it, considering I still am trying to solve lots of issues left over after the migration). As a simple example, I used to use alt1 and alt2. I can wrap one of those div class="restore"> around the table definition, but were I to totally rewrite my pages so they also match with the vB4 styles I use, how would I go at that, exactly? And where would I be able to find the restore class in the new stylevar setup, so I could actually alter the (for instance) alt1 and alt2 tags? Sorry if you feel I am hijacking your thread. I just have not found a way to actually solicit for an article or guide, and custom pages is where I imagine lots of people will be using tables. Thanks in advance, and I apologize for what might appear as an thread hijack. Peter |
#360
|
||||
|
||||
If you do a Search in Templates for ".restore", you'll find them all defined in vbulletin.css. I never change things in that template though, the best thing to do is put new CSS in addiitional.css
If you need help with something, you just post in the main (vB$, in this case) forums. Usually you don't ask for an article, you just ask for help. Then, either the person helping, or the person who got helped, may throw together an article to help others. |
#361
|
|||
|
|||
Quote:
|
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|