Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 09-24-2007, 12:55 PM
Hugo Firth Hugo Firth is offline
 
Join Date: Aug 2007
Posts: 4
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default vB Getting Last Poster (member.php)

Hi guys,

I'm trying to replicate the member.php?find=lastposter&f=<number> function into my own piece of code, I've dug into the code in member.php and took the relavant code out and modified it according to my needs.

The function now reads as follows:

PHP Code:
function memberForumLastPoster($fid)
{
    global 
$vbulletin$db$vbphrase;

    
$forumperms fetch_permissions($fid);
    if (!(
$forumperms $vbulletin->bf_ugp_forumpermissions['canview']))
    {
        
print_no_permission();
    }

    if (
$vbulletin->userinfo['userid'] AND in_coventry($vbulletin->userinfo['userid'], true))
    {
        
$tachyjoin "LEFT JOIN " TABLE_PREFIX "tachythreadpost AS tachythreadpost ON " .
            
"(tachythreadpost.threadid = thread.threadid AND tachythreadpost.userid = " $vbulletin->userinfo['userid'] . ')';
    }
    else
    {
        
$tachyjoin '';
    }

    require_once(
DIR '/includes/functions_misc.php');
    
$forumslist $fid ',' fetch_child_forums($fid);

    require_once(
DIR '/includes/functions_bigthree.php');
    
// this isn't including moderator checks, because the last post checks don't either
    
if ($coventry fetch_coventry('string')) // takes self into account
    
{
        
$globalignore_post "AND post.userid NOT IN ($coventry)";
        
$globalignore_thread "AND thread.postuserid NOT IN ($coventry)";
    }
    else
    {
        
$globalignore_post '';
        
$globalignore_thread '';
    }

    
cache_ordered_forums(1);

    
$datecutoff $vbulletin->forumcache[$fid]['lastpost'] - 30;

    
$thread $db->query_first_slave("
        SELECT thread.threadid
            " 
. ($tachyjoin ', IF(tachythreadpost.lastpost > thread.lastpost, tachythreadpost.lastpost, thread.lastpost) AS lastpost' '') . "
        FROM " 
TABLE_PREFIX "thread AS thread
        
$tachyjoin
        WHERE thread.forumid IN (
$forumslist)
            AND thread.visible = 1
            AND thread.sticky IN (0,1)
            AND thread.open <> 10
            " 
. (!$tachyjoin "AND lastpost > $datecutoff'') . "
            
$globalignore_thread
        ORDER BY lastpost DESC
        LIMIT 1
    "
);

    if (!
$thread)
    {
        eval(
standard_error(fetch_error('invalidid'$vbphrase['user'], $vbulletin->options['contactuslink'])));
    }

    
$getuserid $db->query_first_slave("
        SELECT post.username
        FROM " 
TABLE_PREFIX "post AS post
        WHERE threadid = 
$thread[threadid]
            AND visible = 1
            
$globalignore_post
        ORDER BY dateline DESC
        LIMIT 1
    "
);
    return 
$getuserid;

The only problem I have with this function is that now when I return $getuserid and echo $getuserid['username'], the same username is constantly being echoed out once it reaches the last category, such as below:

Quote:
profile-James.html (for fid: 32)
profile-Punisher12.html (for fid: 49)
profile-James.html (for fid: 50)
profile-Yun.html (for fid: 46)
profile-Samuel.html (for fid: 37)
profile-Samuel.html (for fid: 29)
profile-Samuel.html (for fid: 42)
profile-Samuel.html (for fid: 33)
profile-Samuel.html (for fid: 40)
profile-Samuel.html (for fid: 34)
profile-Samuel.html (for fid: 35)
profile-Samuel.html (for fid: 36)
Obviously the last posters for the Fids after profile-Yun.html are not Samuel . But when I view the URL directly at member.php?find=lastposter&fid=37, it reflects to the correct profile.

Can anyone tell me why this is happening?

Thanks!


edit:
I've done some through debugging, the flawed code seems to be:
PHP Code:
$forumslist $fid ',' fetch_child_forums($fid); 
Overwritting $forumslist with just $fid seems to make it work, but I'm afraid that it may backfire in the future. Also, why does fetch_child_forums() work in member.php and not in my function? .
Reply With Quote
Reply

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 11:13 PM.


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.03507 seconds
  • Memory Usage 2,178KB
  • Queries Executed 11 (?)
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
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)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_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