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)

vap0r-7 10-20-2010 10:22 PM

is there a way to use this and have a flash file run in the center on the custom page?

BigJohnny 10-20-2010 10:40 PM

sure, just make a table using vbulletins style variables so it has all the same style, then load your flash file wherever you want in that table.

demo.hidden 10-23-2010 06:48 AM

Hello,

I need to integrate header and footer of the my site in vBulletin.

Is there a way,I do not want to use iframes,neither want to use file_get_contents for getting the code.

Is there a way to do it neatly in vbulletin.

BigJohnny 10-23-2010 12:35 PM

you're reading an article on how to create a vbulletin powered page that uses the vbulletin header and footer.

Did you actually even read it or are you waiting for someone to take you by the hand and read it for you?

cellarius 10-24-2010 08:13 AM

Since the user is new (first post) your derisive reaction is quite uncalled for. Especially as it seems you may not have read his question. Taking him by the hand to go through this article won't help him, since this article does not do what he wants to achieve.

@demo.hidden: You should open your own thread to ask this question in an appropriate forum. This article does not cover your question, hence this thread not really is the place to ask this.

BigJohnny 10-24-2010 09:53 PM

I'm sorry, I didn't even realize he had only a single post. I don't even remember replying to this thread to be honest.

manuelsechi 11-10-2010 01:26 PM

is it possible to capture the output of an external script (maybe using include) and display it in the template? I need to assign some text to a variable and display it

thanks

cellarius 11-10-2010 01:53 PM

That's what the php part is for. Of course you can assign a value to a variable with php.

sivaganeshk 12-01-2010 05:13 AM

Any help for vb 4.1.0 ?

cellarius 12-01-2010 05:51 AM

Quote:

Originally Posted by sivaganeshk (Post 2127807)
Any help for vb 4.1.0 ?

In a thread for vB3.x in the forum "vBulletin 3 Articles"? Probably not.

Try the vB4 version of this tutorial in the "vBulletin 4 Articles" forum: https://vborg.vbsupport.ru/showthread.php?t=228112
It should work perfectly well with vB4.1

ghostpt 12-09-2010 12:06 PM

Hi everyone.

The page title is set on the template,

Code:

<title>$vboptions[bbtitle]</title>
... is there way to set title dynamically within the custom php file?

Thanks in advance.

BirdOPrey5 12-09-2010 02:06 PM

If you make a variable on the .php file like $customtitle, then put <title>$customtitle</title> in the template that *should* work. I'd try it at least.

ghostpt 12-09-2010 04:29 PM

Quote:

Originally Posted by BirdOPrey5 (Post 2131331)
If you make a variable on the .php file like $customtitle, then put <title>$customtitle</title> in the template that *should* work. I'd try it at least.


Thanks BirdOPrey5, I'll give it a try!

Edit: Worked like a charm, thanks!

ni_hao 12-13-2010 11:24 AM

Thanks for the tutorial, works perfect!

just.b.jealous 12-17-2010 04:28 AM

I need some help guys, I've got my page working for the most part. I just need to know how to make it parse BBCode that's being pulled from vBulletins threads.

BirdOPrey5 12-17-2010 04:37 AM

Quote:

Originally Posted by just.b.jealous (Post 2135207)
I need some help guys, I've got my page working for the most part. I just need to know how to make it parse BBCode that's being pulled from vBulletins threads.

You need to initialize and use the BB Code parser...
In the php file near the top add the lines:

PHP Code:

   require_once(DIR '/includes/class_bbcode.php');
   
$bbcode_parser =& new vB_BbCodeParser($GLOBALS['vbulletin'], fetch_tag_list(),true); 

Then you can use this line (change the $rawthread and $parsedthread variables to your needs) to get the parsed output (BB Code converted to HTML)

PHP Code:

 $parsedthread=  $bbcode_parser->parse($rawthread ,'nonforum'true); 

The "true" on the end is to parse smilies too... if you don't want smilies make it "false".

just.b.jealous 12-19-2010 09:15 PM

Quote:

Originally Posted by BirdOPrey5 (Post 2135209)
You need to initialize and use the BB Code parser...
In the php file near the top add the lines:

PHP Code:

   require_once(DIR '/includes/class_bbcode.php');
   
$bbcode_parser =& new vB_BbCodeParser($GLOBALS['vbulletin'], fetch_tag_list(),true); 

Then you can use this line (change the $rawthread and $parsedthread variables to your needs) to get the parsed output (BB Code converted to HTML)

PHP Code:

 $parsedthread=  $bbcode_parser->parse($rawthread ,'nonforum'true); 

The "true" on the end is to parse smilies too... if you don't want smilies make it "false".

awesome, thanks for helping me out,.. I'm a little stuck at the moment though,.. could you take a look at my test.php page for me- it's still not parsing BBCode,..

PHP Code:

<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE & ~8192);  
require_once(
DIR '/includes/class_bbcode.php'); 
$bbcode_parser =& new vB_BbCodeParser($GLOBALS['vbulletin'], fetch_tag_list(),true);
$parsedthread=  $bbcode_parser->parse($rawthread ,'nonforum'true);
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS'1);
define('THIS_SCRIPT''test'); // change this depending on this files name
// ################### 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 ############################
// #######################################################################
eval('print_output("' fetch_template('TEST') . '");');
?>

Using:
PHP Code:

require_once(DIR '/includes/class_bbcode.php'); 

Gives me this error:
Quote:

Warning: require_once(DIR/includes/class_bbcode.php) [function.require-once]: failed to open stream: No such file or directory in /forum/test.php on line 4
Fatal error: require_once() [function.require]: Failed opening required 'DIR/includes/class_bbcode.php' (include_path='.:/usr/local/php5/lib/php') in /forum/test.php on line 4
Using:
PHP Code:

require_once('./includes/class_bbcode.php'); 

Gives me this error:
Quote:

Fatal error: Class 'vBulletinHook' not found in /forum/includes/class_bbcode.php on line 2463
I'm also a little confused on what to do with:
Then you can use this line (change the $rawthread and $parsedthread variables to your needs) to get the parsed output (BB Code converted to HTML)

BirdOPrey5 12-20-2010 12:31 AM

It looks like the errors are because you need the require_once ('./global.php') file above everything else basically... in your script directly under the "error reporting" line near the top. Also if this php file is in the same directory as your forum root (where global.php is located) you don't need the ./ just use require_once ('global.php');

Quote:

I'm also a little confused on what to do with:
Then you can use this line (change the $rawthread and $parsedthread variables to your needs) to get the parsed output (BB Code converted to HTML)
What variable stores the text you need to have parsed? I'm calling it $rawthread in my code... and the output of the BB Code Parsing function, the "translated" text if you will, I'm calling $parsedthread. You can use any names you want but whatever you call $parsedthread is going to be the data you want to output to the browser.

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

Looking over your code you seem to be missing any data to parse... You don't parse a template usually, a template should have real HTML not BB Code. Usually text like posts and signatures would be the only things requiring parsing.

just.b.jealous 12-20-2010 07:18 PM

Well I'm making some progress at least,.. you've got it working- which I owe you millions of thanks for, but I'm having an issue of it parsing a little to much onto the page.

I'll break down what I'm trying to accomplish.

The test.php page calls a new template called test,.
The test template calls a plugin named $homepage_recent_post,..
$homepage_recent_post displays:
7 recent threads from specific subforums,
Display the thread title,
Display the date posted,
Display who posted it,
Display the pagetext, (the post itself),
Display a link to that thread.

If I setup my test.php page like:
PHP Code:

<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE & ~8192);  
// ######################### REQUIRE BACK-END ############################
require_once('global.php');
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS'1);
define('THIS_SCRIPT''test'); // change this depending on this files name
// ################### 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();
// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################
eval('print_output("' fetch_template('TEST') . '");');
?>


With this plugin:
PHP Code:

$numposts='7';

$thrdqry $vbulletin->db->query_read("
    SELECT thread.threadid, thread.title, username, post.dateline, post.pagetext FROM " 
TABLE_PREFIX "thread AS thread
            LEFT JOIN " 
TABLE_PREFIX "post AS post ON thread.firstpostid = post.postid
            WHERE thread.forumid IN (61, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 130, 131, 132, 133, 134, 136, 137, 138, 139) AND thread.visible = '1'
    ORDER BY thread.dateline DESC
    LIMIT 0, 
$numposts ");

while (
$thrds $vbulletin->db->fetch_array($thrdqry))    
{
    
$postdate vbdate($vbulletin->options['dateformat'], $thrds['dateline'], true);
    
$posttime vbdate($vbulletin->options['timeformat'], $thrds['dateline']);
    
$homepage_recent_post .=<<<EOD
<div class="post-1 post type-post hentry category-uncategorized" id="post-1">
    <h2 class="title"><a href="showthread.php?t=
$thrds[threadid]" target="_blank" alt="$thrds[title]" title="$thrds[title]">
        
$thrds[title]
</a>
    </h2>
    <div class="postdate">
        <img src="images/date.png" /> 
$postdate <img src="images/user.png" /> $thrds[username] 
    </div>
    <div class="entry">
        <p>
$thrds[pagetext]</p><a href="showthread.php?t=$thrds[threadid]" target="_blank" alt="$thrds[title]" title="$thrds[title]">
        Read more..
</a><br/><br/>
    </div>
</div>
EOD;
            



I'll get the 7 last post, but they're unparsed.

Now if I setup my test.php like:
PHP Code:

<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE & ~8192);  
// ######################### REQUIRE BACK-END ############################
require_once('global.php');
require_once(
'includes/class_bbcode.php'); 
$bbcode_parser =& new vB_BbCodeParser($GLOBALS['vbulletin'], fetch_tag_list(),true);
$homepage_recent_post=  $bbcode_parser->parse($homepage_recent_post ,'nonforum'true);
// #################### DEFINE IMPORTANT CONSTANTS #######################
define('NO_REGISTER_GLOBALS'1);
define('THIS_SCRIPT''test'); // change this depending on this files name
// ################### 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();
// #######################################################################
// ######################## START MAIN SCRIPT ############################
// #######################################################################
eval('print_output("' fetch_template('TEST') . '");');
?>


and with the same $homepage_recent_post plugin, it'll parse the plugin- pagetext
and all, but then it's parsing too much onto my page. Here's an example of the same post from above, but parsed.

Is there any way to parse just post.pagetext onto this page instead of parsing the entire plugin? If so, how do I go about doing it?

BirdOPrey5 12-20-2010 08:21 PM

The BB Code parsing needs to be done in your plugin not the .php file...

Using the 1st version you posted in the above post make the plugin into:

PHP Code:

$numposts='7';

$thrdqry $vbulletin->db->query_read("
    SELECT thread.threadid, thread.title, username, post.dateline, post.pagetext FROM " 
TABLE_PREFIX "thread AS thread
            LEFT JOIN " 
TABLE_PREFIX "post AS post ON thread.firstpostid = post.postid
            WHERE thread.forumid IN (61, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 130, 131, 132, 133, 134, 136, 137, 138, 139) AND thread.visible = '1'
    ORDER BY thread.dateline DESC
    LIMIT 0, 
$numposts ");

while (
$thrds $vbulletin->db->fetch_array($thrdqry))    
{
    
$postdate vbdate($vbulletin->options['dateformat'], $thrds['dateline'], true);
    
$posttime vbdate($vbulletin->options['timeformat'], $thrds['dateline']);



//Code I added

$thrds[pagetext] =  $bbcode_parser->parse($thrds[pagetext] ,'nonforum'true);  





    
$homepage_recent_post .=<<<EOD
<div class="post-1 post type-post hentry category-uncategorized" id="post-1">
    <h2 class="title"><a href="showthread.php?t=
$thrds[threadid]" target="_blank" alt="$thrds[title]" title="$thrds[title]">
        
$thrds[title]
</a>
    </h2>
    <div class="postdate">
        <img src="images/date.png" /> 
$postdate <img src="images/user.png" /> $thrds[username] 
    </div>
    <div class="entry">
        <p>
$thrds[pagetext]</p><a href="showthread.php?t=$thrds[threadid]" target="_blank" alt="$thrds[title]" title="$thrds[title]">
        Read more..
</a><br/><br/>
    </div>
</div>
EOD;
            


Don't forget to put the:
PHP Code:

 require_once(DIR '/includes/class_bbcode.php');
   
$bbcode_parser =& new vB_BbCodeParser($GLOBALS['vbulletin'], fetch_tag_list(),true); 

At the top of the plugin now... and you may need global.php too, try it and see.

just.b.jealous 12-20-2010 08:37 PM

awesome bro, I'll go check it out right now, thanks for lending me a hand.

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

Almost got it, we're most definitely closer..



It parses the post correctly but parsed the [img] into a clickable link instead of showing the picture. Any ideas? Using your suggestion results like this with or without requiring global at the top of the plugin, I also made the test.php with requiring the bbcode_parser, or the parsing line that it had previously.... I'm stumped..

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

I just noticed something else, the plugin results in 14 results instead of 7, it displays the first 7 threads from the forum and displays each of them twice.

just.b.jealous 12-22-2010 11:24 PM

I have fixed it where it shows the posts twice, but for some reason I cannot get it to parse the images from the post. Any ideas?

BirdOPrey5 12-23-2010 12:22 AM

Yeah forgot they don't parse images when using 'nonforum'- replace that with a valid forum id of one of your forums where images are allowed...

Basically try something like...

Code:

$thrds[pagetext] =  $bbcode_parser->parse($thrds[pagetext] , 2, true,);
Info on bbcode parsing: http://members.vbulletin.com/api/vBu...odeParser.html

just.b.jealous 12-23-2010 02:59 AM

Worked like a charm- I'm good to go. Thanks for helping me out soo much- I appreciate it. Happy Holidays!!

BirdOPrey5 12-23-2010 03:11 AM

Glad to help. :up: Happy Holidays.

DIBBLE 01-09-2011 02:18 PM

How do i add certain forums to the additional page? And would i be able to remove them from my index.php?

Lynne 01-09-2011 05:30 PM

Quote:

Originally Posted by DIBBLE (Post 2146454)
How do i add certain forums to the additional page? And would i be able to remove them from my index.php?

Add them in what way - a link? This is just a php page, so put in whatever php you need/want to do what you want. Or, if you just want a link, just put the link in the template.

Digital Jedi 01-10-2011 03:46 AM

Quote:

Originally Posted by DIBBLE (Post 2146454)
How do i add certain forums to the additional page? And would i be able to remove them from my index.php?

It sounds like all you want is hidden forums.

pulsionpleinair 01-25-2011 02:35 PM

Hi,

I never Create a new file and create the template. Any one cant help me to do that and include that on vbulletin?

Hummell 03-27-2011 02:22 PM

Here are the errors I'm getting on the page I created. Can someone please tell me what I've done wrong?

Quote:

Warning: fetch_template() calls should be replaced by the vB_Template class. Template name: navbar in [path]/includes/functions.php on line 4097

Parse error: syntax error, unexpected T_STRING in /home/ludawgs/public_html/tos.php(42) : eval()'d code on line 1

Warning: fetch_template() calls should be replaced by the vB_Template class. Template name: terms_of_service in [path]/includes/functions.php on line 4097

BirdOPrey5 03-27-2011 02:53 PM

Quote:

Originally Posted by Hummell (Post 2177967)
Here are the errors I'm getting on the page I created. Can someone please tell me what I've done wrong?

What you did wrong was follow instructions for an article written for vBulletin 3.x when you have vBulletin 4.x. Please see the vBulletin 4 articles section for a comparable article- there are some significant differences in programming between the two when it comes to templates.

Hummell 03-27-2011 04:25 PM

@#%@#

Took me forever googling around to find this. Could I please ask if you can point me in the right direction?

BirdOPrey5 03-27-2011 07:43 PM

It was the very first thread in the VB4 Articles Section:
https://vborg.vbsupport.ru/showthread.php?t=228112
[HOW TO - vB4] Create your own vBulletin page.

ilrglen 03-28-2011 03:56 AM

Quote:

Originally Posted by BirdOPrey5 (Post 2177976)
What you did wrong was follow instructions for an article written for vBulletin 3.x when you have vBulletin 4.x. Please see the vBulletin 4 articles section for a comparable article- there are some significant differences in programming between the two when it comes to templates.

WOW!!! Good to know. I have thousands of new pages created on my 3.x site. I guess I'm now stuck with it instead of upgrading to 4.x.

BirdOPrey5 03-28-2011 01:29 PM

Thousands? That is impressive...

But yeah, the way templates are called (and cached) changed... Once you get the hang of it it's not too bad but it will mean a manual edit to every php file you have that calls a template (which is probably all of them.)

ilrglen 03-28-2011 05:42 PM

Quote:

Originally Posted by BirdOPrey5 (Post 2178317)
Thousands? That is impressive...

Well, I have been running my site for over 10 years now. Converting the site over to the new format has been a heck of a job with a little still to go. I'd hate to start that process all over again. If I did would the required changes be required only in the php file or the template as well?

cellarius 03-28-2011 05:57 PM

Both. Honestly, in your situation, I'd recommend using either the CMS (so hopefully you'd be converting one last time only) or creating just one framework page that pulls it's content data from a custom database table. This way, it'd be easier for future conversions. But, of course, I don't know what kind of pages we're talking about.

BirdOPrey5 03-28-2011 09:32 PM

VB4 uses table-less design so depending on how much existing code you rely on in your templates could mean a lot of work. Also all template conditionals and variable uses in templates has changed.

ilrglen 03-29-2011 01:33 PM

Quote:

Originally Posted by cellarius (Post 2178464)
Both. Honestly, in your situation, I'd recommend using either the CMS (so hopefully you'd be converting one last time only) or creating just one framework page that pulls it's content data from a custom database table. This way, it'd be easier for future conversions. But, of course, I don't know what kind of pages we're talking about.

We are working on a new setup that will draw content from a database but even that is taking time to assemble. For now I am doing it the hard way. My web site collects photos of and information on every Lamborghini car ever built so there are 20,000+ potential pages to create. Database will be simpler once it is all ready to go.

soundbarrierpro 04-20-2011 01:43 PM

Anybody know how to make these pages searchable in google or other search engines? I've added the meta data to each of the templates for the pages I've created. However, I get no results when I search in google even when I enter the entire URL.

Thank you, any help is greatly appreciated.


All times are GMT. The time now is 10:02 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.03309 seconds
  • Memory Usage 1,919KB
  • 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
  • (12)bbcode_php_printable
  • (14)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)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