PDA

View Full Version : Newbies can't add new threads, only reply to existing ones...


James Cridland
05 Aug 2001, 16:44
One of our forum guides asked...

How about a 'New Member' tier - maybe up to, say, 10-12 posts - where their user rights are restricted so that they cannot start new threads.

Looking through some of the forums, it seems that first-time posters that start new threads usually fall into several categories:
1. Start a new thread on a subject that's already running - obviously they haven't checked first, or are posting in the wrong forum anyway.
2. Have registered with a new name purely to start a thread slagging someone off, or similar 'problem' thread.
3. Self-promotion/spam.
Some mailing lists on Yahoo will 'moderate' new members' contributions. Their posts have to be approved by one of the moderators for a period of time - usually until we are satisfied they are OK. This stops the sign-on-and-spam brigade, while the 'lurkers' will never be aware anyway. (Want this for VB? Find the hack here (http://www.vbulletin.org/forum/showthread.php?s=&threadid=14075))

This is obviously not feasible with our board - there's too much traffic and we aren't always around to check it immediately - so this might be an easier way of moderating new members.

The downside is that some troublemakers might work it out and post nonsense in a number of threads to get their posts up to the requisite level - although by then, with any luck, this would have drawn our attention to them, and appropriate action taken.

For those of you who wish to try this, my hack is below:

1. Edit newthread.php to add the code in bold...


$permissions=getpermissions($forumid);
if (!$permissions[canview] or !$permissions[canpostnew]) {
show_nopermission();
}

if($bbuserinfo["posts"] < 10)
{
eval("standarderror(\"".gettemplate("error_forumnewbie")."\");");
exit;
}



2. Go to your control panel and choose "Templates: Add"
Template name: error_forumnewbie
Template set: your standard set (Default)
Template: "Thanks for trying to post a new message.<P>Until you've taken part in a few discussions, you can only reply, not post a new topic. Try searching for what you were going to post about, using the "Search" facility, and see if you can add your comment to something there."

3. Upload newthread.php

This will create a standard UBB error if you try to create a new topic and you've posted less than ten messages. (Change the "10" in the code snippet above to change the number of messages needed to be able to post new threads).

Improvements...

Want to turn this off for a particular forum? Look at the forum's URL in your browser to to discover its "forumid" number. It's the one right at the end of the URL.
Then change the "if" statement above to...
if($bbuserinfo["posts"] < 10 && $forumid<>11 && $forumid<>23)
This will let newbies to post new topics to my forum number 11 or forum number 23.

Want, also, to insist that this user has been a member for longer than two days?
Then change the "if" statement above to...
if(($bbuserinfo["posts"] < 10 || ($bbuserinfo["joindate"]+86400*2) > (time())) && forumid<>11 && forumid<>23)
The "86400 * 2" is the bit that mentions the days... change the second number to "1" to make the probation period only one day, or "5" to make it 5 days.

Hope you find this useful: see it in action at http://forums.mediauk.com/

Mark Hewitt
06 Aug 2001, 06:25
Can't this be done with user groups anyway?

James Cridland
06 Aug 2001, 17:10
That means manually changing peoples' user groups...

pran
29 Aug 2001, 05:28
Originally posted by James Cridland
Want to turn this off for a particular forum? Perhaps your site feedback forum?

Click into a forum, and look at the URL in your browser to to discover its "forumid" number. It's the one right at the end of the URL.

Then change the "if" statement above to...

if($bbuserinfo["posts"] < 10 && $forumid<>11 && $forumid<>23)

This will let newbies to post new topics to my forum number 11 or forum number 23.

how about making the statement:
if($bbuserinfo["posts"] < 10 && $forumid<>11 && $forumid<>23)
into something like a set statement (or values in an array) so you can avoid putting multiple &&. I'm still learning PHP :)

aldamon
30 Aug 2001, 14:04
Awesome! Our vB is a professional board and we don't have much traffic. But, of course, people will post new threads all of the time without bothering to contribute to the community. Now I can force them to reply and contribute at least once without manually changing user groups.

Thanks!

aldamon
30 Oct 2001, 20:18
Please update for 2.2.0 when possible. It might not even need to be updated......Thanks!

Justice
31 Oct 2001, 04:45
this hack is very practical, and something I've been wanting for about 2 years (going all the way back to UBB). Thanks man

Mas*Mind
31 Oct 2001, 06:10
I did exactly the same hack a long time ago (never released it though), but with one different aspect: It's a combination of the number of post and how long the newbie is registered, this stops them from posting useless posts to get the right to open new topics. EG: When a newbie has 50 posts AND is registered for more than 30 days he can open new threads. I also made a special error message for it. I must say this is a very usefull hack on my forum, newbies can still ask to open a topic by asking a mod.

I allready suggested a new vb-feature to accomplish this kind of things automaticly: Create an option to let members fall into a kind of usergroup when they reach a certain number of posts. This way you can create to usergroups: one with new-thread-posting abilities and one withouth. Specify that a member falls into the second one only when they reach a certain amount of posts and when they're registered for a certain amount of days... voila :)
This would make vb even more flexible. Endless possibilities

Justice
31 Oct 2001, 15:22
is your coding similar to James' or a totally different method?

Goldfinger
31 Oct 2001, 17:17
Originally posted by Mas*Mind
....EG: When a newbie has 50 posts AND is registered for more than 30 days he can open new threads. ..

This sounds like a better way to go about doing this. how about releasing your hack Mas. ;)

James Cridland
04 Nov 2001, 22:39
Originally posted by aldamon
Please update for 2.2.0 when possible. It might not even need to be updated......Thanks!

It doesn't need updating, by the looks of things, though I will certainly work to add the "if registered for less than 7 days" thing: that's a good idea.

A control panel to set these things would be nice, but I'm not really that clever.

(Later:)

Now updated (see the top message).
Note that the timescale and the number of posts both have to be met, so a user who posts 15 replies in one day still can't post a new topic. Presumably this is what you wanted... and it sounds a great idea.

over
09 Nov 2001, 22:44
thnx nethng that saves manual changing peeps privlidges level is a god send :)

aldamon
20 Nov 2001, 14:55
I just found a BIG problem with this hack. Users who are not logged in get the forumnewbie error instead of the log in prompt.

Is there any way to exclude unregistered users from the forumnewbie error so they get the regular log in screen when trying to post?

aldamon
20 Nov 2001, 15:26
Fixed!

Just move the hacked code down a few lines. Put the code after this in newthread.php:

-------
$permissions=getpermissions($forumid);
if (!$permissions[canview] or !$permissions[canpostnew]) {
show_nopermission();
}
-------

This will let the correct error message to display for uncookied users. Damn, if someone hadn't emailed me complaining that they could not post unless they had 1 post already, when they really weren't logged in, I never would have caught this!

James Cridland
20 Nov 2001, 19:40
Fantastic; thanks for that. I've altered the first message accordingly.

Bald Bouncer
08 Dec 2001, 16:33
this works great nice work, but I was wondering if theres a way to have it enabled only in certain forums

Bald Bouncer
08 Dec 2001, 16:56
no problem Ive found the answer

James Cridland
08 Dec 2001, 17:38
You'll have noticed that it is possible to switch this off for particular forums, although it's a bit clunky. It would be good to add this to the control panel in some way, but I don't understand enough about that to do it.

James Cridland
08 Dec 2001, 20:36
With the addition of some code on the http://www.vbulletin.org/forum/showthread.php?s=&threadid=14075 ( moderate a user hack, I've now removed this hack from my board; sticking users on auto moderation works better for some problems we're having with a user who won't go away.

I'll still keep maintaining this one, mind, but thought it's only fair to mention it!

esoin
06 Mar 2002, 05:09
Does this hack still work with the newest version of VB? i

aldamon
07 Mar 2002, 14:12
2.2.3 approved!

mattyk72
06 Dec 2006, 14:24
will this work with the latest vb?

I really wish they would make something like this standard with all vb releases

peterska2
12 Dec 2006, 02:24
no but you can achieve this for forum permissions and usergroup promotions