Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > vBulletin 4 Articles
[HOW TO - vB4] Create your own vBulletin page
Lynne's Avatar
Lynne
Join Date: Sep 2004
Posts: 41,180

 

California/Idaho
Show Printable Version Email this Page Subscription
Lynne Lynne is offline 11-15-2009, 10:00 PM

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());

?>
- Be sure to change 'TEST' to the actual template name (WARNING: the template name is CASE SENSITIVE!!!), and change 'test' to the filename or a unique name for the page. Also, change 'Test Page' and 'My Page Title' to whatever you want to show in the navbits, such as 'Viewing Member Profile' (just an example).

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
Reply With Quote
  #1012  
Old 10-19-2013, 03:25 PM
stevectaylor stevectaylor is offline
 
Join Date: Aug 2007
Posts: 68
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Lynne View Post
Did you try just adding them into the template after the headininclude template is called?

HTML Code:
<meta name="keywords" content="xxxx" />
<meta name="description" content="yyyy" />
and then change the condition in the headinclude template to not show those for your page:
HTML Code:
<vb:if condition="$show['threadinfo'] OR Your Condition">

<vb:elseif condition="$show['foruminfo']" />
other stuff....
        <meta name="keywords" content="{vb:raw vboptions.keywords}" />
        <meta name="description" content="{vb:raw vboptions.description}" />
</vb:if>
Hi Lynn,

A little stuck on this?

--------------- Added [DATE]1382201159[/DATE] at [TIME]1382201159[/TIME] ---------------

And if just by a little fairy dust of posting that if came too me what I did wrong. lol
Reply With Quote
  #1013  
Old 10-20-2013, 01:30 PM
MacroPhotoPro MacroPhotoPro is offline
 
Join Date: Feb 2012
Posts: 122
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello;

I am creating an image-hosting website for which I require custom pages. This page serves the purpose, but I notice that it does not automatically re-size like the other vBulletin pages (see attached).

For example, my main desktop monitor has 1920 screen resolution, whereas the ancient laptop I am on right now only has 1024 screen resolution.

When I view the vBulletin forum on the smaller screen, everything is automatically re-sized so that it fits my 1024 resolution screen. (it even gets re-sized to fit my smartphone screen.

However, my custom page does NOT automatically re-size, and so the excess images/text kind of "spills over" to the right (again see attachments for a comparison).

So my question is, how do I construct my custom pages so that they too automatically re-size to fit smaller screens?

Thanks for any help,

Jack
Attached Images
File Type: jpg custom.JPG (84.0 KB, 0 views)
File Type: jpg forum.JPG (158.4 KB, 0 views)
Reply With Quote
  #1014  
Old 10-20-2013, 03:19 PM
cellarius's Avatar
cellarius cellarius is offline
 
Join Date: Aug 2005
Posts: 1,987
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

My guess: Do you use a mobile style? If that is the case, you need to have a fitting template for your cutom page in your mobile style.
Reply With Quote
  #1015  
Old 10-20-2013, 04:13 PM
MacroPhotoPro MacroPhotoPro is offline
 
Join Date: Feb 2012
Posts: 122
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by cellarius View Post
My guess: Do you use a mobile style? If that is the case, you need to have a fitting template for your cutom page in your mobile style.
Thank you for answering, but it has nothing to do with the mobile style. It has to do with some kind of auto-resolving I think.

For example, there is no mobile style being used when I click the forum tab, yet the forum.php page automatically resolves to fit the resolution of my smaller screen ... yet this same thing does not happen when I click my ImageHosting tab and get my imagehosting.php page.

In no case have I employed my mobile style. I have used my own customized style, yet some kind of coding is in my forum.php page that is not in my custom php page, and that "something" is what I am inquiring about

Thanks again,

Jack
Reply With Quote
  #1016  
Old 10-20-2013, 04:47 PM
Digital Jedi's Avatar
Digital Jedi Digital Jedi is offline
 
Join Date: Oct 2006
Location: PopCulturalReferenceLand
Posts: 5,171
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by MacroPhotoPro View Post
Hello;

I am creating an image-hosting website for which I require custom pages. This page serves the purpose, but I notice that it does not automatically re-size like the other vBulletin pages (see attached).

For example, my main desktop monitor has 1920 screen resolution, whereas the ancient laptop I am on right now only has 1024 screen resolution.

When I view the vBulletin forum on the smaller screen, everything is automatically re-sized so that it fits my 1024 resolution screen. (it even gets re-sized to fit my smartphone screen.

However, my custom page does NOT automatically re-size, and so the excess images/text kind of "spills over" to the right (again see attachments for a comparison).

So my question is, how do I construct my custom pages so that they too automatically re-size to fit smaller screens?

Thanks for any help,

Jack
What is the width parameters set for the large image displayed in the photo pages? Do you have a [minicode]max-width[/minicode] set, because that seems to be what's pushing the images off screen.
Reply With Quote
  #1017  
Old 10-20-2013, 04:56 PM
MacroPhotoPro MacroPhotoPro is offline
 
Join Date: Feb 2012
Posts: 122
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Digital Jedi View Post
What is the width parameters set for the large image displayed in the photo pages? Do you have a [minicode]max-width[/minicode] set, because that seems to be what's pushing the images off screen.

I don't know. Possibly, yes. We have different-sized thumbnails: tiny, small, medium, large, jumbo (150 px, 400 px, 800 px, 1200 px, and 2500 px).

I just use the template, and so maybe there can be some kind of "flexible" coding employed that adjusts???

Thank you.
Reply With Quote
  #1018  
Old 10-20-2013, 05:28 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by MacroPhotoPro View Post
I don't know. Possibly, yes. We have different-sized thumbnails: tiny, small, medium, large, jumbo (150 px, 400 px, 800 px, 1200 px, and 2500 px).

I just use the template, and so maybe there can be some kind of "flexible" coding employed that adjusts???

Thank you.
If you want images to automatically resize when you change the browser size, then you need to write some CSS to have it do this. The only way we can help with that is if you post a link to the custom page with the images on it.
Reply With Quote
  #1019  
Old 10-23-2013, 10:45 PM
Rudiere Rudiere is offline
 
Join Date: Aug 2013
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Lynne View Post
You can't use echo or it will end up on the top of the page. You need to take your data and output it to a variable:

$myvar = '';
start of loop
$myvar .= "html here";
end of loop
make sure to register $myvar for use in your template

and in the template, put
{vb:raw myvar}
Where do I put this code?

To perform within the models.
Reply With Quote
  #1020  
Old 10-24-2013, 01:32 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Rudiere View Post
Where do I put this code?

To perform within the models.
The top is php code, so it goes into your php file. The bottom is template code so it goes into your template. But that was in answer to a question and isn't going to help you much unless you understood the original question and what was going on.
Reply With Quote
  #1021  
Old 11-09-2013, 05:30 PM
MacroPhotoPro MacroPhotoPro is offline
 
Join Date: Feb 2012
Posts: 122
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

One of the things I noticed on this "custom page" is that photographs which are put on the page do NOT display on Facebook ... whereas they DO display on default vBulletin pages.

For example, if I have a photo on a Forum post, or a Blog Post, or an Article post ... and if I place the URL to that post/article on Facebook ... I get a choice of photo thumbnails to choose from, to associate on Facebook, which includes the photos that I want displayed.

But that does not work for this custom page here. When I post the URL of any page I create with this template on FB, my choice of thumbnails only shows the vBulletin Logo or my Avatar ... any photos I post are not available. What do I have to do to change this?

When I have a photo on this custom page, and if I post the URL to it, I want my photos to be among the thumbnail choices I have.

How can I accomplish this?

Thanks,
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 04:51 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.05814 seconds
  • Memory Usage 2,384KB
  • 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
  • (3)bbcode_code
  • (3)bbcode_html
  • (7)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
  • (4)pagenav_pagelink
  • (4)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (58)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (2)postbit_attachment
  • (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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • postbit_attachment
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete