MyBB Community Forums

Full Version: [SOLVED] Plugin returns wrong lastposter ID
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have spend hours but can figure why this it returns wrong lastposter ID?

function mybbirlastthreadsprofile()
{
	global $db, $mybb, $memprofile, $theme, $mybbirlastthreadsprofile;
	$threadlimit = 10;
	$query = $db->query("
		SELECT t.*, t.subject AS threadsubject, u.username, u.usergroup, u.displaygroup, p.displaystyle AS threadprefix,
		t.dateline AS threaddate, t.lastpost AS threadlastpost, f.*, t.tid, t.fid
		FROM ".TABLE_PREFIX."threads t
		LEFT JOIN ".TABLE_PREFIX."threadprefixes p ON (p.pid=t.prefix)
		LEFT JOIN ".TABLE_PREFIX."users u ON (t.lastposter=u.username)
		LEFT JOIN ".TABLE_PREFIX."forums f ON (f.fid=t.fid)
		WHERE t.visible = '1' AND t.uid = '{$memprofile['uid']}' AND t.closed NOT LIKE 'moved|%'
		GROUP BY t.tid
		ORDER BY threadlastpost DESC
		LIMIT 0, {$threadlimit}
	");

	while($threads = $db->fetch_array($query))
	{
		// Enable to use when need to shorten thread title and username!
		 
		if(strlen($threads['threadsubject']) > "60")
		{
			$threadsthreadsubject = htmlspecialchars_uni(my_substr($threads['threadsubject'],0,57)."...");
		}
		else
		{
			$threadsthreadsubject = htmlspecialchars_uni($threads['threadsubject']);
		}
		if(strlen($threads['username']) > "10")
		{
			$threads['username'] = htmlspecialchars_uni(my_substr($threads['username'],0,10)."...");
		}
		
		
		if(strlen($threads['name']) > "32")
		{
			$postforumlink = htmlspecialchars_uni(my_substr($threads['name'],0,29)."...");
			$postforumlink = "<a target=\"_blank\" href=\"".get_forum_link($threads['fid'])."\">".$threads['name']."</a>";									
		}
		else
		{
			$postforumlink = "<a target=\"_blank\" href=\"".get_forum_link($threads['fid'])."\">".$threads['name']."</a>";			
		}
		
		$lastposter = build_profile_link(format_name($threads['username'], $threads['usergroup'], $threads['displaygroup']), $threads['lastposteruid']);
        $threads['threadprefix'] = $threads['threadprefix'].'&nbsp;';
		$threadlink = get_thread_link($threads['tid']);
		$lastpostlink = get_thread_link($threads['tid'], 0, "lastpost");
		$replies = my_number_format($threads['replies']);
		$views = my_number_format($threads['views']);
		$lastpostdate = my_date($mybb->settings['dateformat'], $threads['threadlastpost']);
		$lastposttime = my_date($mybb->settings['timeformat'], $threads['threadlastpost']);
		
		// Enable this code to work with the desabled code above!
		
	    $lastposter = "<a target=\"_blank\" href=\"{$mybb->settings['bburl']}/".get_profile_link($threads['lastposteruid'])."\" title=\"{$threads['username']}\">$lastposter</a>"; 
		
		// Remove line 77 and 78 when using desabled code!
		
		// $lastposter = "<a target=\"_blank\" href=\"{$mybb->settings['bburl']}/".get_profile_link($threads['lastposteruid'])."\" title=\"{$threads['username']}\">{$threads['username']}</a>";
		// $threadsthreadsubject = $threads['threadsubject'];
		
		$last_thread .= "<tr>
			<td class=\"trow2\"><span class=\"smalltext\">{$threads['threadprefix']}<a href=\"$threadlink\" title=\"$threads[threadsubject]\" target=\"_blank\">$threadsthreadsubject</a></span></td>
			<td class=\"trow2\" align=\"center\"><span class=\"smalltext\">$postforumlink</span></td>
			<td class=\"trow2\" align=\"center\"><span class=\"smalltext\">$replies</span></td>
			<td class=\"trow2\" style=\"white-space: nowrap; text-align: right;\"><span class=\"lastpost smalltext\">{$lastpostdate} {$lastposttime}<br /><a target=\"_blank\" href=\"$lastpostlink\">Last Post</a>: $lastposter</span></td>
	</tr>";

	}
	if(!$last_thread){
		$last_thread = "<tr><td class=\"trow2\" colspan=\"5\">There aren't any threads</td></tr>";
	}
	$mybbirlastthreadsprofile = "<br/><table border=\"0\" cellspacing=\"".$theme['borderwidth']."\" cellpadding=\"".$theme['tablespace']."\" class=\"tborder\">
			<tr>
				<td class=\"thead\" colspan=\"6\"><strong>{$memprofile['username']}'s Latest Threads</strong></td>
			</tr>
				<tr>
					<td class=\"tcat\"><span class=\"smalltext\"><strong>Subject</strong></span></td>
					<td class=\"tcat\" align=\"center\"><span class=\"smalltext\"><strong>Forum</strong></span></td>
					<td class=\"tcat\" align=\"center\"><span class=\"smalltext\"><strong>Replies</strong></span></td>
					<td class=\"tcat\" align=\"center\"><span class=\"smalltext\"><strong>Last post</strong></span></td>
				</tr>
			{$last_thread}
		</table>";
}

SOLVED!!!!!!!!!!!

Replaced:

f.* with f.name
LEFT JOIN ".TABLE_PREFIX."forums f ON (f.fid=t.fid) with INNER JOIN ".TABLE_PREFIX."forums f ON (f.fid = t.fid)