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 |
#452
|
|||
|
|||
Lynne,
First Thank you for helping everyone. My issue is a little more complexed I understand how to add a page and I completed it pretty quick (just your test page) Now that I have learned that what I need to do is get a bit more complex. I have a custom app I am trying to bring into vb4.x. Someone else had it in 3.8 but it was very sloppy and I want it to be perfect. So here are the first set of questions: 1. how do I add conditions in the template for if guest show this "please register" if Registered but never filled out app show this "Please Fill this out" If registered and filled this out show "Welcome Back." now all of this is already in PHP in my file but I want this app to be perfect like I said. 2. In my PHP file they have html / php mixed mainly queries of the database, display results, and $bbuserinfo[useremail], etc... Please go slow I am not a programmer but I want to learn how to do this. Thank you for your time |
#453
|
||||
|
||||
This is an article about how to create another page. For your questions....
1. Read the other articles in this forum about conditions. If you have questions, post them in that article. If you can't get your page to work, you need to post your own thread with the complete code for your page and templates. 2. Not sure what your question is there as it's just a statement. |
#454
|
|||
|
|||
Thank Lynne, I have started my own thread over here (in case you still want to help me)
My First Import |
#455
|
|||
|
|||
Can you tell me what I'm doing wrong here? This script should be returning and printing out the id field from all entries in the database yet it only returns and prints the last id.
http://vb.newcelica.org/test.php Code:
$navbits = construct_navbits(array('' => 'Test Page'));
$navbar = render_navbar_template($navbits);
$templater = vB_Template::create('TEST');
$templater->register_page_templates();
$templater->register('navbar', $navbar);
// ###### YOUR CUSTOM CODE GOES HERE #####
include(config.php);
$result = mysql_query("SELECT * FROM dynotable WHERE name <> '' ORDER BY name ASC",$dynodb);
while ($row = mysql_fetch_array($result)) {
$id = $row["id"];
$output = "<table><tr><td>id</td><td>$id</td></tr></table>";
$templater->register('output', $output);
print_output($templater->render());
}
?>
|
#456
|
||||
|
||||
Quote:
|
#457
|
|||
|
|||
Any ideas how to get the like button to show on the page?
|
#458
|
||||
|
||||
You would just add the code to the template. I do not know the exact code, if that is what you are asking.
|
#459
|
|||
|
|||
hi i tried this but no luck using vb 4.1.0 PL2
test.php PHP Code:
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}</title> {vb:raw headinclude} </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> |
#460
|
||||
|
||||
Quote:
|
#461
|
|||
|
|||
The page is working fine, but when it displays the new (Gallery) page, the Forum tab is up instead of the new (Gallery) tab and the submenu for Forum is showing. Any ideas?
--------------- Added [DATE]1294962412[/DATE] at [TIME]1294962412[/TIME] --------------- Never Mind. |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|