PDA

View Full Version : [RELEASE vB2.0] quick 'who posted'


Kier
03-06-2001, 10:00 PM
This is a fairly simple hack, but my users wanted it, so here it is.

http://kier.3dfrontier.com/vbhacks/whoposted.gif

What it does is to add a link to the number of replies for a thread, which allows users to quickly see who has posted in a thread without opening the showthread.php page. The results are shown in a small popup window.

Any suggestions or comments are welcome.

[edit: this hack is now included in vBulletin 2.0.3 and above]

03-07-2001, 02:52 PM
Another awesome release from Kier. Thanks again. :)

03-07-2001, 03:48 PM
that is nice. Does it use any extra queries on forumdisplay or only when you click on the pop-up? I like it a lot.

03-07-2001, 03:52 PM
No extra queries on forumdisplay.php at all. :)

03-07-2001, 08:42 PM
Very nice.

I had some people asking for this, one less thing I have to write, thank you so much :)

03-07-2001, 09:16 PM
This is COOL!!!

03-07-2001, 09:38 PM
Awesome another 5 star rating :)

03-07-2001, 10:04 PM
I just installed the hack, and I have to say it was the easiest install I've ever did, the hack works great and it's pretty fast.

I think VBB's dev team ought be looking for someone like you Kier ;)

03-07-2001, 10:07 PM
yes i agree - installed it in less than 2 mins :)

works great hopefully it works in all netscape and IE browsers :D

03-07-2001, 11:17 PM
Originally posted by eva2000
yes i agree - installed it in less than 2 mins :)

works great hopefully it works in all netscape and IE browsers :D
I've tested on NN and no problems at all!

03-08-2001, 01:55 AM
man you're just one awsome hacking machine. You just keep on coming and coming and each time they get better and better. :)

03-08-2001, 12:05 PM
heh. Nice hack.. might have to install once our site is ready to move to vb 2.0 beta 2. *cough* Rat *cough* Well... there are other reasons for our delay, but.... it's cool. :D

03-08-2001, 04:13 PM
Excellent hack.

Keep up the good work.

03-09-2001, 12:22 AM
brilliant. Just installed it and it works perfectly. 5 Stars!

03-09-2001, 04:08 PM
Cool! Many thanks for that - my users will appreciate it :)

03-10-2001, 12:32 PM
http://www.jeuxwebmasters.com/forums/forumdisplay.php?s=&forumid=19

Nice :)

03-16-2001, 03:36 PM
one thing i was wondering, when you move a thread you get the "-" as the number of replies. With this hack it is no underlined because it still works but looks a little silly. Is there any way to not have this when the thread is moved. I would imagine not because you can't do and if elseif routine in the templates but just thought i would ask.

03-16-2001, 03:52 PM
It would be fairly easy to implement that, but as you pointed out, it would require a little condition to be placed in the php code, rather than a simple template change.

If you really want it, this is the code to modify:

Find in forumdisplay.php: } else {
if ($foruminfo[allowratings]) { replace with } else {
$thread[replycount] = "<a href=\"javascript:who($thread[threadid])\">$thread[replycount]</a>";
if ($foruminfo[allowratings]) { This code should be around line 390... but I can't give you an exact line number, as my forumdisplay.php doesn't really look much like the original ;)

You will also need to remove the hyperlink from the forumdisplaybit template.

03-22-2001, 01:57 PM
any way to modify something like this to show who subscribed or selected email notify on a thread ?

03-22-2001, 02:49 PM
Yep, open whoposted.php and select the whole SQL query, and replace it with this: $posts = $DB_site->query("SELECT
COUNT(postid) AS posts, post.userid, user.username, subscribethread.userid AS subuserid
FROM post LEFT JOIN user USING (userid)
LEFT JOIN subscribethread ON
(subscribethread.threadid=post.threadid AND subscribethread.userid=user.userid)
WHERE post.threadid=\"$threadid\"
GROUP BY post.userid ORDER BY posts DESC"); then further down the code, find this: eval("\$posters .= \"".gettemplate("whopostedbit")."\";"); and immediately above it, add this: if ($post[userid]==$post[subuserid]) $subscribed = " <smallfont>[subscribed]</smallfont>";
else $subscribed = ""; then open your whopostedbit template and just after the closing </a> of the profile link, add $subscribed.

That oughta do it :)

03-22-2001, 03:52 PM
hmm it didn't work nothing no indicator of who subscribed showed up ?

03-22-2001, 09:28 PM
oops... you should add $subscribed to your templates... not $subscribe. Sorry.

03-22-2001, 10:50 PM
thanks Kier for the change, will do it on next upgrade. cheers.

03-23-2001, 01:11 AM
great hack kier.

Just a couple of comments:

1. General comment to all: with regards to the $subscribed thingy, bear in mind that this is a serious invasion of privacy. And, unlike the "who is online", where you allow users to opt out, in adding this $subscrived thingy to the hack you are not allowing anyone any opt-out option.

2. Kier, I LOVE your hacks so please take my following comment as a constructive one: you do not follow strict php coding, which makes it immensely hard to debug a code that consists of your code and others.

Could you perhaps make sure you always use { and } for the ifs and elses? I think in a code made public, strict and global coding guidelines are imperative.

Anyhow, again, thanks for yet another great hack.

Cheers,

Bira

03-23-2001, 01:45 AM
2. Kier, I LOVE your hacks so please take my following comment as a constructive one: you do not follow strict php coding, which makes it immensely hard to debug a code that consists of your code and others.

Could you perhaps make sure you always use { and } for the ifs and elses? I think in a code made public, strict and global coding guidelines are imperative.

Bira there is no "strict php coding" rulebook that says one must enclose if/then segments withing curly braces. Without curly braces the compiler will only process the first following line for inclusion in the if/then. It is perfectly valid code.

i.e.


if ($x)
if ($y)
if ($z)
echo "YES";


is the same as and as valid as


if ($x) {
if ($y) {
if ($z) {
echo "YES";
}
}
}

03-23-2001, 02:42 AM
This hack is great, but it has a flaw. When you do a search, say for the new posts, or any search for that matter, it does not have the hack in it. I am sure it's a simple bit of code editing but I am just toO damn lazy to look into it...

Lordmusic

03-23-2001, 02:44 AM
Originally posted by bira
unlike the "who is online", where you allow users to opt out, in adding this $subscrived thingy to the hack you are not allowing anyone any opt-out option. Okay, if you want to allow users to opt-out, we'll use the invisible setting, so that 'invisible' users don't have their subscriptions shown:

Replace the query with this: $posts = $DB_site->query("SELECT
COUNT(postid) AS posts, post.userid, user.username, user.invisible subscribethread.userid AS subuserid
FROM post LEFT JOIN user USING (userid)
LEFT JOIN subscribethread ON
(subscribethread.threadid=post.threadid AND subscribethread.userid=user.userid)
WHERE post.threadid=\"$threadid\"
GROUP BY post.userid ORDER BY posts DESC"); then change the conditional code to this: if ($post[userid]==$post[subuserid] && !$post[invisible]) $subscribed = " <smallfont>[subscribed]</smallfont>";
else $subscribed = ""; All done. Privacy restored.make sure you always use { and } for the ifs and elses My new PM hack will be a model of strict coding.Anyhow, again, thanks for yet another great hack.Welcome.

03-23-2001, 02:44 AM
Freddie,

When I have your original code, plus someone else's hack, plus Kier, etc - if the style of coding is not unified, it makes it damn hard to debug if there's a mistake somewhere or a missing curly.

I am not saying this won't work - fact is it does - I am merely asking if possible that hackers restrict themselves to the same "full" (for lack of better word) coding.

03-23-2001, 03:47 AM
Originally posted by Lordmusic
This hack is great, but it has a flaw. When you do a search, say for the new posts, or any search for that matter, it does not have the hack in it. I am sure it's a simple bit of code editing but I am just toO damn lazy to look into it...

Lordmusic This would be a simple template edit.

03-23-2001, 04:37 AM
A great hack!

A couple of suggestions:

At the bottom of the pop-up box allow the user to click to go the actual thread and to close the window. [you can probably do these in a blink of an eye but I thgout I'd suggest it]

Again, great work!

03-23-2001, 05:08 AM
To do that, simply add this to your whoposted template: <a href="javascript:opener.location=('showthread.php?s=$ses sion[sessionhash]&threadid=$threadid');">Go to this thread</a>

03-23-2001, 05:26 AM
you can add self.close() to that javascript link, and the small window will close while the thread loads in the big window :)

03-23-2001, 05:30 AM
thanks fortunately all my members are visible - since i removed the option of being invisible on my forums

03-23-2001, 06:18 AM
Thanks!

03-23-2001, 07:21 AM
Good idea bira :) For those who are not too familiar with javascript syntax, that would make the link look like this: <a href="javascript:opener.location=('showthread.php?s=$ses sion[sessionhash]&threadid=$threadid'); self.close();">Show thread and close this window</a>

03-23-2001, 07:39 AM
Just I am too dumb to know which one, please enlighten me...

03-23-2001, 04:15 PM
Originally posted by freddie


Bira there is no "strict php coding" rulebook that says one must enclose if/then segments withing curly braces.
i.e.


if ($x)
if ($y)
if ($z)
echo "YES";


is the same as and as valid as


if ($x) {
if ($y) {
if ($z) {
echo "YES";
}
}
}


Not to mention the first makes your code shorter. :) Not to argue, bira, but I always use if ($whatever): instead of if ($whatever) { because I am forever forgetting to close the curly braces. So maybe I'm just lazy :) but I prefer to not use the braces.

03-25-2001, 10:58 AM
good hack!

congrats

03-25-2001, 11:12 AM
Originally posted by tubedogg


Not to mention the first makes your code shorter. :) Not to argue, bira, but I always use if ($whatever): instead of if ($whatever) { because I am forever forgetting to close the curly braces. So maybe I'm just lazy :) but I prefer to not use the braces.

Well, you do have to enclose it in brackets when an if block contains multiple statements...

offtopic:

I don't get why many people code like this:


if($this) {
doThis();
doThat();
if($that) {
bla()
}
}
else {
doThose();
doThese();
}


This way you easily forget those brackets to close, especially with nesting if's and else's...

It's far better to code like this:


if($this)
{ doThis();
doThat();
if($that)
{ bla();
}
}
else
{ doThose();
doThese();
}


When I go to the vb-code I often can't see what belongs to where...

03-25-2001, 11:38 AM
Originally posted by Mas*Mind

Well, you do have to enclose it in brackets when an if block contains multiple statements...


No, not in the alternative method he's talking about.

if you do if(whaterver): then you can have as many statements as you want, up until you write endif;

BUT, that method as well as my previous complaint just makes the code even more incomprehensible.

03-25-2001, 11:42 AM
yeah, I noticed that...just quoted wrong :o

I wanted to quote on this

ira there is no "strict php coding" rulebook that says one must enclose if/then segments withing curly braces

bokhalifa
04-10-2001, 06:17 AM
hi
Kier

not working
http://bokhalifa.org/daar/bo/whoposted.php

help me;)

eva2000
04-10-2001, 06:30 AM
yeah since beta 4/4.1 it hasn't worked ... maybe work it into a the next beta ;)

bokhalifa
04-10-2001, 07:48 AM
yea:D
Thanks!
eva2000;)

Lost
04-10-2001, 07:49 AM
yeah since beta 4/4.1 it hasn't worked
So this hack will not work on beta 4??
Is that right????
Sorry to ask a dumb question....

tubedogg
04-10-2001, 02:54 PM
It works on my beta 4.1...

Raptor
04-11-2001, 12:33 AM
just installed on beta 5 - works like a charm !

TigerLily
04-11-2001, 02:46 AM
Works on my copy of beta 5 too. Thanks, Kier!
Kim:)

TechTalk
04-12-2001, 07:46 PM
I like this because it is a standalone hack :) I wont add hacks that require editing of main files for sake of updating.


Thanks alot

~Chris

Mas*Mind
04-21-2001, 10:41 PM
One tiny bug....the post count is always one too many...

simple fix: replace $totalposts = number_format($totalposts); with $totalposts = number_format($totalposts)-1;

It bugs me why it is btw...Can't find anything wrong in the code...maybe $totalposts has to be initialized on zero first...but as far as I know that doesn't matter (didn't tested it though)

Mas*Mind
04-21-2001, 11:36 PM
DUH...

forgot that total replies isn't the same as total posts, to be exactly: The difference is one :D

eva2000
04-22-2001, 12:58 AM
Originally posted by Mas*Mind
DUH...

forgot that total replies isn't the same as total posts, to be exactly: The difference is one :D :rolleyes: hehe

GimmeTech
04-22-2001, 03:33 PM
Great Hack. Works just fine.

Thank You Kier.

amsch
05-10-2001, 12:10 PM
I just love it and it was easy to install for a php dummy like me!
Amy

jucs
05-25-2001, 12:45 AM
I got a file not found error in the popup.:(

Any ideas why?

In this template, there already is "topic Table" tag at the top. Do you put it above that or the script under it.

<!-- topic table -->
<script language="Javascript">
function who(threadid) {
window.open("whoposted.php?s=$session[sessionhash]&threadid="+threadid, "moo", "toolbar=no,scrollbars=yes,resizable=yes,width=200, height=300");
}
</script>

jucs
05-25-2001, 06:52 PM
See my other post. I just need to know the answer to the question. And, why it would not be working. I followed directions to the letter too. :(

Update..duh me. The darn whoposted.php file got uploaded as whoposted_php. :rolleyes:

webhost
05-26-2001, 03:36 AM
Great Hack Thanks

http://www.realwebhost.net


Joey

ThomasP
06-02-2001, 04:08 PM
amazing hack!
thanks kier,
-Tom

WEAPON
06-03-2001, 07:43 PM
Great hack. Works perfectly.

AnnaFan
06-04-2001, 11:21 AM
Hi,

under replies I found this:

0normalfont>

What is wrong? I think the normalfont tag is wrong. But I canĀ“t find the error. Can somebody help me please?

version2
06-08-2001, 07:23 PM
I am trying to get this to work. I dont know exactly what went wrong, but when you click on the thread[replycount] link it pops up a box with template info. Its not parsing it.

Trying to figure it out..any ideas?

Here is a link:

http://www.mysticwicks.com/whoposted.php?threadid=2937

c-pr0mpt
06-09-2001, 04:27 PM
On yours how did you get it to change cell color for each post. Or, I should say using 2 colors that alternate. The script as written only uses 1 color for both cells.

Thanks

TWTCommish
06-09-2001, 04:37 PM
It requires some mild hacking. Find the while() loop used to display the threads in forumdisplay.php, and add this before it:

$alt_num = 1;

Then, right inside the loop, add something like this:


$alt_color = ($alt_num % 2 == 0) ? "#FFFFFF" : "#E9E9E9";
$alt_num++;


Then just reference $alt_color instead of "{firstaltcolor}", etc, in your forumdisplay_bit template. I did it with my forums here: http://forums.thestands.com

mister
06-12-2001, 06:44 AM
easy install, awesome feature.

5-star.

thanks kier.

version2
06-14-2001, 03:26 AM
Originally posted by version2
I am trying to get this to work. I dont know exactly what went wrong, but when you click on the thread[replycount] link it pops up a box with template info. Its not parsing it.

Trying to figure it out..any ideas?

Here is a link:

http://www.mysticwicks.com/whoposted.php?threadid=2937

Anyone?

RobAC
06-14-2001, 03:38 AM
If you do a view source on this page, these are the warning messages you find embedded near the top:

<b>Warning</b>: Cannot add header information - headers already sent by (output started at /home/version2/public_html/whoposted.php:4) in <b>/home/version2/public_html/admin/functions.php</b> on line <b>1187</b><br>
<br>
<b>Warning</b>: Cannot add header information - headers already sent by (output started at /home/version2/public_html/whoposted.php:4) in <b>/home/version2/public_html/admin/functions.php</b> on line <b>1187</b><br>

webhost
06-27-2001, 01:12 PM
This is a great hack. Is there a way to add this to a forum on the total post column?

Joey

heynurse
06-29-2001, 03:33 AM
kier.... u da man!

great hack! Very useful. 5 - *****'s

MarkB
06-29-2001, 04:55 AM
I installed this but had to remove it as whoposted.php, when opened from the thread list, showed nothing but the source code - and I am sure I've followed every step of the installation correctly. Does anyone have any ideas? :(

version2
07-13-2001, 01:35 PM
Originally posted by MarkB
I installed this but had to remove it as whoposted.php, when opened from the thread list, showed nothing but the source code - and I am sure I've followed every step of the installation correctly. Does anyone have any ideas? :(

I have the same problem...and I still never figured it out.

version2
07-13-2001, 01:40 PM
Originally posted by RobAC
If you do a view source on this page, these are the warning messages you find embedded near the top:

<b>Warning</b>: Cannot add header information - headers already sent by (output started at /home/version2/public_html/whoposted.php:4) in <b>/home/version2/public_html/admin/functions.php</b> on line <b>1187</b><br>
<br>
<b>Warning</b>: Cannot add header information - headers already sent by (output started at /home/version2/public_html/whoposted.php:4) in <b>/home/version2/public_html/admin/functions.php</b> on line <b>1187</b><br>

Rob, sorry for being a bit clueless here. But, I have no idea what that is supposed to mean. :p

Kier
08-01-2001, 06:15 AM
This hack is now included in vBulletin 2.0.3