Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
Prev Previous Post   Next Post Next
  #1  
Old 03-04-2006, 08:48 PM
Zowners Zowners is offline
 
Join Date: Dec 2005
Posts: 318
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Parsing BBcode when grabbing posts from a forum

Ok, a little background, I run a forum at www.sitesyntax.com (Coincidentally it also has to do with coding websites, however, I haven't learned php yet)...

I've been coding a section where users can post a tutorial and have it show up. I've got the posting down, and I've got the list of tutorials down. I did it by making an invisible forum that it posts to.

What I still have to do is use AJAX to make a post clicked on the list show up in the main area, and I have to make it grab the most recent post out of the database and display it.

I can make it show the first (ie opposite of most recent) post show up, but it doesn't parse BBcode, and it does parse HTML.

Of course, this is a big security risk (As any forum owner would know).

Anyways, here's the code I use. message is entered as the name of a <textarea> form element.

This is the php code for the display page
PHP Code:
<?php 

// ########################################################################
// ##                             This page was                          ##
// ##                        Created by Jess O'Neill                     ##
// ##                    With help from Zoints Engineers                 ##
// ##                             Copywrite 2006                         ##
// ########################################################################

// ####################### SET PHP ENVIRONMENT ########################### 
error_reporting(E_ALL & ~E_NOTICE); 

// #################### DEFINE IMPORTANT CONSTANTS ####################### 
define('NO_REGISTER_GLOBALS'1); 
define('THIS_SCRIPT''tutorials'); 

Vbulletin stuff....

####################################################################### 
// ######################## START MAIN SCRIPT ############################ 
// ####################################################################### 
($hook vBulletinHook::fetch_hook('tutorials')) ? eval($hook) : false;
$navbits = array(); 
$navbits[$parent] = 'tutorials'

$navbits construct_navbits($navbits); 
eval(
'$navbar = "' fetch_template('navbar') . '";'); 

$threads $db->query_read("SELECT thread.threadid, thread.title AS title, thread.forumid AS forumid, 
                                       thread.postuserid AS userid, thread.postusername AS username, thread.dateline, 
                                       thread.firstpostid, pagetext
                                FROM " 
TABLE_PREFIX ."thread AS thread
                                LEFT JOIN " 
TABLE_PREFIX ."post AS post ON ( thread.firstpostid = post.postid )
                                WHERE forumid = 23
                                ORDER BY thread.lastpost"
);

    while (
$thread $db->fetch_array($threads))
    {
        eval(
'$tutorialslistbit .= "' fetch_template('adv_portal_tutorialslistbit') . '";');    
    }


$recent $db->query_first("SELECT thread.threadid, thread.title AS title, thread.forumid AS forumid, 
                                       thread.postuserid AS userid, thread.postusername AS username, thread.dateline, 
                                       thread.firstpostid, pagetext
                                FROM thread AS thread
                                LEFT JOIN post AS post ON ( thread.firstpostid = post.postid )
                                WHERE forumid = 23
                                ORDER BY thread.lastpost;"
);


$vbulletin->input->clean_array_gpc('p', array(
        
'message' => TYPE_NOHTML,
    ));
require_once(
DIR '/includes/class_bbcode.php'); 
$parser =& new vB_BbCodeParser($vbulletinfetch_tag_list()); 
$parsed_text $parser->do_parse($vbulletin->GPC['message']);


eval(
'$tutorialslist = "' fetch_template('adv_portal_tutorialslist') . '";');
eval(
'$tutorialsrecent = "' fetch_template('adv_portal_tutorialsrecent') . '";');
eval(
'print_output("' fetch_template('adv_portal_tutorials') . '");'); 

?>
(Everything under $recent is what control the recent tutorial part... What would switch it from getting the first post to the most recent post?

This is the php for the post page
PHP Code:
$vbulletin->input->clean_array_gpc('p', array(
        
'message' => TYPE_NOHTML,
    ));
require_once(
DIR '/includes/class_bbcode.php'); 
$parser =& new vB_BbCodeParser($vbulletinfetch_tag_list()); 
$parsed_text $parser->do_parse($vbulletin->GPC['message']);

eval(
'print_output("' fetch_template('adv_portal_tutorialsnew') . '");'); 

?> 
The posts show up in the hidden forum with bbcode parsed and html not. But when they are loaded at www.sitesyntax.com/vb/tutorials.php (You may have to be a member to see this page, I'm not totally sure), the bbcode is unparsed, and the html is.

The recent tutorial on there should read "<b> makes bold</b>" instead of "makes [ b]bold[/ b]"

Anybody with an understanding of php,sql, and vb that can help me out with this?
Reply With Quote
 

Thread Tools
Display Modes

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 07:49 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.07443 seconds
  • Memory Usage 2,427KB
  • Queries Executed 12 (?)
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
  • (2)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)postbit_wrapper
  • (1)showthread_list
  • (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_threadedmode.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_threaded
  • showthread_threaded_construct_link
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete