TWTCommish
01-08-2004, 10:00 PM
I like the reputation system, but came to the conclusion early on that it wouldn't be particularly pragmatic unless modified. It's good for cutting down on "right on!" posts, but it's rather like warning someone on AIM; it doesn't have much of a tangible effect. Until now, that is. :)
This hack, when employed, will filter out posts by any user with less than X number of reputation points. It is customizable for each user, so if someone wishes to screen out all posts by an individual with negative rep points, they can, and if someone wants to let all posts through, they can as well.
The filter does not skip over the posts, but rather, hides them in a way very similar to the Ignore List. This hack requires the addition of one custom field, three code edits in two files, two new phrases, and one new template.
Step One
Create a new User Profile Field. Choose "Single-Selection Menu" and enter the following criteria:
Title: Reputation-Based Filtering
Description: Filter out posts by users with less than a certain number of reputation points.
Options (substitute your own):
-1
-10
-25
-50
-100
-200
-300
Field Required: No.
Field Editable by User? Yes
Field Hidden on Profile? No
Field Searchable on Members List? No
Show on Members List? No
Allow user to input their own value for this option - No
Which page displays this option? Options: Thread Viewing
Once you're done with this, go to your User Profile Field Manager and make note of the new field's name; IE: field5, field6, etc.
Step Two
Open showthread.php, and find this around line 87:
// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
Right after it, add this:
if (strlen($bbuserinfo[field6])) {
$reputationfilter = $bbuserinfo[field6];
}
Change "field6" to your own field name, determined in Step One.
Still in showthread.php, find this:
while ($post = $DB_site->fetch_array($posts))
{
Right after it, add this:
$post[reputationfilter] = $reputationfilter;
Save and close.
Step Three
Open functions_showthread.php in your /includes directory. Find this:
$show['messageicon'] = iif($post['iconpath'], true, false);
eval('$retval = "' . fetch_template($maintemplatename) . '";');
return $retval;
Right BEFORE it, add this:
if ($post[reputation] < $post[reputationfilter])
{
$maintemplatename = 'postbit_filter';
}
Step Four
Add the following phrases:
message_hidden_x_filter
This message is hidden because <strong>{1}</strong>'s reputation does not meet your <a href="{2}" target="_blank">specified standards</a>.
change_reputation_filter
Change Reputation Filter
Step Five
Add the template found in the attached text file.
All done! Screenshot of what a filtered post looks like below.
This hack, when employed, will filter out posts by any user with less than X number of reputation points. It is customizable for each user, so if someone wishes to screen out all posts by an individual with negative rep points, they can, and if someone wants to let all posts through, they can as well.
The filter does not skip over the posts, but rather, hides them in a way very similar to the Ignore List. This hack requires the addition of one custom field, three code edits in two files, two new phrases, and one new template.
Step One
Create a new User Profile Field. Choose "Single-Selection Menu" and enter the following criteria:
Title: Reputation-Based Filtering
Description: Filter out posts by users with less than a certain number of reputation points.
Options (substitute your own):
-1
-10
-25
-50
-100
-200
-300
Field Required: No.
Field Editable by User? Yes
Field Hidden on Profile? No
Field Searchable on Members List? No
Show on Members List? No
Allow user to input their own value for this option - No
Which page displays this option? Options: Thread Viewing
Once you're done with this, go to your User Profile Field Manager and make note of the new field's name; IE: field5, field6, etc.
Step Two
Open showthread.php, and find this around line 87:
// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
Right after it, add this:
if (strlen($bbuserinfo[field6])) {
$reputationfilter = $bbuserinfo[field6];
}
Change "field6" to your own field name, determined in Step One.
Still in showthread.php, find this:
while ($post = $DB_site->fetch_array($posts))
{
Right after it, add this:
$post[reputationfilter] = $reputationfilter;
Save and close.
Step Three
Open functions_showthread.php in your /includes directory. Find this:
$show['messageicon'] = iif($post['iconpath'], true, false);
eval('$retval = "' . fetch_template($maintemplatename) . '";');
return $retval;
Right BEFORE it, add this:
if ($post[reputation] < $post[reputationfilter])
{
$maintemplatename = 'postbit_filter';
}
Step Four
Add the following phrases:
message_hidden_x_filter
This message is hidden because <strong>{1}</strong>'s reputation does not meet your <a href="{2}" target="_blank">specified standards</a>.
change_reputation_filter
Change Reputation Filter
Step Five
Add the template found in the attached text file.
All done! Screenshot of what a filtered post looks like below.