Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 3 Articles

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
  #32  
Old 02-11-2005, 01:54 AM
Motoscene Motoscene is offline
 
Join Date: Feb 2005
Posts: 15
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nevermind I don't know what I did but I got it to work. And thanks very much for showing me how to do this. I like this "how to". Thanks
Reply With Quote
  #33  
Old 01-18-2007, 07:36 PM
Insert Username Insert Username is offline
 
Join Date: Feb 2006
Posts: 65
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nothing like bumping a very old topic...

I've used this tutorial to create a page, and for the most part, it's working. But this part:

define('THIS_SCRIPT', 'yourscript');

What does 'yourscript' refer to? I'm not sure what to replace there.
Reply With Quote
  #34  
Old 01-20-2007, 02:30 PM
jbrohan jbrohan is offline
 
Join Date: Dec 2006
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello just feeling my way too...
I havce an insight and a question...
There are two places in the .php program where you must put the name of your script. If the .php program is calles say "wunderbar.php" then near the top of the program is define('THIS_SCRIPT', 'wunderbar');// note no .php

towards the end of the program you need
eval('print_output("' . fetch_template('wunderbar') . '");');

In my case the template is called wunderbar too so that things work.

My question.
I'd like to know the user name in the program wunderbar.php. I've jsut got it working a little.
I have a post with a link to my-forum/wunderbar.php If I click on the link it executes wunderbar.php. wunderbar.php calls the template script wuinderbar. I need some way to get the username in here.

I'd really like to put some dynamic content into the template script. Or perhaps have two templates, a top and a tail, and I'll put in the dynamic content in wunderbar.php.

John
Reply With Quote
  #35  
Old 03-25-2007, 06:43 PM
pablo pablo is offline
 
Join Date: Apr 2002
Posts: 32
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Is there an updated version for 3.6.x ?
Reply With Quote
  #36  
Old 01-18-2008, 09:02 PM
Lott Lott is offline
 
Join Date: Mar 2007
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok I'm stumped

I have put in the php file betaform.php
http://askatech.autorepairdata.com/betaform.php
Modified the base template
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(
 'BetaForm'
 );

 // 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('BetaForm') . '");');


 ?>
I even installed the supplied template with no modifications.

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>
And all I get is the white screen of death. I only use the default style on my board. Any help would be great. I really need this to work.
Reply With Quote
  #37  
Old 01-19-2008, 01:18 PM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You need to include global.php from your forum directory...

Change:
PHP Code:
 require_once('./global.php'); 
To:
PHP Code:
$cwd getcwd();
chdir('path/to/your/forums');
require_once(
'global.php');
chdir($cwd); 
Reply With Quote
  #38  
Old 02-27-2008, 02:02 AM
Lott Lott is offline
 
Join Date: Mar 2007
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Opserty View Post
You need to include global.php from your forum directory...

Change:
PHP Code:
 require_once('./global.php'); 
To:
PHP Code:
$cwd getcwd();
chdir('path/to/your/forums');
require_once(
'global.php');
chdir($cwd); 
I have tried his the way I understand it, but maybe I am getting this wrong so I will throw in more info. I have been able to get the test pages to work and several live pages that live in the forum folder. But now I really need to put a php page in another folder.

Here is my folderstructure.

/rootfolder/forum

I want a php file to work in

/rootfolder/anotherfolder

So here is the code I am trying to use in my php file in /rootfolder/anotherfolder

PHP Code:
$cwd getcwd();
chdir('/rootfolder/forum');
require_once(
'global.php');
chdir($cwd); 
Can anyone spot a typo or syntax error.

Thanks if you can help.

BTW, I have dropped a straight HTML file in /rootfolder/anotherfolder and that works fine. The php files gives me a white screen and when I view the source all I see are the default html structure tags.
Reply With Quote
  #39  
Old 02-27-2008, 01:43 PM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Try:
PHP Code:
chdir('./../rootfolder/forum'); 
Notice the two dots, else try:
PHP Code:
chdir('../rootfolder/forum'); 
Reply With Quote
  #40  
Old 02-28-2008, 02:46 PM
petteyg359 petteyg359 is offline
 
Join Date: Dec 2007
Posts: 57
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Code:
<?php
// ###SET PHP ENVIRONMENT###
error_reporting(E_ALL & ~E_NOTICE);
// ###DEFINE IMPORTANT CONSTANTS###
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'PHPFILENAMEWITHOUTEXTENSION'); // If your PHP file is goober.php, this should be goober
// ###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(
    'INSERTTHENAMEOFTHETEMPLATEYOUAREUSINGHERE',
);
// pre-cache templates used by specific actions
$actiontemplates = array(
);
// ###REQUIRE BACK-END###
require_once('./global.php'); // If your PHP file is not in your root forum directory, then change this path.
// ###START MAIN SCRIPT###
$navbits = array();
$navbits[$parent] = 'EVEIT';
$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');

// ###YOUR PHP CODE###
// Put all your PHP code here. You want to store all output in variables,
// and then display those variables from the template, rather than echoing
// data directly from the PHP file. Anything output by this PHP file will screw
// up your layout and not follow the CSS and styles of your forum.
$outputvara = '<table width="50%"><tr><td>Hello</td><td>'
$outputvara .= $vbulletin->userinfo['username'].'</td></tr></table>';
// ###END OF YOUR PHP CODE###

// ###TEMPLATE OUTPUT###
eval('print_output("' . fetch_template('INSERTTHENAMEOFTHETEMPLATEYOUAREUSINGHERE') . '");');
?>
In your template, you then put

Code:
$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
<title>$vboptions[bbtitle]</title>
$headinclude
</head>
<body>
$header

$navbar

<!-- PUT YOUR CONTENT AFTER THIS -->
<if condition="is_member_of($bbuserinfo, array(2))">
<!-- If user if a member of group 2 ("Registered Users") display the content -->
<div>$outputvara</div>
<else />
<div>You aren't registered. Please register</div>
</if>
<!-- PUT YOUR CONTENT BEFORE THIS -->

$footer
</body>
</html>
You can use whatever you want to in your template, but these will at least give you a working start and shows where your code should actually be placed. If your post was the actual code you were using, seems like you had a few things out of order. You don't necessarily need anything at all in the "YOUR PHP CODE" section if you don't want to set any custom data, but you need the rest of the file.

If the code you posted is what you're actually using, you need to change the DEFINE 'yourscript' to the name of the PHP file, minus the .php extension.
Reply With Quote
  #41  
Old 02-29-2008, 02:47 PM
Never2Day Never2Day is offline
 
Join Date: Aug 2007
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Reply With Quote
Reply

Thread Tools

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 05:46 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.04893 seconds
  • Memory Usage 2,344KB
  • Queries Executed 26 (?)
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
  • (7)bbcode_php
  • (1)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
  • (3)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)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