Log in

View Full Version : Adding a variable fetch_post_info()


sp00fer
03-06-2006, 03:18 PM
I am trying to get a row from a custom table included in the $post array. (ie, the array used in templates that has all the post info in).

So i went in functions.php, found the fetch_post_info($postid) function and edited like this:
$postcache["$postid"] = $vbulletin->db->query_first("
SELECT divs.userdiv,post.*,
IF(visible = 2, 1, 0) AS isdeleted,
" . (THIS_SCRIPT == 'postings' ? " deletionlog.userid AS del_userid,
deletionlog.username AS del_username, deletionlog.reason AS del_reason," : "") . "

editlog.userid AS edit_userid, editlog.dateline AS edit_dateline, editlog.reason AS edit_reason
FROM " . TABLE_PREFIX . "post AS post
" . (THIS_SCRIPT == 'postings' ? "LEFT JOIN " . TABLE_PREFIX . "deletionlog AS deletionlog ON (deletionlog.primaryid = post.postid AND deletionlog.type = 'post')" : "") . "
LEFT JOIN " . TABLE_PREFIX . "editlog AS editlog ON (editlog.postid = post.postid) LEFT join divs on divs.userid=post.userid
WHERE post.postid = $postid
");

The bits i changed are highlighted in green. The SQL query is valid, but no new variables appear in the $post array. The $post[userdiv] variable returns an empty string when i call it in a template......what am i doing wrong?

Logikos
03-06-2006, 05:26 PM
Try this query:

$postcache["$postid"] = $vbulletin->db->query_first("
SELECT divs.userdiv AS userdiv, post.*,
IF(visible = 2, 1, 0) AS isdeleted,
" . (THIS_SCRIPT == 'postings' ? " deletionlog.userid AS del_userid,
deletionlog.username AS del_username, deletionlog.reason AS del_reason," : "") . "
editlog.userid AS edit_userid, editlog.dateline AS edit_dateline, editlog.reason AS edit_reason
FROM " . TABLE_PREFIX . "post AS post
" . (THIS_SCRIPT == 'postings' ? "LEFT JOIN " . TABLE_PREFIX . "deletionlog AS deletionlog ON (deletionlog.primaryid = post.postid AND deletionlog.type = 'post')" : "") . "
LEFT JOIN " . TABLE_PREFIX . "editlog AS editlog ON (editlog.postid = post.postid)
LEFT JOIN " . TABLE_PREFIX . "divs AS divs ON (divs.userid = post.postid)
WHERE post.postid = $postid
");

sp00fer
03-06-2006, 11:29 PM
no change, $post[userdiv] is still empty when used in the postbit template :(

The SQL query definately works, i added this to check it:


if (!isset($postcache["$postid"]))
{
$postcache["$postid"] = $vbulletin->db->query_first("
SELECT divs.userdiv as userdiv,post.*,
IF(visible = 2, 1, 0) AS isdeleted,
" . (THIS_SCRIPT == 'postings' ? " deletionlog.userid AS del_userid,
deletionlog.username AS del_username, deletionlog.reason AS del_reason," : "") . "

editlog.userid AS edit_userid, editlog.dateline AS edit_dateline, editlog.reason AS edit_reason
FROM " . TABLE_PREFIX . "post AS post
" . (THIS_SCRIPT == 'postings' ? "LEFT JOIN " . TABLE_PREFIX . "deletionlog AS deletionlog ON (deletionlog.primaryid = post.postid AND deletionlog.type = 'post')" : "") . "
LEFT JOIN " . TABLE_PREFIX . "editlog AS editlog ON (editlog.postid = post.postid)
LEFT JOIN " . TABLE_PREFIX . "divs AS divs ON (divs.userid = post.userid)

WHERE post.postid = $postid
");

if(isset ($postcache[$postid][userdiv])){die($postcache[$postid][userdiv]);}

}


The script correctly terminates and returns a valid entry of divs.userdiv ..... but the information is not passed to the postbit template (or anywhere else) that i can actually use it.