vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3 Articles (https://vborg.vbsupport.ru/forumdisplay.php?f=187)
-   -   How to create your own vBulletin-powered page! (uses vB templates) (https://vborg.vbsupport.ru/showthread.php?t=62164)

Gary King 03-03-2004 10:00 PM

How to create your own vBulletin-powered page! (uses vB templates)
 
1 Attachment(s)
Want to create your very own vBulletin powered page which includes the header, footer, and the user permissions system as well?

Well now you can :D

Want to know how it will look? Take a look at the attached screenshot below! :)

Now includes the Who's Online modification! :)
Also, instructions included on how to create your own pages that are integrated with current vBulletin files! :D

I'm going to give you a generic page but you can easily modify the contents of the page by changing the template ;)

So here we go :)

Instructions:

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):
PHP Code:

<?php

// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS'1);
define('THIS_SCRIPT''test'); // 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 ############################
require_once('./global.php');

// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################

$navbits = array();
$navbits[$parent] = 'Test Page';

$navbits construct_navbits($navbits);
eval(
'$navbar = "' fetch_template('navbar') . '";');
eval(
'print_output("' fetch_template('TEST') . '");');

?>

Be sure to change 'TEST' to the actual template name, and change 'test' to the filename. Also, change 'Test Page' to whatever you want to show in the navbar, such as 'Viewing Member Profile' (just an example).

Now create the template, called TEST with the following content:
HTML Code:

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

$navbar

<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<tr>
    <td class="tcat">Title</td>
</tr>
<tr>
    <td class="alt1">Text</td>
</tr>
</table>

$footer
</body>
</html>

All done :D
Now check it out by going to test.php ;)

Who's Online Modification

Now if you want to show who is browsing this new page of yours, just open up includes/functions_online.php and find:
PHP Code:

    case 'bugs.php':
        
$userinfo['activity'] = 'bugs';
        break; 

Below, add:
PHP Code:

    case 'test.php':
        
$userinfo['activity'] = 'test';
        break; 

(Be sure to change the values to your own!)

Then find:
PHP Code:

        case 'modcplogin':
            
$userinfo['action'] = $vbphrase['moderator_control_panel_login'];
            break; 

Below add:
PHP Code:

        case 'test':
            
$userinfo['action'] = 'Viewing Test Page';
            break; 

All done! :D

----------------------------------

Also if you want to create your own pages 'within' current vBulletin files, do the following:

Open the file you want, and then right before the final ?> in the source code, add the following:

PHP Code:

if ($_REQUEST['do'] == 'xxx')
{
    eval(
'print_output("' fetch_template('TEMPLATE_XXX') . '");');


Replace 'xxx' with whatever you want ?do= in the query string to be (for example, replace 'xxx' with 'showprofile' so then someone would type in example.php?do=showprofile to view this template.) Then of course, change TEMPLATE_XXX to your template name, it's that simple! :D


edit by Lynne: If running 3.8.4 or above, see this post to take care of the PHP 5.3.0-related problems - https://vborg.vbsupport.ru/showpost....postcount=1171

alkatraz 03-04-2004 10:20 PM

very cool

Quote:

user permissions system as well
how would you go about using that?

also, would it be hard to pass the members username/id into this page? (sorry if thats an easy question)

SVTBlackLight01 03-04-2004 10:23 PM

This is great! I assume the template standard condtionals will work here?

What's the best way to use this on a non-vb page?

dirtymerc 03-04-2004 10:27 PM

Installed, works marvelously! Thank YOU SO MUCH!

TheAnt 03-04-2004 11:14 PM

SVT. I believe that as long as global is called via the files, the conditionals will work.

Gary King 03-04-2004 11:14 PM

Quote:

Originally Posted by SVTBlackLight01
This is great! I assume the template standard condtionals will work here?

What's the best way to use this on a non-vb page?

I'd suggest to copy the non-vB page content and copy into a template ;)

Gary King 03-04-2004 11:15 PM

Quote:

Originally Posted by alkatraz
very cool



how would you go about using that?

also, would it be hard to pass the members username/id into this page? (sorry if thats an easy question)

You don't really have to worry about those, they are already in action ;)
Try it yourself - install this hack and you'll see the user/pass login part at the top :)

Also if guests are not allowed to view your forums, then they can't view these new pages you create, etc. :)

Zachery 03-05-2004 12:38 AM

Wow Gary, great thing considering this is my tutorial :P

SVTBlackLight01 03-05-2004 01:00 AM

Quote:

Originally Posted by Gary W
I'd suggest to copy the non-vB page content and copy into a template ;)

What I'm saying is how can you make test.php (in this case) work outside the vBulletin directory?

Boofo 03-05-2004 01:02 AM

Quote:

Originally Posted by Zachery
Wow Gary, great thing considering this is my tutorial :P

Now why doesn't that surprise me? That seems to be the norm around here. ;)

Gary King 03-05-2004 01:05 AM

Quote:

Originally Posted by Boofo
Now why doesn't that surprise me? That seems to be the norm around here. ;)

Wow thanks for following me around and saying these types of things as you please ;)

Anyways, what do you mean Zachery? That I copied your tutorial..? I never even knew you released one (to add to that, I never even seen you around here before ;))

For 'tutorials' such as generic as this one, I don't think that there is really any proprietorship for anyone since it can be displayed in many forms; I haven't seen yours but I bet that mine is at least noticeably different from yours.

Boofo 03-05-2004 01:20 AM

Quote:

Originally Posted by Gary W
Wow thanks for following me around and saying these types of things as you please ;)

Then be original. 90% of the hacks you have released for vB3 have been someone else's. I mean, look at your sig. You're working on vBWar for vB3? Have you even checked with Dark_Wizard to see if he minds?

Gary King 03-05-2004 01:22 AM

Quote:

Originally Posted by Boofo
Then be original. 90% of the hacks you have released for vB3 have been someone else's. I mean, look at your sig. You're working on vBWar for vB3? Have you even checked with Dark_Wizard to see if he minds?

Actually, for your information, I am working with Dark_Wizard on vBWar v3. We are in a partnership for this. Have you even taken a look at the vBWar site yet? ( http://vbwar.dpclan.us/forums/showgroups.php? )

Boofo 03-05-2004 01:42 AM

Ok, 89%, then. Maybe you ought to put Helping with vBWar then, It is his hack.

Jagang 03-05-2004 01:47 AM

oooh he got you on that one Boofo. ;)

Gary King 03-05-2004 01:47 AM

Quote:

Originally Posted by Boofo
Ok, 89%, then. Maybe you ought to put Helping with vBWar then, It is his hack.

Well I am working on vBWar for vB3, we are practically re-building it from the ground up. Him and I are the developers of vBWar for vB3, and yes he knows that I know that he has put more time into it than I have, but mainly because I joined him only after he already had many of the things working, if not completely 100%. Anyways, this would be between me and him, and truly, it doesn't really matter what it says in my signature in my opinion, it's the final product that counts ;)

Boofo 03-05-2004 02:02 AM

Not even close. He still couldn't do an original hack if he had to. He has to partner with someone who has a hack that IS original. You figure out the math.

Gio Takahashi 03-05-2004 02:12 AM

Come on guys, regardless that this is original or not, he still took the time to come up with this, and you gotta give him credit for that. this guy put in everything in a test page including headers and such, I found that very helpful.

SVTBlackLight01 03-05-2004 02:17 AM

So is this a hack or just a debate over who is stealing what from who? Either way, it's a vb.org staff issue, so if there is a problem click here.

I was looking for something like this and if there was already a tutorial, then I haven't seen it.

alkatraz 03-05-2004 04:18 AM

Quote:

So is this a hack or just a debate over who is stealing what from who? Either way, it's a vb.org staff issue, so if there is a problem click here.
^ amen.. too many hacks/threads/hackers have been spoiled over pointless public accusations. if there's a problem, report it to the staff and leave it at that

Gary W: thx for answering my question =)

Gary King 03-05-2004 11:15 AM

Quote:

Originally Posted by alkatraz
^ amen.. too many hacks/threads/hackers have been spoiled over pointless public accusations. if there's a problem, report it to the staff and leave it at that

Gary W: thx for answering my question =)

No problemo :)

gmarik 03-05-2004 04:18 PM

Not very promissing, waiting for somehting more fundamental ...

SVTBlackLight01 03-05-2004 04:37 PM

Quote:

Originally Posted by SVTBlackLight01
What's the best way to use this on a non-vb page?

OK. To answer my own question, on line 32, I replaced

Code:

require_once('./global.php');
with this

Code:

chdir('/home/site/public_html/testvb/');
require('./global.php');

;)

surfhog 03-05-2004 04:53 PM

Sorry newbie here, can some kind sole please explain what this is suppose to do.

I have created the test.php and called it and yes looks nice:) What is the template part for and how would you best make use of this please.

Thanks

lol well hush my mouth, I see now (-0-0-) ;)

Yes nice concept and thanks

monstergamer 03-05-2004 07:04 PM

i have done some thing like this a while ago and i loe it as i use it for my affialites and rules page

Gary King 03-05-2004 07:35 PM

Quote:

Originally Posted by gmarik
Not very promissing, waiting for somehting more fundamental ...

This is as basic as it gets ;)

dpakman91 03-05-2004 08:04 PM

alright, hopefully someone can help me with this:

i have some large files i want to make available to certain usergroups, but not other. the files are way too large to upload as "attachments" with vb so i would have to upload them via ftp and then just post a link in a thread...of course this means the only way to prevent people from downloading it is to prevent them from seeing the thread at all, which is not my intention.

with this new way of making a vb page, is there any way to do what i am trying to do?

any help would be great.

Gary King 03-05-2004 10:42 PM

Quote:

Originally Posted by dpakman91
alright, hopefully someone can help me with this:

i have some large files i want to make available to certain usergroups, but not other. the files are way too large to upload as "attachments" with vb so i would have to upload them via ftp and then just post a link in a thread...of course this means the only way to prevent people from downloading it is to prevent them from seeing the thread at all, which is not my intention.

with this new way of making a vb page, is there any way to do what i am trying to do?

any help would be great.

Try something like:

PHP Code:

<?php

require_once('./global.php');

if (
$_REQUEST[filename])
{
    if (
$bbuserinfo[usergroupid] == 6)
    {
        
header("Location: $_REQUEST[filename]");
    }
}

?>

Be sure to change the path to the global.php and the usergroupid as well (currently it's 6 for admins only).

Also, save this code in a file such as download.php and then you can use the file by linking to it like http://www.example.com/forum/downloa...=something.php which will download www.examlpe.com/forum/files/something.php if the user is an administrator.

Ryan Ashbrook 03-05-2004 10:55 PM

Nice job although I think personally this would be a template mod rather than a hack, since no vBulletin files were modified.

Still good job though. ;)

The Watcher 03-05-2004 11:44 PM

This looks promising gary -> a few questions !!!

1) How can I use this outside my forums directory? Do i just use this?

PHP Code:

chdir('/home/site/public_html/forums/');
require(
'./global.php'); 

2) How can I limit access to this page to only users in the usergroups 7, 8 and 9 ?

3) I have a php links script which I would like integrated into my forums in terms of the way it looks and the way only certain usergroups can access it. Can i use your hack to do this? If so, how I would I make a php page appear in the content area instead of the TEST template ???

Thanks again :)

Gary King 03-06-2004 12:15 AM

Quote:

Originally Posted by The Watcher
This looks promising gary -> a few questions !!!

1) How can I use this outside my forums directory? Do i just use this?

PHP Code:

chdir('/home/site/public_html/forums/');
require(
'./global.php'); 

2) How can I limit access to this page to only users in the usergroups 7, 8 and 9 ?

3) I have a php links script which I would like integrated into my forums in terms of the way it looks and the way only certain usergroups can access it. Can i use your hack to do this? If so, how I would I make a php page appear in the content area instead of the TEST template ???

Thanks again :)

1) correct
2) replace $bbuserinfo[usergroupid] == 6 with $bbuserinfo[usergroupid] == 7 or $bbuserinfo[usergroupid] == 8 or $bbuserinfo[usergroupid] == 9
3) Replace eval('print_output("' . fetch_template('TEST') . '");'); with your PHP stuff.

VeoMorphine 03-07-2004 01:23 PM

Quote:

Originally Posted by Gary W
Try something like:

PHP Code:

<?php

require_once('./global.php');

if (
$_REQUEST[filename])
{
    if (
$bbuserinfo[usergroupid] == 6)
    {
        
header("Location: $_REQUEST[filename]");
    }
}

?>

Be sure to change the path to the global.php and the usergroupid as well (currently it's 6 for admins only).

Also, save this code in a file such as download.php and then you can use the file by linking to it like http://www.example.com/forum/downloa...=something.php which will download www.examlpe.com/forum/files/something.php if the user is an administrator.

I just want to make a correctiion to your code:
You use if($bbuserinfo[usergroupid]. On vb3, there is a new is_member_of function, that will search your primary and secondary groups for that user. Here is how the code works with it.


PHP Code:

<?php

require_once('./global.php');

if (
$_REQUEST[filename])
{
    if (
is_member_of($bbuserinfo6) OR is_member_of($bbuserinfo5) OR is_member_of($bbuserinfo7));
    {
        
header("Location: $_REQUEST[filename]");
    }
}

?>

that makes it so usergroup 6 5 and 7 can download that file.

Gary King 03-07-2004 01:33 PM

Quote:

Originally Posted by VeoMorphine
I just want to make a correctiion to your code:
You use if($bbuserinfo[usergroupid]. On vb3, there is a new is_member_of function, that will search your primary and secondary groups for that user. Here is how the code works with it.


PHP Code:

<?php

require_once('./global.php');

if (
$_REQUEST[filename])
{
    if (
is_member_of($bbuserinfo6) OR is_member_of($bbuserinfo5) OR is_member_of($bbuserinfo7));
    {
        
header("Location: $_REQUEST[filename]");
    }
}

?>

that makes it so usergroup 6 5 and 7 can download that file.

Ah okay thanks I never knew about that function :)

Davey-UK 03-07-2004 01:55 PM

I like the idea of this, but looking around the Mod request pages, alot of people are looking for the last posts etc also to be displayed on a non vb page. I remember using something called API over at invision which was great. All you did was put includes in the page where you wanted specific things that were pulled from your board via templates which you could modify. Anyone know if something like this is going to be made? Gary W?

attroll 03-08-2004 02:52 AM

I have been using this mod since VB 2. I see some changes. I don't care who wrote it. But I have two request.

1. I would like the new navbar that Beta 3 uses. Below the header in each page that I create.

2. I would like to see an icon or something on each page for a printable version.

SVTBlackLight01 03-08-2004 04:49 AM

Quote:

Originally Posted by The Watcher
This looks promising gary -> a few questions !!!

1) How can I use this outside my forums directory? Do i just use this?

PHP Code:

chdir('/home/site/public_html/forums/');
require(
'./global.php'); 


That works, but I discovered that you have to have the full URL for vbulletin_global.js and vbulletin_menu.js in the headinclude template. Otherwise the drop-down menus in the navbar will not work outside of the forum directory.

Osterling 03-08-2004 08:56 AM

i hope some one answers my question here..

on the second part you say to make a template.. now what should i save the extention of my template..

for your ur example: test < should it have an exention be?

i am really new to php and all of it, so if you could please explain this 2 me, i'd be grateful

Gary King 03-08-2004 11:08 AM

Quote:

Originally Posted by exasko
i hope some one answers my question here..

on the second part you say to make a template.. now what should i save the extention of my template..

for your ur example: test < should it have an exention be?

i am really new to php and all of it, so if you could please explain this 2 me, i'd be grateful

Templates don't have extensions :)

Osterling 03-08-2004 11:09 AM

so if i create it in notepad and save it as test that will work?

Gary King 03-08-2004 11:09 AM

Quote:

Originally Posted by attroll
I have been using this mod since VB 2. I see some changes. I don't care who wrote it. But I have two request.

1. I would like the new navbar that Beta 3 uses. Below the header in each page that I create.

2. I would like to see an icon or something on each page for a printable version.

1. already is there


All times are GMT. The time now is 02:03 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.02394 seconds
  • Memory Usage 1,891KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code_printable
  • (1)bbcode_html_printable
  • (13)bbcode_php_printable
  • (20)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete