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

Reply
 
Thread Tools Display Modes
  #1  
Old 09-04-2008, 06:25 PM
mooreaa mooreaa is offline
 
Join Date: Aug 2008
Posts: 64
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default getting post data from postid

Hello,

I am trying to load the data found in the $post variable during a postbit. I tried using fetch_postinfo but it does not return all the data found in $post.

Is there a function I can use to retrive this data ( based on a postid or threadid ) or how can I get to this data?
Reply With Quote
  #2  
Old 09-04-2008, 08:40 PM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

What "extra" data do you need?

The query for the posts is located in showthread.php, you should be able to grab the SQL from there and amend it to fit your needs.
Reply With Quote
  #3  
Old 09-05-2008, 12:33 AM
mooreaa mooreaa is offline
 
Join Date: Aug 2008
Posts: 64
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I gave the query a shot and noticed that I got back pagetext... I am not 100% sure what transformations it goes through before it becomes a $post['message']... some of them are like converting new lines into html line breaks as well as bbcode parsing... how do I deal with it from this point?

if I could run the functions to prepare the $post variable as if doing a postbit, that would be ideal...

Mainly cuz otherwise I would be duplicating a lot of code on parsing, and such. Esepcailly like highlighting search results.
Reply With Quote
  #4  
Old 09-05-2008, 09:52 AM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

showthread.php will hold all your answers then. Look through the comments in that PHP file, it should be fairly easy to recognise the SQL for the posts (its a big massive block of SQL ).

Just follow what happens to it after that.
Reply With Quote
  #5  
Old 09-05-2008, 04:38 PM
mooreaa mooreaa is offline
 
Join Date: Aug 2008
Posts: 64
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Though I'd share what I came up with. Not sure what I might be able to trim from this function yet, but this will load a post data based on a $postid. It also needs to have a valid $vbulletin and $thread variable... so still trying to figure out how to load those when using this function completely outside of VB.

PHP Code:
function load_post_data$postid )
{
    global 
$thread;
    global 
$post;
    global 
$forum;
    global 
$vbulletin;
    global 
$db;
    
    
    
// *********************************************************************************
    // get forum info
    
$foruminfo fetch_foruminfo($thread['forumid']);

    
//create postbit factory
    
$postbit_factory =& new vB_Postbit_Factory();
    
$postbit_factory->registry =& $vbulletin;
    
$postbit_factory->forum =& $foruminfo;
    
$postbit_factory->thread =& $thread;
    
$postbit_factory->cache = array();
    
$postbit_factory->bbcode_parser =& new vB_BbCodeParser($vbulletinfetch_tag_list());
    
    
// READ POST DATA FROM VBULLETIN DB
    
    
$postids "post.postid IN (0" $postid ")";
    
$postorder 'DESC';
    
    
$posts $db->query_read("
        SELECT
            post.*, post.username AS postusername, post.ipaddress AS ip, IF(post.visible = 2, 1, 0) AS isdeleted,
            user.*, userfield.*, usertextfield.*,
            editlog.userid AS edit_userid, editlog.username AS edit_username, editlog.dateline AS edit_dateline,
            editlog.reason AS edit_reason, editlog.hashistory,
            postparsed.pagetext_html, postparsed.hasimages,
            IF(displaygroupid=0, user.usergroupid, displaygroupid) AS displaygroupid, infractiongroupid
        FROM " 
TABLE_PREFIX "post AS post
        LEFT JOIN " 
TABLE_PREFIX "user AS user ON(user.userid = post.userid)
        LEFT JOIN " 
TABLE_PREFIX "userfield AS userfield ON(userfield.userid = user.userid)
        LEFT JOIN " 
TABLE_PREFIX "usertextfield AS usertextfield ON(usertextfield.userid = user.userid)
        
        LEFT JOIN " 
TABLE_PREFIX "editlog AS editlog ON(editlog.postid = post.postid)
        LEFT JOIN " 
TABLE_PREFIX "postparsed AS postparsed ON(postparsed.postid = post.postid AND postparsed.styleid = " intval(STYLEID) . " AND postparsed.languageid = " intval(LANGUAGEID) . ")
        LEFT JOIN " 
TABLE_PREFIX "sigparsed AS sigparsed ON(sigparsed.userid = user.userid AND sigparsed.styleid = " intval(STYLEID) . " AND sigparsed.languageid = " intval(LANGUAGEID) . ")
        LEFT JOIN " 
TABLE_PREFIX "sigpic AS sigpic ON(sigpic.userid = post.userid)
        
        WHERE 
$postids
        ORDER BY post.dateline 
$postorder
    "
);
    
    
$post $db->fetch_array($posts);
    
    
// FINISHED READING DATA FROM VB DB
    
    
$fetchtype 'post';
    
    
$postbit_obj =& $postbit_factory->fetch_postbit($fetchtype);
    
    if (
$fetchtype == 'post')
    {
        
$postbit_obj->highlight =& $replacewords;
    }
    
    
$postbit_obj->cachable $post_cachable;

    
$post['islastshown'] = ($post['postid'] == $lastpostid);
    
$post['attachments'] =& $postattach["$post[postid]"];

    
$parsed_postcache = array('text' => '''images' => 1'skip' => false);

    
$postbits .= $postbit_obj->construct_postbit($post);

    return 
$post;

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 08:36 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.03990 seconds
  • Memory Usage 2,226KB
  • 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
  • (1)bbcode_php
  • (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)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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete