Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 3 Articles
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
How To New Pages in vb style
tomp
Join Date: Jan 2004
Posts: 78

 

England
Show Printable Version Email this Page Subscription
tomp tomp is offline 03-02-2004, 10:00 PM

Ok ive seen that alot of people have been asking how to create new pages with the vbulletin style on them like i have used on forum.imaedia.com for the link/games etc pages, so ive decided to write this to tell everyone how to do it

Ok i usualy start by creating a basic template in the admin cp that i will use for all the pages that im going to add.

log into your admin cp go to styles and templates then go to the style manager and expand the style that you are currently using on the right of the page you will see a drop down menu, select add new template from it and then you need to name it

for this example im naming mine : "test"

now we need to create a very basic html template to go in this template:

because im doing this quickly i just added any css i wanted to use onto this page instad of using the vbulletin css styles

ok so put the following into your temoplate and change the parts that say page name and page content to suit your needs

Code:
$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
<!-- no cache headers -->
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Cache-Control" content="no-cache" />
<!-- end no cache headers -->
<title><phrase 1="$vboptions[bbtitle]">$vbphrase[x_powered_by_vbulletin]</phrase></title>
<style type="text/css">
<!--
.top {
	border-top-width: 1px;
	border-right-width: 1px;
	border-bottom-width: 1px;
	border-left-width: 1px;
	border-top-style: solid;
	border-top-color: #000000;
	border-right-color: #000000;
	border-bottom-color: #000000;
	border-left-color: #000000;
}
.all {
	border: 1px solid #000000;
	background-color: #FFFFFF;
}
-->
</style>

$headinclude </head> <body> $header $navbar
<table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="$stylevar[cellspacing]" class="all">
  <thead>
    <tr align="center"> 
      <td align="left" valign="top" class="thead">
<div align="left"></div>
        <div align="left">
<table width="100%" border="0" cellpadding="3" cellspacing="0">
            <tr>
              <td class="tcat">**********Test Page**********</td>
            </tr>
            <tr>
              <td>********Page Content would go here :)**********</td>
            </tr>
          </table>
          <font size="2"><font face="Verdana, Arial, Helvetica, sans-serif"></font></font></div></td>
      <if condition="$vboptions[showmoderatorcolumn]"> </if> </tr>
  </thead>
  $forumbits 
  <tbody>
  </tbody>
</table>
$footer 
</body>
</html>
save the template.

The next step is to create the php file that will call the template,

Here is the code i used, to incldue the naviation and header/footer

Code:
<?php
 // ####################### SET PHP ENVIRONMENT ###########################
 error_reporting(E_ALL & ~E_NOTICE);
 
 // #################### DEFINE IMPORTANT CONSTANTS #######################
 define('NO_REGISTER_GLOBALS', 1);
 define('THIS_SCRIPT', 'yourscript');
 
 // ################### 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(
 'TEMPLATENAME'
 );
 
 // pre-cache templates used by specific actions
 $actiontemplates = array();
 
 // ######################### REQUIRE BACK-END ############################
 require_once('./global.php');
 
 // ### ALL DONE! SPIT OUT THE HTML AND LET'S GET OUTA HERE... ###
 
 eval('$navbar = "' . fetch_template('navbar') . '";');
 eval('print_output("' . fetch_template('TEMPLATENAME') . '");');
 
 
 ?>
rite now save that as a .php file, and upload it into your vbulletin root directory

then go to yourforumurl/pagename.php and you got yourself a non vb page with vb template on it

hope that helps post any questions, i prolli missed something or done something totaly wrong but hehe just trying to help :P
Reply With Quote
  #42  
Old 03-01-2008, 05:03 PM
Bilderback's Avatar
Bilderback Bilderback is offline
 
Join Date: Sep 2007
Location: Illinois
Posts: 214
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Arcanum View Post
Okay but what about coding a .php file to handle more than 1 template?
In order to use a single php file for multiple templates, you would use url variations using $_GET.
If your main page was information.php you would have to write multiple request methods such as:
information.php?do=main
information.php?do=contact
information.php?do=about

You would create your templates and put them all into the $globaltemplates array() like
$globaltemplates = array(
'main',
'contact',
'about'
);
When working with multiple templates, I do advise to use some prefix such as info_ or something.
Then you setup your php file to handle the requests.
PHP Code:
<?php
// ####################### SET PHP ENVIRONMENT ###########################
 
error_reporting(E_ALL & ~E_NOTICE);
 
// #################### DEFINE IMPORTANT CONSTANTS #######################
 
define('NO_REGISTER_GLOBALS'1);
 
define('THIS_SCRIPT''yourscript');
 
// ################### 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(
'main',
'contact',
'about'
);
 
// pre-cache templates used by specific actions
 
$actiontemplates = array();
 
// ######################### REQUIRE BACK-END ############################
 
require_once('./global.php');

// Begin your templates
// Main template and code
if ($_REQUEST['do'] == 'main')
{
    eval(
'$navbar = "' fetch_template('navbar') . '";');
    eval(
'print_output("' fetch_template('main') . '");');
}
// Contact template and code
if ($_REQUEST['do'] == 'contact')
{
    eval(
'$navbar = "' fetch_template('navbar') . '";');
    eval(
'print_output("' fetch_template('contact') . '");');
}
// About template and code
if ($_REQUEST['do'] == 'about')
{
    eval(
'$navbar = "' fetch_template('navbar') . '";');
    eval(
'print_output("' fetch_template('about') . '");');
}
?>
Its a bit complex and hard for me to explain in a spur of the moment forum post,
but basically, you have to handle the code for your different url requests, then
write the different eval() to fetch the templates within those requests.
I suggest looking into the code of a product that uses multiple urls to get a better understanding.

******************************

Quote:
Originally Posted by Never2Day View Post
I have no idea how to do this sorry I have managed to do the first part but the second code i have no idea what to do with where to put it or what i should do cause when i did put it onto a blank page i got errors.
Your created template may contain anything you wish, even if its a simple <b>Welcome</b>
But, if you want it to be contained within your forum layout, there are several variables you must call such as $headinclude,$header,$navbar and $footer
This places your content within the vbulletin page.
Simply by pasting the code provided into a new template should work for you.

As far as the PHP file, there are really only two areas you need to edit.
These areas MUST conform to the template name you just created.
Code:
 // pre-cache templates used by all actions
 $globaltemplates = array(
 'TEMPLATENAME'
 );
and
Code:
eval('print_output("' . fetch_template('TEMPLATENAME') . '");');
Lets say you create a template named aboutme
You would edit the supplied php code in this thread to:
Code:
 $globaltemplates = array(
 'aboutme'
 );
and
Code:
eval('print_output("' . fetch_template('aboutme') . '");');
within the php file.
Save the file as aboutme.php and upload to your forum root so when people
visit www.yoursite.com/forum/aboutme.php
it will display the contents of the template you created.

If you need assistance with a simple page, contact me.

I'd like to add that sometimes the forumjump menu does not work on pages
in which case you need to add
PHP Code:
construct_forum_jump(); 
above eval('$navbar = "' . fetch_template('navbar') . '";');

Also, if you would like to have the name appear in the navbar when viewing the page,use
PHP Code:
$navbits construct_navbits(array('' => 'YOUR PAGE NAME HERE')); 
above eval('$navbar = "' . fetch_template('navbar') . '";');
Reply With Quote
Reply


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 06:13 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03721 seconds
  • Memory Usage 2,249KB
  • Queries Executed 17 (?)
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
  • (6)bbcode_code
  • (3)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (1)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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete