vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 4 Articles (https://vborg.vbsupport.ru/forumdisplay.php?f=242)
-   -   [HOW TO - vB4] Create your own vBulletin page (https://vborg.vbsupport.ru/showthread.php?t=228112)

Allan 01-14-2010 09:15 PM

Quote:

Originally Posted by Lynne (Post 1955688)
Sorry, I missed this. You would just do something like this...
PHP Code:

<?php

.......

// pre-cache templates used by all actions
$globaltemplates = array('TEST',
'TEST2',
'TEST3',
);

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

$navbits construct_navbits(array('' => 'Test Page'));
$navbar render_navbar_template($navbits);

// ###### When do == 'xxx' #####
if ($_REQUEST['do'] == 'xxx')
{
$pagetitle 'My Page Title';

$templater vB_Template::create('TEST');
$templater->register_page_templates();
$templater->register('navbar'$navbar);
$templater->register('pagetitle'$pagetitle);
print_output($templater->render());
}

// ###### When do == 'yyy' #####
if ($_REQUEST['do'] == 'yyy')
{
$pagetitle 'My Page Title';

$templater vB_Template::create('TEST2');
$templater->register_page_templates();
$templater->register('navbar'$navbar);
$templater->register('pagetitle'$pagetitle);
print_output($templater->render());
}

// ###### When do does not equal 'xxx' or 'yyy' #####

$pagetitle 'My Page Title';

$templater vB_Template::create('TEST3');
$templater->register_page_templates();
$templater->register('navbar'$navbar);
$templater->register('pagetitle'$pagetitle);
print_output($templater->render());


?>

There are all sorts of different ways to do it, but that is one simple way.

Thank you for your help :)

Switch3130 01-15-2010 12:21 AM

Great work.

PukkaBen 01-15-2010 10:53 AM

Hey everyone!! I have had some great joy with this article, and it has helped me out a lot, but now I am wanting to do a bit more with it. I have now got so many custom pages that I was wondering if I could put them all together to pull up different templates.

For example...
radio.php would be the only PHP file I need to build.
Then I have a link to radio.php?id=status, that will pull up the status template.
radio.php?id=schedule, that will pull up the schedule template
And so on.

This would then cut down the amount of pages I have on my web server, but keep what I have done already!!

I tried using the example above to no avil... not sure how that is supposed to work but it didn't!! I wonder if you could you the "if, elsif, else" solution on it though?

PHP Code:

<?php

.......

// pre-cache templates used by all actions
$globaltemplates = array('TEST',
'TEST2',
'TEST3',
);

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

$navbits construct_navbits(array('' => 'Test Page'));
$navbar render_navbar_template($navbits);

// ###### When do == 'xxx' #####
if ($_REQUEST['do'] == 'xxx')
{
$pagetitle 'My Page Title';

$templater vB_Template::create('TEST');
$templater->register_page_templates();
$templater->register('navbar'$navbar);
$templater->register('pagetitle'$pagetitle);
print_output($templater->render());
}

// ###### When do == 'yyy' #####
elseif ($_REQUEST['do'] == 'yyy')
{
$pagetitle 'My Page Title';

$templater vB_Template::create('TEST2');
$templater->register_page_templates();
$templater->register('navbar'$navbar);
$templater->register('pagetitle'$pagetitle);
print_output($templater->render());
}

// ###### When do does not equal 'xxx' or 'yyy' #####

$pagetitle 'My Page Title';

$templater vB_Template::create('TEST3');
$templater->register_page_templates();
$templater->register('navbar'$navbar);
$templater->register('pagetitle'$pagetitle);
print_output($templater->render());


?>

Any help would be greatly appreciated, so thanks in advance!!

Lynne 01-15-2010 02:20 PM

If you are using id as the passed variable, then you need to use $_REQUEST['id'] in the code, not $_REQUEST['do']

PukkaBen 01-15-2010 02:42 PM

Okay, here is what I am using...

PHP Code:

<?php 

// pre-cache templates used by all actions 
$globaltemplates = array('about'
'news'
'notfound',
'schedule',
'status'
); 

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

$navbits construct_navbits(array('' => 'Test Page')); 
$navbar render_navbar_template($navbits); 

// ###### When do == 'xxx' ##### 
if ($_REQUEST['id'] == 'about'

$pagetitle 'About Pukka Radio'

$templater vB_Template::create('news'); 
$templater->register_page_templates(); 
$templater->register('navbar'$navbar); 
$templater->register('pagetitle'$pagetitle); 
print_output($templater->render()); 


// ###### When do == 'yyy' ##### 
elseif ($_REQUEST['id'] == 'news'

$pagetitle 'Pukka Radio News'

$templater vB_Template::create('news'); 
$templater->register_page_templates(); 
$templater->register('navbar'$navbar); 
$templater->register('pagetitle'$pagetitle); 
print_output($templater->render()); 


// ###### When do == 'yyy' ##### 
elseif ($_REQUEST['id'] == 'schedule'

$pagetitle 'Radio Schedule'

$templater vB_Template::create('schedule'); 
$templater->register_page_templates(); 
$templater->register('navbar'$navbar); 
$templater->register('pagetitle'$pagetitle); 
print_output($templater->render()); 


// ###### When do == 'yyy' ##### 
elseif ($_REQUEST['id'] == 'status'

$pagetitle 'Radio Status'

$templater vB_Template::create('status'); 
$templater->register_page_templates(); 
$templater->register('navbar'$navbar); 
$templater->register('pagetitle'$pagetitle); 
print_output($templater->render()); 


// ###### When do does not equal 'xxx' or 'yyy' ##### 

$pagetitle 'You Are Lost!!'

$templater vB_Template::create('notfound'); 
$templater->register_page_templates(); 
$templater->register('navbar'$navbar); 
$templater->register('pagetitle'$pagetitle); 
print_output($templater->render()); 


?>


When I load up radio.php I get the error...

HTML Code:

Fatal error: Call to undefined function construct_navbits() in /home/pukkarad/public_html/forum/radio.php on line 15

Lynne 01-15-2010 02:53 PM

Quote:

Originally Posted by PukkaBen (Post 1956560)
Okay, here is what I am using...

PHP Code:

<?php 

// pre-cache templates used by all actions 
$globaltemplates = array('about'
'news'
'notfound',
'schedule',
'status'
); 

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

$navbits construct_navbits(array('' => 'Test Page')); 
$navbar render_navbar_template($navbits); 

// ###### When do == 'xxx' ##### 
if ($_REQUEST['id'] == 'about'

$pagetitle 'About Pukka Radio'

$templater vB_Template::create('news'); 
$templater->register_page_templates(); 
$templater->register('navbar'$navbar); 
$templater->register('pagetitle'$pagetitle); 
print_output($templater->render()); 


// ###### When do == 'yyy' ##### 
elseif ($_REQUEST['id'] == 'news'

$pagetitle 'Pukka Radio News'

$templater vB_Template::create('news'); 
$templater->register_page_templates(); 
$templater->register('navbar'$navbar); 
$templater->register('pagetitle'$pagetitle); 
print_output($templater->render()); 


// ###### When do == 'yyy' ##### 
elseif ($_REQUEST['id'] == 'schedule'

$pagetitle 'Radio Schedule'

$templater vB_Template::create('schedule'); 
$templater->register_page_templates(); 
$templater->register('navbar'$navbar); 
$templater->register('pagetitle'$pagetitle); 
print_output($templater->render()); 


// ###### When do == 'yyy' ##### 
elseif ($_REQUEST['id'] == 'status'

$pagetitle 'Radio Status'

$templater vB_Template::create('status'); 
$templater->register_page_templates(); 
$templater->register('navbar'$navbar); 
$templater->register('pagetitle'$pagetitle); 
print_output($templater->render()); 


// ###### When do does not equal 'xxx' or 'yyy' ##### 

$pagetitle 'You Are Lost!!'

$templater vB_Template::create('notfound'); 
$templater->register_page_templates(); 
$templater->register('navbar'$navbar); 
$templater->register('pagetitle'$pagetitle); 
print_output($templater->render()); 


?>

When I load up radio.php I get the error...

HTML Code:

Fatal error: Call to undefined function construct_navbits() in /home/pukkarad/public_html/forum/radio.php on line 15

Please take a look again at the first post and see all the stuff above the START MAIN SCRIPT part of the page that is *required* for the page to work.

PukkaBen 01-15-2010 02:57 PM

Sorted!! Was just missing one thing. But now, how do I make sure that the tab shows selected for that page? Page name is "radio.php"?

Lynne 01-15-2010 04:59 PM

Quote:

Originally Posted by PukkaBen (Post 1956578)
Sorted!! Was just missing one thing. But now, how do I make sure that the tab shows selected for that page? Page name is "radio.php"?

You should ask that question in the thread where you got the code for your tab. There are several mods and several articles on how to add a tab and they all seem to do it a bit differently, so you need to ask in that thread.

ragtek 01-15-2010 07:37 PM

you don't need all the templates in the globaltemplates array;)

If you need them only for a special action (do == 'xxx') you can use the actiontemplates

Lynne 01-15-2010 08:30 PM

Quote:

Originally Posted by ragtek (Post 1956810)
you don't need all the templates in the globaltemplates array;)

If you need them only for a special action (do == 'xxx') you can use the actiontemplates

I've never understood the difference in those arrays (although I must admit to not having looked very hard into the issue).


All times are GMT. The time now is 06:16 AM.

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.01996 seconds
  • Memory Usage 1,848KB
  • 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_html_printable
  • (4)bbcode_php_printable
  • (4)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (3)pagenav_pagelinkrel
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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