Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 06-04-2006, 02:55 PM
mrTip mrTip is offline
 
Join Date: Apr 2006
Location: Columbus, Ohio
Posts: 12
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Parse BBCode

Hello,

I am currently trying to syndicate news from a certain forum. Take a look at my script (yes, I do have my own db class):

PHP Code:
include './functions.php';

            
// start connection
            
$db_host "localhost";
            
$db_user "haha";
            
$db_pass "haha";
            
$db_name "haha";
            
            
$db = new db;
            
            
$db->connect($db_host$db_user$db_pass$db_name);

            
// which forum id should news be displayed from?
            
define("FORUMID""2");
            
// enter prefix of your tables here (blank by default)
            
define("PREFIX"""true);
            
// define how many number of articles you wish to display
            
define("AMOUNT""10");

            
// run the query
            
$query_sel_news $db->query("select t.*,p.pagetext from ".PREFIX."thread t left join ".PREFIX."post p on(p.postid=t.firstpostid) where t.forumid = ".FORUMID." order by dateline desc limit 0,".AMOUNT."");

            
// display the results and replace a few things... err.
            
while($r $db->fetch_array($query_sel_news)) {
    
                
// our (simple) bbcode
                
$bbcode = array("[B]""[/B]""[b]""[/b]""[I]""[/I]""[i]""[/i]""[U]""[/U]""[u]""[/u]""[img]https://vborg.vbsupport.ru/[/img]""[img]https://vborg.vbsupport.ru/[/img]""[center]""[/center]""[CENTER]""[/CENTER]");
                
// our html code :D
                
$htmlcode = array("<B>""</B>""<b>""</b>""<I>""</I>""<i>""</i>""<U>""</U>""<U>""</U>""<img src=\"""\">""<img src=\"""\">""</p><p align=center>""</p><p>""</p><p align=center>""</p><p>");
                
// do the replacing
                
$pagetext str_replace($bbcode$htmlcode$r[pagetext]);
                
// make it so there are LINE BREAKS ;o
                
$pagetext nl2br($pagetext);
                
                echo 
"<h2>".$r[title]."</h2><h3>".date("F jS, g:i A, Y"$r[dateline])."</h3><p>".$pagetext."</p><div id=\"content_left_news\">posted by ".$r[postusername]." | <a href=/forums/showthread.php?t=".$r[threadid].">comments (".$r[replycount].")</a> | <a href=/forums/showthread.php?t=".$r[threadid].">permalink</a></div>";
            }

            
$db->close(); 
Ergh, but it's absolutely insane working with the freakin' bbcode. I've looked at this tutorial, but you see, I am selecting news from an "out-of-vbulletin" page (my main site index page). So, how can I get vB's bbcode parser on my index page to parse this text ($row[pagetext]).
Reply With Quote
  #2  
Old 06-04-2006, 04:16 PM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You basically need to make a vB page out of your non-vB page. Here is an outline. Hope it helps.
Code:
<?php

error_reporting(E_ALL & ~E_NOTICE);

define('THIS_SCRIPT', 'whatever'); // SET ME
define('FWD', '/full/server/path/to/forum'); // SET ME
define('BWD', (($getcwd = getcwd()) ? $getcwd : '.'));

$phrasegroups = array();
$specialtemplates = array();
$globaltemplates = array();
$actiontemplates = array();

chdir(FWD);
require_once('./global.php');
chdir(BWD);

require_once(DIR . '/includes/class_bbcode.php');
$parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());

$do_html = false; $do_smilies = true; $do_bbcode = true;
$do_imgcode = true; $do_nl2br = true; $cachable = false;

$query_sel_news = $db->query_read("QUERY HERE"); // SET ME

while ($r = $db->fetch_array($query_sel_news))
{
	$pagetext = $parser->do_parse(
		$r['pagetext'],
		$do_html, $do_smilies, $do_bbcode,
		$do_imgcode, $do_nl2br, $cachable
	);

	echo $pagetext . '<br /><br />'; // SET ME
}

$db->free_result($query_sel_news);
$db->close();

?>
Reply With Quote
  #3  
Old 06-04-2006, 05:45 PM
mrTip mrTip is offline
 
Join Date: Apr 2006
Location: Columbus, Ohio
Posts: 12
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks so much!

However, the vBulletin template is pulled up and the 'pagetext' still isn't outputted. How do I get it so it just... a page, with the news pulled up (without the vB template).

I defined THIS_SCRIPT as 'news_index' so, do I need to set up a template or file for news_index somewhere? Sorry, never done anything like this with vB!

Thanks so much, I truly do appreciate it.

EDIT: Wait, the "vB template" that I am referring to is the "board offline" page. Whenever I login as admin (so I can view the forums and don't get the nasty offline error), I can view the page, but it spits an error out:

Quote:
Fatal error: Call to undefined function: query_read() in /home/virtual/site13/fst/var/www/html/forums/includes/class_bbcode.php on line 472
Any ideas?
Reply With Quote
  #4  
Old 06-04-2006, 07:45 PM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Try the following:
Code:
replace: $db->
with: $vbulletin->db->
Reply With Quote
  #5  
Old 06-04-2006, 11:48 PM
mrTip mrTip is offline
 
Join Date: Apr 2006
Location: Columbus, Ohio
Posts: 12
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Didn't do anything... I suspected that I shouldn't because I have my own DB class.
Reply With Quote
  #6  
Old 06-04-2006, 11:51 PM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Agreed, try replacing the vB query_read with your class equivalent.
Reply With Quote
  #7  
Old 06-04-2006, 11:59 PM
mrTip mrTip is offline
 
Join Date: Apr 2006
Location: Columbus, Ohio
Posts: 12
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

In class_bbcode.php? Where?
Reply With Quote
  #8  
Old 06-05-2006, 12:13 AM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If your DB class is for the same database where vB is located, it might just be easier to be rid of your class. Otherwise you can try a class_bbcode.php file edit, replacing query_read with just query, but if you are going to file edit, then maybe set a constant in your script, and then file edit the vB script, so that for your script $db->query is used and for vB, it uses what it uses.
Reply With Quote
  #9  
Old 06-05-2006, 12:19 AM
mrTip mrTip is offline
 
Join Date: Apr 2006
Location: Columbus, Ohio
Posts: 12
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Okay, I edit line 472... it READ (past tense):

PHP Code:
            $smilies $this->registry->db->query_read("
                SELECT *, LENGTH(smilietext) AS smilielen
                FROM " 
TABLE_PREFIX "smilie
                ORDER BY smilielen DESC
            "
); 
Now it says as follows...

PHP Code:
            $smilies $this->registry->db->query("
                SELECT *, LENGTH(smilietext) AS smilielen
                FROM " 
TABLE_PREFIX "smilie
                ORDER BY smilielen DESC
            "
); 
The my news script works now. But will editing the class_bbcode.php file screw up my forums? Topics and bbcode still display properly as far as I can see. What concerns should I take?
Reply With Quote
  #10  
Old 06-05-2006, 12:28 AM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If that's the only file edit you made, then it should be fine as vB also can do a $db->query that acts like a $db->query_read when SELECT is in the query.
Reply With Quote
Reply


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 03:01 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.07217 seconds
  • Memory Usage 2,290KB
  • Queries Executed 13 (?)
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
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_code
  • (3)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (10)postbit_onlinestatus
  • (10)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_postinfo_query
  • fetch_postinfo
  • 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