vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   getting post data from postid (https://vborg.vbsupport.ru/showthread.php?t=190036)

mooreaa 09-04-2008 06:25 PM

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?

Opserty 09-04-2008 08:40 PM

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.

mooreaa 09-05-2008 12:33 AM

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.

Opserty 09-05-2008 09:52 AM

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 :D).

Just follow what happens to it after that.

mooreaa 09-05-2008 04:38 PM

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;




All times are GMT. The time now is 06:22 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.01063 seconds
  • Memory Usage 1,751KB
  • 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
  • (1)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)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
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete