PDA

View Full Version : Last 10 posts by User?


RobAC
05-28-2001, 01:44 AM
Is there a hack that shows the last 10 posts and threads started by a user? I've run multiple searches but come up empty.

Wayne Luke
05-28-2001, 04:43 AM
I did this one:

http://vbulletin.com/forum/showthread.php?s=&threadid=6574&highlight=profile

Working Demo:
http://sitepointforums.com/member.php?action=getinfo&userid=5584

Freddie Bingham
05-28-2001, 04:52 AM
Wayne that page is doing a full table scan on thread table so you might want to add an index on postuserid

SELECT COUNT(*) AS started FROM thread WHERE postuserid=5584

Also this query is a bit painful but it is because you have 3360 posts (I assume) and will generally be more tolerable for most other users.Query: SELECT thread.title,thread.threadid,thread.forumid,postid ,post.dateline,pagetext FROM post,thread WHERE thread.threadid=post.threadid AND post.userid=5584 ORDER BY post.dateline DESC
Time before: 0.19469499588013
Time after: 0.53944802284241


I only mention this because there is a noticeable lagtime on that page.

Wayne Luke
05-28-2001, 04:59 AM
Thanks. That was for the Threads Started Listing. I should add it to the user table like posts.

Sarge
05-28-2001, 08:08 AM
will that work for version 2.0?
Why not release that... it rock's!

RobAC
05-28-2001, 01:05 PM
I followed the thread and added in the coding into the member.php, but I get database errors each time I try to pull up someone's profile. :(

RobAC
05-29-2001, 12:20 PM
bump^^^^^^^^^^^^^

auto
05-29-2001, 12:38 PM
yea, i cant get it to work too :(

Wayne Luke
05-29-2001, 06:44 PM
In Member.php find:

// get last post
$totalposts=$userinfo[posts];
if ($userinfo[posts]!=0 and $userinfo[lastpost]!=0) {
$lastpostdate=vbdate($dateformat,$userinfo[lastpost]);
$lastposttime=vbdate($timeformat,$userinfo[lastpost]);

$getlastposts=$DB_site->query("SELECT thread.title,thread.threadid,thread.forumid,postid ,post.dateline FROM post,thread WHERE thread.threadid=post.threadid AND thread.visible = 1 AND post.userid='$userid' ORDER BY post.dateline DESC LIMIT 20");

while ($getlastpost=$DB_site->fetch_array($getlastposts)) {

$getperms=getpermissions($getlastpost[forumid]);
if ($getperms[canview]) {
$lastposttitle=$getlastpost[title];
$lastposturl="showthread.php?s=$session[sessionhash]&postid=$getlastpost[postid]#post$getlastpost[postid]";
break;
}
}
} else {
$lastpostdate="Never";
}


Replace with:

// get last posts
$totalposts=$userinfo[posts];
if ($totalposts!=0 or $userinfo[lastpost]!=0) {
$getlastposts=$DB_site->query("SELECT thread.title,thread.threadid,thread.forumid,postid ,post.dateline,pagetext FROM post,thread WHERE thread.threadid=post.threadid AND post.userid=$userinfo[userid] ORDER BY post.dateline DESC");
$postctr=0;
$latestposts="";
while ($getlastpost=$DB_site->fetch_array($getlastposts)) {

$getperms=getpermissions($getlastpost[forumid],$bbuserinfo[userid],$bbuserinfo[usergroupid]);
if ($getperms[canview]==1) {
$postdate=date($dateformat,$getlastpost[dateline]+(($timeoffset+$bbtimezoneoffset)*3600));
$posttime=date($timeformat,$getlastpost[dateline]+(($timeoffset+$bbtimezoneoffset)*3600));
$posttitle=$getlastpost[title];
$posturl="showthread.php?postid=$getlastpost[postid]#post$getlastpost[postid]";
$message=$getlastpost[pagetext];
if (strlen($message) > 160) {
$snippet = bbcodeparse(substr($message,0,160)). " (<a href=\"".$posturl."\">more...</a>)<br>";
} else {
$snippet = $message;
}
$postctr++;
if ($postctr==1){
$lastpostdate=$postdate;
$lastposttime=$posttime;
$lastposttitle=$posttitle;
$lastposturl=$posturl;
}
$latestposts.="<p><a href=\"".$posturl."\">".$posttitle."</a> ".$postdate." at ".$posttime."<br><font face=\"verdana,arial,helvetica\" size=\"1\">".$snippet."</font></p>";
if ($postctr==10) {
break;
}
}
}
} else {
$lastpostdate=$userinfo[username]." has not made any posts yet.";
}


Then put $latestposts in your getinfo template somewhere.

auto
05-29-2001, 08:22 PM
Cool deal Wayne!

Woohoo!! :p

It works, except for......

http://www.automotiveforums.com/vbulletin/member.php?s=&action=getinfo&userid=61

It actually shows any and all images, smilies, and vB code, plus the "..more" thing doesn't work :(

How do I fix this?

Thanks.

RobAC
05-29-2001, 09:13 PM
Wayne,

A thousand thank-yous!!!!!!!!! :)

Wayne Luke
05-30-2001, 12:22 AM
Originally posted by auto
Cool deal Wayne!

Woohoo!! :p

It works, except for......

http://www.automotiveforums.com/vbulletin/member.php?s=&action=getinfo&userid=61

It actually shows any and all images, smilies, and vB code, plus the "..more" thing doesn't work :(

How do I fix this?

Thanks.

I don't know about the link not working.. It will as long as you didn't change your code and call showthread something else.

To make it so the vB Code stuff isn't parsed then remove the call to the bbcodeparse function...

look for:
bbcodeparse($snippet)

and replace with:
$snippet

RobAC
05-30-2001, 12:35 AM
Wayne,

Just so you can see, this is what shows up in a user's profile:

New belts and harness bar 05-29-2001 at 03:51 PM
I just wanted to jump in and say "Thanks" to everyone here that's been coac<a href="showthread.php?postid=13148#post13148">more...</a><br>

RobAC
05-30-2001, 12:41 AM
Wayne,

Thanks!!!! Removing the bbparsecode worked. The link now shows up appropriately.

RobAC
05-30-2001, 12:48 AM
Actually, I found something else wrong. This line of code points to the same URL in all the posts listed in the user's profile:

$snippet = substr($message,0,160) . " (<a href=\"".$lastposturl."\">more...</a> )<br>";

I changed $lastposturl to $posturl in this line only and now it works properly.

Wayne Luke
05-30-2001, 01:04 AM
I changed the post above to fix that.

I also made a change in the snippet so that BBcode is parsed correctly without interfering with the link.

auto
05-30-2001, 01:11 AM
you know, there's another big problem :p
It displays posts in private forums as well.... :rolleyes:

Thanks for helping us out Wayne :)

auto
05-30-2001, 01:17 AM
Also,

$lastpostdate= $username." has not made any posts yet.";

shoule be

$lastpostdate= $userinfo[username]." has not made any posts yet.";

RobAC
05-30-2001, 01:22 AM
Looks great. Thanks Wayne!

Wayne Luke
05-30-2001, 03:20 AM
Originally posted by auto
you know, there's another big problem :p
It displays posts in private forums as well.... :rolleyes:

Thanks for helping us out Wayne :)

It should only show private forums if the person has permission to view them.