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 |
#902
|
||||
|
||||
If you're customizing your own CSS, you can do whatever you want. There's no limitations there. But if you mean using the different styles in your Style Manager, then that's a little trickier. You can just put the style ID in the link to those pages, but that would set each user's options to that style each time they visited. I know forums can be set to force use a style without doing that, but I'm unfamiliar with how to do that for a custom page.
|
#903
|
|||
|
|||
Thanks @Digital for the information.
I guess I will have to find a way to force the general style to forum pages while the custom style is used for custom pages. now I believe I need to look around the net to digg more for this issue. Thanks again. That was very helpful |
#904
|
||||
|
||||
You should be able to do something like that at in a plugin on hook style_fetch
PHP Code:
|
Благодарность от: | ||
fxdigi-cash |
#905
|
|||
|
|||
Quote:
I found this thread also talking about the same thing I'm after: https://vborg.vbsupport.ru/showthread.php?t=267775 The one who asked the question in that thread mentioned the solution which is this code: Code:
if (STYLEID == 1){ Code } as you know in the custom page, which is html or php and the template that I can create from vb admin cp.... so where exactly should I insert that code? looking forward to hearing from you |
#906
|
||||
|
||||
That particular link is not the same thing that cellarius posted. That's a plugin that would only execute when a particular style is used. Not the other way around.
In your Admin CP in Plugins & Products, you'll see the Add New Plugin option. You put the code there in a new plugin, and select the hook cellarius mentioned. You should remember what THIS_SCRIPT is, as it's what you changed one of the test lines to when you created your custom page. |
Благодарность от: | ||
fxdigi-cash |
#907
|
|||
|
|||
Is there anything that has changed in vB4 over its progression that would cause the original code on the first page to not work?
I've used this as my starting point for an upgrade script I've had for years, but it stopped working and I'm trying to track down why. I'm having the exact same problem on a clean local install of vBulletin. Thanks! Brandon |
#908
|
||||
|
||||
There isn't anything in the first post code that has changed. If you need us to take a look at your exact code, you should make a thread in the vB4 Programming forum and post your php code and template code and let us have a link to your page so we can see what is going on.
|
#909
|
|||
|
|||
Quote:
That was clear. I followed the steps you mentioned, but it seems there is something wrong with the style. I have tested the style on vb pages, but the custom page shows weird styling.... it is like interaction between main style and other style. by the way, in your code Code:
if (THIS_SCRIPT == "test") { $styleid = 4398; } any idea what's going on here? Thanks |
#910
|
||||
|
||||
Remember in your custom page, where you changed the text in green?
That's THIS_SCRIPT. Whatever you changed test to, is what you use in the plugin. Can you link us to your page so we can see exactly what you mean by interacting? |
#911
|
|||
|
|||
Quote:
for the style, I made actually a little mistake.... forgot to clear the browser cache and that's why the style was messy.... Thanks again. That was very helpful P.S: I found here at vbulletin.org a mod that let admin to use a global custom footer, any idea if this can replace $footer or {vb:raw footer} |
Thread Tools | |
|
|
X vBulletin 3.8.12 by vBS Debug Information | |
---|---|
|
|
More Information | |
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|