Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 11-11-2010, 04:23 PM
123_y_321 123_y_321 is offline
 
Join Date: Feb 2007
Posts: 40
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Use vBulletin's BBCode outside the forum

I'm coding a script in PHP that echo out some of the posts from database. My problem is those posts that I echo out are included with [b],[color]...How do I convert them back to HTML using vBulletin bbcode script?
Reply With Quote
  #2  
Old 11-11-2010, 05:16 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You'll want to go take a look at the vB_BbCodeParser - includes/class_bbcode.php
Reply With Quote
  #3  
Old 11-11-2010, 10:49 PM
123_y_321 123_y_321 is offline
 
Join Date: Feb 2007
Posts: 40
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks for the reply. The other guys told me to use this

PHP Code:
<?php
Require_once('./global.php');
Require_once(
'./includes/class_bbcode.php');
Function 
vb_build_message($text)
{
    global 
$vbulletin;
    
$parser =& new vB_BbCodeParser($vbulletinfetch_tag_list());
    
$do_html true// Allow HTML
    
$do_smilies true// Allow Smilies
    
$do_bbcode true// Allow BBcode
    
$do_imgcode true// Allow [IMG]
    
$do_nl2br true// Break line
    
$cachable false//
    
return $parser->do_parse($text$do_html$do_smilies$do_bbcode$do_imgcode$do_nl2br$cachable);
}

Echo 
vb_build_message('text [b]with[b] bbcode');
?>
The code work fine on the test text. But when I apply to the text called from table `post`, column `pagetext`. I keep getting error like this:

Quote:
Fatal error: Call to a member function query_read_slave() on a non-object in
public_html/includes/class_bbcode.php on line 229
Im using vbb 4.0.5
Reply With Quote
  #4  
Old 11-11-2010, 11:03 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Post your exact code that is giving the error.
Reply With Quote
  #5  
Old 11-11-2010, 11:07 PM
123_y_321 123_y_321 is offline
 
Join Date: Feb 2007
Posts: 40
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

here is my little code

PHP Code:
<?php
require_once ('./global.php');
require_once (
'./includes/class_bbcode.php');

function 
vb_build_message($text)
{
    global 
$vbulletin;
    
$parser = &new vB_BbCodeParser($vbulletinfetch_tag_list());
    
$do_html true// Allow HTML
    
$do_smilies true// Allow Smilies
    
$do_bbcode true// Allow BBcode
    
$do_imgcode true// Allow [IMG]
    
$do_nl2br true// Break line
    
$cachable false//
    
return $parser->do_parse($text$do_html$do_smilies$do_bbcode$do_imgcode,
        
$do_nl2br$cachable);
}
/***************************
//Database connection

$dbhost = "localhost";
$dbuser = "********";
$dbpass = "************";
$dbname = "************";
$forum_id = "9";
$db_connect = mysql_connect ('localhost','**********','*******') or die (mysql_error());
$db = mysql_select_db($dbname, $db_connect);
****************************/

$sql "SELECT * FROM `forum` WHERE `forumid` = '".$forum_id."'";
$res mysql_query ($sql) or die (mysql_error());
$row mysql_fetch_assoc($res);

$title $row['title'];
echo 
$title;
echo 
"<br>";
echo 
"<br>";

$sql_2 "SELECT * FROM `forum` WHERE `parentid` = '".$forum_id."'";
$res_2 mysql_query($sql_2) or die (mysql_error());

while (
$row_2 mysql_fetch_assoc($res_2)){
    
    echo 
$row_2['title'] . " (forumid = " $row_2['forumid']. ")";
    
    
$sql_3 "SELECT * FROM `thread` WHERE `forumid` = '".$row_2['forumid']."' ORDER BY `dateline` DESC";
    
$res_3 mysql_query ($sql_3) or die (mysql_error());
    while (
$row_3 mysql_fetch_assoc($res_3)){
        
        echo 
"<li>".$row_3['title'] . " (threadid = "$row_3['threadid'] . ")" "</li>";
        
        
$sql_4 "SELECT * FROM `post` WHERE `threadid` = '".$row_3['threadid']."'";
        
$res_4 mysql_query ($sql_4) or die (mysql_error());
        while (
$row_4 mysql_fetch_assoc($res_4)){
            echo 
"<br>";
            echo 
vb_build_message($row_4['pagetext']);
            echo 
"<br>";
        }
        
    }
    echo 
"<br>";
}
?>
and the error Im getting is

Quote:
Fatal error: Call to a member function query_read_slave() on a non-object in
public_html/includes/class_bbcode.php on line 229
Reply With Quote
  #6  
Old 11-12-2010, 04:24 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You may want to look at the function process_group_message_preview to see how they use the parser and then get the html for the text.
Reply With Quote
  #7  
Old 11-12-2010, 04:55 AM
123_y_321 123_y_321 is offline
 
Join Date: Feb 2007
Posts: 40
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I still dont get it. Can you please be more specific?
Reply With Quote
  #8  
Old 11-12-2010, 02:15 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Basically, there are several examples in the vbulletin code of this being done. I'm wondering if you've looked any of them up? There is an example in the function I posted about, there is also an example in a couple of the widgets. They all do this slightly differently and it may help if you take a look and see what they are doing and why.

In debugging, you may want to spit out the pagetext first before doing the bbcode parsing just to see what it is and see if you can figure out why it is having problems. Try different posts - do you still have the same problem? Put in text of your own - still the same problem?
Reply With Quote
  #9  
Old 11-13-2010, 12:18 AM
123_y_321 123_y_321 is offline
 
Join Date: Feb 2007
Posts: 40
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Like I said, the code works perfectly with single text (the one that I manually input). Just have problem with the text from database does not matter which post.
I have tried to search for the same content on this forum and I dont see any similar problem.
I tried
https://vborg.vbsupport.ru/showthread.php?t=242454 >> no luck.
https://vborg.vbsupport.ru/showthread.php?t=242760 >> no luck.
https://vborg.vbsupport.ru/showthread.php?t=236245 >> this is widget not that page.

I even tried to look at showpost.php file and copy the code, but the same problem occurs...

Im so frustrated after 2hrs on this forum and google. But no thing helpful; what do I do now?
Reply With Quote
  #10  
Old 11-13-2010, 03:14 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Don't search on the forum, search in the vbulletin files themselves. Look how the recent posts forum block is done (recentposts.php). That's going to have very, very similar code, no? And did you try what I suggested which is to spit out the actual post text? What if you aren't grabbing it correctly with your query and that is the problem? You need to know that your code is getting it. Debugging is all about figuring out exactly where the problem is and the way you do that is by spitting out whatever you are after whenever you can.
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 09:48 AM.


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.04697 seconds
  • Memory Usage 2,281KB
  • 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_php
  • (2)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