Ok, so I played around with the Group By and found something that does work as intended.
I thought I'd post it up here and see if anyone can think of a more efficient or cleaner way to do it.
Basically, I need a conditional to eval to true for use in the postbit template if the user has any public albums.
The conditional I'm using:
Code:
if (!empty($post['hasalbum']))
{
$template_hook['postbit_userinfo_right'] .= '<div><a href="album.php?' . $vbulletin->session->vars['sessionurl'] . 'u=' . $post[userid] . '" rel="nofollow">' . $vbphrase['members_picture_albums'] . '</a></div>';
}
And the query I got to work:
Hook: showthread_query
Code:
$hook_query_fields .= ",album.userid as hasalbum";
$hook_query_joins .= "LEFT JOIN (SELECT state, userid, MAX(albumid) AS hasalbum FROM " . TABLE_PREFIX . "album GROUP BY userid) album ON(user.userid = album.userid AND album.state = 'public')";
As I said, I got this working as intended. But I'm not sure if this is the best/most efficient way to do things since I had to use MAX(albumid) to make sure it only returned on result no matter how many public albums they have.
Anyone have any input?